SlideShare a Scribd company logo
Пользовательский интерфейс на Perl
Архитектура  «Globus Professional» Client App Server DB
Вход в  «Globus Professional»
Клиентское приложение
Класс приложения use Wx; # every program must have a Wx::App-derive class package MyApp; use strict; use warnings; our  @ISA=qw(Wx::App); # this is called automatically on object creation sub OnInit { my( $this ) = @_; # create new MyFrame my $frame = MyFrame->new( "Minimal wxPerl app",   [  50, 50  ] ,  #position   [  450, 350  ] #size ); # set it as top window (so the app will automatically close when # the last top window is closed) $this->SetTopWindow( $frame ); # show the frame $frame->Show( 1 ); 1; }
Класс окна (1) package MyFrame; use strict; use warnings; our  @ISA=qw(Wx::Frame); use Wx::Event qw(EVT_MENU); use Wx qw(wxBITMAP_TYPE_ICO wxMENU_TEAROFF); # Parameters: title, position, size sub new { my $class  = shift; my $ self  = $class->SUPER::new( undef, -1, $_[0], $_[1], $_[2] ); # load an icon and set it as frame icon $ self ->SetIcon( Wx::GetWxPerlIcon() ); # create the menus my $mfile = Wx::Menu->new( undef, wxMENU_TEAROFF ); my $mhelp  = Wx::Menu->new(); my( $ID_ABOUT, $ID_EXIT ) = ( 1, 2 ); $mhelp->Append( $ID_ABOUT, "&About...\tCtrl-A", "Show about dialog" ); $mfile->Append( $ID_EXIT, "E&xit\tAlt-X", "Quit this program" );
Класс окна (2) my $mbar = Wx::MenuBar->new(); $mbar->Append( $mfile, "&File" ); $mbar->Append( $mhelp, "&Help" ); $ self ->SetMenuBar( $mbar ); # declare that events coming from menu items with the given # id will be handled by these routines EVT_MENU( $ self , $ID_EXIT, \&OnQuit ); EVT_MENU( $ self , $ID_ABOUT, \&OnAbout ); # create a status bar (note that the status bar that gets created # has three panes, see the OnCreateStatusBar callback below $ self ->CreateStatusBar( 1 ); # and show a message $ self ->SetStatusText( "Welcome to wxPerl!", 1 ); $ self ; }
Обработчики # this is an addition to demonstrate virtual callbacks... # it ignores all parameters and creates a status bar with three fields sub OnCreateStatusBar { my $ self  = shift; my $status  = Wx::StatusBar->new( $ self , -1 ); $status->SetFieldsCount( 2 ); $status; } # called when the user selects the 'Exit' menu item sub OnQuit { my( $ self , $event ) = @_; # closes the frame $ self ->Close( 1 ); } use Wx qw(wxOK wxICON_INFORMATION wxVERSION_STRING); # called when the user selects the 'About' menu item sub OnAbout { my( $ self , $event ) = @_; # display a simple about box Wx::MessageBox( "This is the about dialog of minimal sample.\n" .   "Welcome to wxPerl " . $Wx::VERSION . "\n" .   wxVERSION_STRING,   "About minimal", wxOK | wxICON_INFORMATION,   $  self  ); }
Запуск приложения package main; # create an instance of the Wx::App-derived class my $app = MyApp->new(); # start processing events $app->MainLoop();
Конструктор АРМ
АРМ регистратора заявок пользователей
Инструмент отладки перлового кода  ( KIT )
Регистрация  ActiveX- компонент perl -Mblib -MWx::ActiveX::Template -e"run_wxactivex_template();" Регистрация  ActiveX- компонент
Работа с компонентом use Win32::OLE; use Win32::OLE::Const;  use Win32::OLE::Variant; use Wx::ActiveX::RolledCalendar; … $dlg->{'_ X calendar'} = Wx::ActiveX::RolledCalendar->new( $dlg ); $main_sizer->Add( $dlg->{'_Xcalendar'}, 1, &Wx::wxGROW|&Wx::wxALL, 0 ); $dlg ->{'_calendar'}  = $dlg->{'_Xcalendar'}->GetOLE(); $dlg->{' _calendar '}->SetDate( $date ); … $date =  $dlg->{'_ c alendar'}->GetDate(); … . $dlg->{'_Xcalendar'}->Destroy();
Common Language Runtime (CLR) use Win32::CLR; Win32::CLR->load_from( $path ); $ fineReaderWrapper  = Win32::CLR->create_instance( "EISFREWrapper.Wrapper" ); $ fineReaderWrapper->setOutputFormat( $format );
Ссылки 1.  презентация www.umnix.com/upload/perlGUI.ppt 2.  сайт компании www.eis.ru 3. www.wxwidgets.org 4. wxperl.sourceforge.net 5. cpan.org 6.  email [email_address] [email_address]

More Related Content

PDF
Alpine.js: the outsider Javascript framework
PDF
Avinash Kundaliya: Javascript and WordPress
PPT
symfony & jQuery (PUG)
PDF
JAVASCRIPT NÃO-OBSTRUTIVO com jQuery
PDF
Love and Loss: A Symfony Security Play
PDF
Matters of State
KEY
amsterdamjs - jQuery 1.5
PDF
How Kris Writes Symfony Apps
Alpine.js: the outsider Javascript framework
Avinash Kundaliya: Javascript and WordPress
symfony & jQuery (PUG)
JAVASCRIPT NÃO-OBSTRUTIVO com jQuery
Love and Loss: A Symfony Security Play
Matters of State
amsterdamjs - jQuery 1.5
How Kris Writes Symfony Apps

What's hot (20)

PPT
symfony & jQuery (phpDay)
PDF
How kris-writes-symfony-apps-london
PPT
jQuery Plugin
PDF
How I started to love design patterns
KEY
Decent exposure: Controladores sin @ivars
PPTX
Real time voice call integration - Confoo 2012
PDF
How I started to love design patterns
PDF
Chainable datasource
PDF
Symfony CoP: Form component
PPT
WordPress Third Party Authentication
PDF
Introduction to CQRS and Event Sourcing
PDF
Symfony Messenger (Symfony Live San Francisco)
PDF
Hacking Movable Type
PPTX
Mysql Aggregate
KEY
次世代PHPフレームワーク Symfony2
PDF
AskTom Office Hours about Database Migrations
ODP
HTML::FormHandler
PDF
Friendlier, Safer WordPress Admin Areas
PPT
Constructive Destructor Use
PPT
Smarter Interfaces with jQuery (and Drupal)
symfony & jQuery (phpDay)
How kris-writes-symfony-apps-london
jQuery Plugin
How I started to love design patterns
Decent exposure: Controladores sin @ivars
Real time voice call integration - Confoo 2012
How I started to love design patterns
Chainable datasource
Symfony CoP: Form component
WordPress Third Party Authentication
Introduction to CQRS and Event Sourcing
Symfony Messenger (Symfony Live San Francisco)
Hacking Movable Type
Mysql Aggregate
次世代PHPフレームワーク Symfony2
AskTom Office Hours about Database Migrations
HTML::FormHandler
Friendlier, Safer WordPress Admin Areas
Constructive Destructor Use
Smarter Interfaces with jQuery (and Drupal)
Ad

Similar to Perl gui (20)

PDF
JavaScript and UI Architecture Best Practices
PDF
The state of Symfony2 - SymfonyDay 2010
PDF
Doctrine For Beginners
ZIP
First Steps in Drupal Code Driven Development
KEY
And the Greatest of These Is ... Rack Support
PPT
jQuery Performance Rules
ODP
Non Conventional Android Programming En
ODP
Non Conventional Android Programming (English)
PPTX
Magento Live Australia 2016: Request Flow
PPTX
Extend sdk
PPT
PPTX
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
PDF
Curso Symfony - Clase 4
PDF
More Secrets of JavaScript Libraries
PDF
Unittests für Dummies
PPTX
Building Your First Widget
PDF
Using and reusing CakePHP plugins
PDF
Single Page Applications in Angular (italiano)
PPT
Writing Pluggable Software
PDF
Virtual Madness @ Etsy
JavaScript and UI Architecture Best Practices
The state of Symfony2 - SymfonyDay 2010
Doctrine For Beginners
First Steps in Drupal Code Driven Development
And the Greatest of These Is ... Rack Support
jQuery Performance Rules
Non Conventional Android Programming En
Non Conventional Android Programming (English)
Magento Live Australia 2016: Request Flow
Extend sdk
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
Curso Symfony - Clase 4
More Secrets of JavaScript Libraries
Unittests für Dummies
Building Your First Widget
Using and reusing CakePHP plugins
Single Page Applications in Angular (italiano)
Writing Pluggable Software
Virtual Madness @ Etsy
Ad

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology
Understanding_Digital_Forensics_Presentation.pptx
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Big Data Technologies - Introduction.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Mobile App Security Testing_ A Comprehensive Guide.pdf

Perl gui

  • 2. Архитектура «Globus Professional» Client App Server DB
  • 3. Вход в «Globus Professional»
  • 5. Класс приложения use Wx; # every program must have a Wx::App-derive class package MyApp; use strict; use warnings; our @ISA=qw(Wx::App); # this is called automatically on object creation sub OnInit { my( $this ) = @_; # create new MyFrame my $frame = MyFrame->new( "Minimal wxPerl app", [ 50, 50 ] , #position [ 450, 350 ] #size ); # set it as top window (so the app will automatically close when # the last top window is closed) $this->SetTopWindow( $frame ); # show the frame $frame->Show( 1 ); 1; }
  • 6. Класс окна (1) package MyFrame; use strict; use warnings; our @ISA=qw(Wx::Frame); use Wx::Event qw(EVT_MENU); use Wx qw(wxBITMAP_TYPE_ICO wxMENU_TEAROFF); # Parameters: title, position, size sub new { my $class = shift; my $ self = $class->SUPER::new( undef, -1, $_[0], $_[1], $_[2] ); # load an icon and set it as frame icon $ self ->SetIcon( Wx::GetWxPerlIcon() ); # create the menus my $mfile = Wx::Menu->new( undef, wxMENU_TEAROFF ); my $mhelp = Wx::Menu->new(); my( $ID_ABOUT, $ID_EXIT ) = ( 1, 2 ); $mhelp->Append( $ID_ABOUT, "&About...\tCtrl-A", "Show about dialog" ); $mfile->Append( $ID_EXIT, "E&xit\tAlt-X", "Quit this program" );
  • 7. Класс окна (2) my $mbar = Wx::MenuBar->new(); $mbar->Append( $mfile, "&File" ); $mbar->Append( $mhelp, "&Help" ); $ self ->SetMenuBar( $mbar ); # declare that events coming from menu items with the given # id will be handled by these routines EVT_MENU( $ self , $ID_EXIT, \&OnQuit ); EVT_MENU( $ self , $ID_ABOUT, \&OnAbout ); # create a status bar (note that the status bar that gets created # has three panes, see the OnCreateStatusBar callback below $ self ->CreateStatusBar( 1 ); # and show a message $ self ->SetStatusText( "Welcome to wxPerl!", 1 ); $ self ; }
  • 8. Обработчики # this is an addition to demonstrate virtual callbacks... # it ignores all parameters and creates a status bar with three fields sub OnCreateStatusBar { my $ self = shift; my $status = Wx::StatusBar->new( $ self , -1 ); $status->SetFieldsCount( 2 ); $status; } # called when the user selects the 'Exit' menu item sub OnQuit { my( $ self , $event ) = @_; # closes the frame $ self ->Close( 1 ); } use Wx qw(wxOK wxICON_INFORMATION wxVERSION_STRING); # called when the user selects the 'About' menu item sub OnAbout { my( $ self , $event ) = @_; # display a simple about box Wx::MessageBox( "This is the about dialog of minimal sample.\n" . "Welcome to wxPerl " . $Wx::VERSION . "\n" . wxVERSION_STRING, "About minimal", wxOK | wxICON_INFORMATION, $ self ); }
  • 9. Запуск приложения package main; # create an instance of the Wx::App-derived class my $app = MyApp->new(); # start processing events $app->MainLoop();
  • 11. АРМ регистратора заявок пользователей
  • 13. Регистрация ActiveX- компонент perl -Mblib -MWx::ActiveX::Template -e"run_wxactivex_template();" Регистрация ActiveX- компонент
  • 14. Работа с компонентом use Win32::OLE; use Win32::OLE::Const; use Win32::OLE::Variant; use Wx::ActiveX::RolledCalendar; … $dlg->{'_ X calendar'} = Wx::ActiveX::RolledCalendar->new( $dlg ); $main_sizer->Add( $dlg->{'_Xcalendar'}, 1, &Wx::wxGROW|&Wx::wxALL, 0 ); $dlg ->{'_calendar'} = $dlg->{'_Xcalendar'}->GetOLE(); $dlg->{' _calendar '}->SetDate( $date ); … $date = $dlg->{'_ c alendar'}->GetDate(); … . $dlg->{'_Xcalendar'}->Destroy();
  • 15. Common Language Runtime (CLR) use Win32::CLR; Win32::CLR->load_from( $path ); $ fineReaderWrapper = Win32::CLR->create_instance( "EISFREWrapper.Wrapper" ); $ fineReaderWrapper->setOutputFormat( $format );
  • 16. Ссылки 1. презентация www.umnix.com/upload/perlGUI.ppt 2. сайт компании www.eis.ru 3. www.wxwidgets.org 4. wxperl.sourceforge.net 5. cpan.org 6. email [email_address] [email_address]