Pola edycyjne wyświetlane przez komponenty
Prostym sposobem wprowadzania danych są pola edycyjne, dostępne przez komponenty: Edit, MaskEdit, RitchEdit i Memo. Pole MaskEdit przez użycie maski znaków umożliwia dodatkowo czuwanie nad poprawnością wpisywanych danych. Podstawową właściwością komponentów jest właściwość Text typu String, zwracająca zawartość pola edycji.
Zastosowanie komponentu Edit do wprowadzania danych
Komponent Edit znajduje się na karcie Standard. Wyświetla pole edycji do wprowadzania danych. Wartości wpisane przez użytkownika w polu można odebrać przez właściwość Text, na przykład:
Labe11.Caption:=Editl.Text;
Ćwiczenie 2.3
Zadanie aplikacji
Aplikacja wczytuje przez pole Edit łańcuch znaków i wyświetla wczytany łańcuch na etykiecie. Potwierdzeniem wprowadzenia danych jest kliknięcie myszą w polu edycji.
Nowe umiejętności
Zastosowanie komponentu Edit do wprowadzania danych.
Na formularzu wstaw komponent Edit z karty Standard i etykietę Label.
Dla zdarzenia OnCIick komponentu Edit wpisz treść procedury:
Label1.Caption:=Edit1.Text;
Uruchom aplikacje i sprawdź jej działanie, sygnalizując koniec edycji kliknięciem w obszarze pola.
Stosowanie komponentu MaskEdit do wprowadzania danych
Na karcie Additional znajduje się komponent MaskEdit, który umożliwia zabezpieczanie wprowadzania danych wejściowych przez wymuszenie na użytkowniku wpisywania określonych znaków.
Maskę jako ciąg znaków wpisuje się w polu właściwości EditMask. Można także ją wybrać z gotowych wzorców przechodząc przyciskiem w polu do edytora maski.
Wartości wpisane przez użytkownika odbieramy poprzez właściwość Text, na przykład:
Label1.Caption:=MaskEdit1.Text;
Opis znaków dopuszczalnych w maskach pól
Znak |
Znaczenie |
! |
Jeśli znak występuje w masce tworzony jest odstęp początkowy, jeśli znak nie występuje, oznacza to odstęp na końcu |
> |
Wszystkie znaki następujące po tym znaku są zamieniane na duże litery aż do napotkania znaku |
< |
Wszystkie znaki następujące po tym znaku są zamieniane na małe litery aż do napotkania w masce znaku >. |
<> |
Maska nie jest sprawdzana, a znaki formatowane są przez użytkownika |
\ |
Znak podany po znaku \ występuje w napisie jako stała literowa |
L |
W miejscu występowania znaku może być wpisana tylko litera ze zbioru: A-Z, a-z.. Wpisanie litery jest wymagane |
l |
W miejscu występowania znaku może być wpisana tylko litera. Wpisanie litery nie jest wymagane |
A |
Na pozycji występowania znaku może być wpisany znak alfanumeryczny ze zbioru: A-Z, a-z, 0-9. Wpisanie znaku jest wymagane |
a |
Na pozycji występowania znaku może być wpisany znak alfanumeryczny ze zbioru: A-Z, a-z, 0-9. Wpisanie znaku nie jest wymagane |
C |
Dowolny znak na tej pozycji. Wpisanie znaku jest wymagane |
c |
Dowolny znak na tej pozycji. Wpisanie znaku nie jest wymagane |
0 |
Wymagany jest znak numeryczny |
9 |
Znak numeryczny, wpisanie znaku nie jest wymagane |
# |
Znak ten dopuszcza wpisanie + lub - w tym miejscu. Wpisanie znaku nie jest wymagane |
: |
Znak ten jest używany przy wpisywaniu czasu do oddzielenia godzin, minut i sekund, zamieniany jest na znak obowiązujący w systemie |
/ |
Znak używany do wpisywania daty, oddziela dzień miesiąc i rok. Zamieniany jest na znak zgodny z ustawieniami w systemie |
; |
Znak używany do separowania pól w masce; może na przykład oznaczać koniec zamiany na duże litery |
_ |
Znak ten dopuszcza wpisanie spacji do tekstu |
Inny znak |
Znak występuje jako stała literowa w edytowanym słowie |
Ćwiczenie 2.4
Zadanie aplikacji
Wczytywanie danych do wizytówki przez pola MaskEdit.
Nowe umiejętności
Korzystanie z pola MaskEdit.
W dolnej części formularza umieść pola MaskEdit do wczytywania nazwiska, imienia, numeru telefonu oraz adresu.
Dla pól zawierających tekst wypełnij właściwość EditMask wartością: >L<lllllllllllllllllllllllllll. Pozwoli to na wpisywanie wyłącznie liter oraz zamianę pierwszej litery na dużą.
Wypełnij maski pozostałych pól tak, aby zabezpieczyć przed błędnym wprowadzaniem danych.
Poprzedź pola MaskEdit etykietami z zachętą do wprowadzania danych.
U góry formularza umieść w formie wizytówki etykiety Label, na których rozmieszczone będą wczytywane dane.
Wstaw przycisk z napisem Czytaj. Wpisz procedurę, której zadaniem jest przepisanie zawartości pól MaskEdit na odpowiednie etykiety, na przykład:
Label1.Caption:=MaskEdit1.Text;
Sprawdź działanie aplikacji. Sprawdź możliwość wpisywania danych spoza zakresu maski.
Przykład zastosowania pola MaskEdit do budowy okna edycyjnego
Ćwiczenie 2.5
Zadanie aplikacji
Ćwiczenie przygotowuje okno dialogowe dostosowane do wczytywania nazwiska osoby. Pole edycji jest zabezpieczone tak, że pierwsza litera przekształcana jest na dużą literę, a znaki nie będące literami nie są przyjmowane. Jako znak gotowości wyświetlany jest na etykiecie napis: Podaj nazwisko. Okno opatrzone jest przyciskami Wczytaj, Anuluj. Aplikacja korzystając z okna dialogowego, wczytuje dane i wyświetla je na etykiecie.
Nowe umiejętności
Zastosowanie komponentu MaskEdit do wprowadzania danych. Użycie przycisków typu BitBtn.
Na formularzu umieść przycisk polecenia Button lub BitBtn z napisem Wczytaj dane i etykietę Label.
Wybierając z menu File->New Form dodaj do projektu nowy formularz. Umieść na nim komponenty Label i MaskEdit oraz dwa komponenty typu BitBtn. Zmień Caption formularza na Wczytywanie danych.
Na etykiecie umieść napis Podaj nazwisko.
Dla pól MaskEdit wypełnij pole EditMask tak, by zabezpieczyć wprowadzanie nazwiska:
>L<lllllll //tylko litery, pierwsza litera duża
Wyselekcjonuj jeden przycisk BitBtn i ustaw jego właściwość:
Kind bkOK //przycisk z symbolem operacji potwierdzenia, opatrzony reakcją na klawisz Enter (wykona się procedura OnClick). Dla klawisza Escape procedura nie zostanie wykonana.
Caption Wczytaj
Ustaw właściwość drugiego przycisku:
Kind bkCancel
Caption Anuluj
Dla przycisku Anuluj wpisz procedurę:
procedure TForm2.BitBtn2Click (Sender: TObject);
begin
MaskEdit1.SetFocus; //uaktywnienie pola MaskEdit
MaskEdit1.Text :=''; //czyszczenie pól edycji
MaskEdit1.SelStart:=0; //ustawienie kursora w polu edycji na pierwszym znaku
end;
Dla przycisku Wczytaj wpisz procedurę:
procedure TForm2.BitBtn1Click (Sender: TObject);
begin
//przekazanie danych z pola edycji na formularzu Form2 do etykiety na formularzu Form1
Form1.Label1.Caption:=Form2.MaskEdit1.Text;
end;
Dla zdarzenia OnActivate dla formularza Form2 wybierz procedurę przypisaną do przycisku Anuluj: TForm2.BitBtn1Click - aby wyczyścić okno edycyjne przy wejściu do formularza. To samo dla zdarzenia OnShow tego formularza.
Przejdź do formularza Forml i dla przycisku Wczytaj dane wpisz procedurę:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show: //uwidocznienie formularza Form2
end:
Skompiluj aplikację. Wciskając przycisk Yes w pokazującym się oknie komunikatu, dodaj do projektu brakujące elementy.
Uruchom aplikację i sprawdź jej działanie. Sprawdź reakcję na przyciśnięcie przycisków. Sprawdź, czy naciśnięcie klawisza Enter wywołuje procedurę przypisaną do przycisku Wpisz, a naciśnięcie Escape procedurę przypisaną do przycisku Anuluj.
2