PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Tk - część XII
  przez wrares (38 odsłon)
Wprowadzanie informacji poprzez formatkę przez użytkownika musi być kontrolowane poprzez program. Informacja wpisywana w pola musi określać jaki zakres znaków jest akceptowalny, a jaki nie. Dziś pokażemy w jaki sposób to zadanie wykonać. Oczywiści jest to tylko przykład, który możecie rozbudowywać. Będziemy posługiwać się już wcześniej przygotowaną formatką, którą wcześniej prezentowaliśmy na łamach portalu. Program Przyszła Wartość, musiał zostać poprawiony , gdyż podawał zawsze zerowy wynik. Co więc dopisaliśmy i poprawiliśmy.
Cytat:

1) Poprawa błędnych obliczeń

2) Dopisanie funkcji walidacji

3) Dopisanie funkcji globalnej konfiguracji dla formatki



Na początku poprawiliśmy błędne obliczenia dlatego zamiast tego zapisu
$z3 = ($z3 ** $z2);

zamieniliśmy na
$z3 = ($z1 ** $z2);


A teraz poważniejsze zadania z walidacją
1) Używamy GUI Buildera do definicji funkcji walidacji i zakresu jej działania

2) Konkretyzacja funkcji w pliku


Jakie czynności wykonujemy w GUI Builderze

Cytat:

1) Uruchamiamy Buildera

2) Wczytujemy plik z formatką przyszla_wartosc.ui

3) Definiujemy dla każdego pola entry dwie wartości
-validate => all
-validatecommand => \&validate

4) Zamykamy i zapisujemy wprowadzone informacje



Poniżej zamieszczamy obraz z konfiguracją tutaj....

Następnie w pliku przyszła_wartosc.pl konkretyzujemy zapis funkcji validate. Zapis prezentujemy poniżej.
sub validate {
    
  my ($text) = @_;
  
  if (length($text) > 8)   { 
    
    return 0;
    
  }
    
  if ($text =~ /[A-Za-z]/)  { 
    
    return 0;
    
  }
  
  return 1; 
}


Przyjęto że ilość znaków w polu nie może przekraczać 8 . Mogą być wprowadzane tylko cyfry z wykluczeniem znaków alfabetu.

sub pozycja {
    
    $root->geometry('+400+400');
    $root->resizable(0,0);
    
}


Blokada rozszerzenia formatki oraz pozycjonowanie jej na ekranie.

our $top = MainWindow->new();
$top->title("przyszla_wartosc");
przyszla_wartosc::ui($top);

&b_czysc_command;
&pozycja;

przyszla_wartosc::run() if defined &przyszla_wartosc::run;

Tk::MainLoop();


Wywołanie funkcji ustawiającej parametry formatki np &pozycja realizuje jej rozmieszczenie na ekranie. Cały program dostępny w Naszym portalu na tej stronie...

Ten artykuł pokazał jak możemy bezproblemowo rozwijać Naszą aplikację, korzystając z GUI Buildera oraz uzupełniać go funkcjami, których nazwy zostały zdefiniowane w Builderze. Z drugiej strony mamy walidację danych, gdyż jest to jedna z najbardziej podstawowych funkcji, którą program musi zapewnić, aby dane wprowadzane do systemu były odporne na błędy popełniane przez użytkownika.

Zachęcamy wszystkich do eksperymentów z walidacją oraz rozszerzaniem funkcjonalności programu.
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :