Okna dialogowe dostępne przez funkcje - wprowadzanie łańcucha
Jedną z ważniejszych cech aplikacji jest możliwość komunikowania się z użytkownikiem. W jeżykach wizualno-obiektowych wprowadzanie danych i wyprowadzanie wyników dokonuje się w obrębie typu łańcuchowego.
Do wczytywania łańcucha służą funkcje InputBox i InputQuerry. Wywołanie tych funkcji powoduje wyświetlenie okna dialogowego, poprzez które użytkownik wprowadza z klawiatury dane odczytywane przez aplikacje jako łańcuch znaków. Definicje obu funkcji są w module Dialogs. Przy korzystaniu z tych funkcji, należy w części deklaracji modułów, po słowie uses, dopisać nazwę modułu Dialogs.
InputBox
Funkcja wyświetla okno dialogowe z polem edycji do wprowadzenia z klawiatury łańcucha znaków. Możliwe jest określenie wartości domyślnej.
Okno dialogowe ma dwa przyciski: OK i Cancel. Jeśli użytkownik wybierz Cancel, funkcja zwróci łańcuch domyślny. Jeśli użytkownik wybierze OK, funkcja zwróci łańcuch wprowadzony przez użytkownika.
Postać nagłówka i opis parametrów funkcji:
function InputBox(const ACaption, APrompt, ADefault: string): string;
ACaption - łańcuch wyświetlany na pasku tytułowym okna dialogowego
APrompt - tekst zachęty do wprowadzania danych
ADefault - łańcuch, który pokazuje się jako parametr domyślny w polu edycji.
Ćwiczenie 2.1 - wprowadzanie danych
Zadanie aplikacji
Aplikacja po naciśnięciu przycisku z napisem Czytaj wczytuje za pomocą funkcji InputBox podany łańcuch znaków (imię i nazwisko) i wyświetla te informacje na etykiecie.
Nowe umiejętności
Stosowanie funkcji InputBox.
Na formularzu wstaw komponenty Button i Label. Zmień napis na przycisku na Czytaj.
Przypisz do przycisku procedurę-zdarzenie:
procedure TForml.ButtonlClick (Sender: TObject);
begin
Label1.Caption:=InputBox('Dane personalne', 'Podaj imię i nazwisko', 'Imię i Nazwisko');
end;
Sprawdź działanie, zwróć uwagę na tytuł okna, tekst zachęty, wartość domyślną.
InputQuery
Funkcja InputQuery, podobnie jak InputBox, pobiera od użytkownika łańcuch słów. Podany z wejścia napis przekazywany jest do programu parametrem Value (jest to trzeci parametr funkcji). Funkcja nie ma możliwości ustawienia wartości domyślnej. Pod swoją nazwą zwraca True - jeśli użytkownik wybierze OK, False -i użytkownik wybierze Cancel lub wciśnie Esc.
Nagłówek funkcji i parametry:
function InputQuery(const ACaption, APrompt: String; var Value: String):
ACaption - tekst wyświetlany na pasku tytułowym okna dialogowego
APrompt - tekst zachęty do wprowadzania danych
APrompt - łańcuch wprowadzony przez użytkownika w polu edycji.
Ćwiczenie 2.1
Zadanie aplikacji
Aplikacja po naciśnięciu przycisku z napisem Czytaj wczytuje podany łańcuch znaków wykorzystując funkcję lnputQuery, i wyświetla te informacje na etykiecie. Jeśli dane nie zostaną wpisane przez użytkownika, na etykiecie jest wyświetlany napis: Brak. Można wykorzystać w tym celu poprzednią formatkę.
Nowe umiejętności:
Stosowanie funkcji InputQuery.
Na formularzu wstaw przycisk Button z napisem Czytaj i etykietę Label.
Do przycisku przypisz procedurę-zdarzenie:
procedure Tform1.Button1Click(Sender: TObject);
var dane:String;
begin
if InputQuery('Wprowadzanie danych','Wprowadź i zatwierdź dane', dane)
then //gdy wciśnięto OK
Buttonl.Caption:=dane;
Else //gdy wciśnięto Cancel
Buttonl.Caption:='Brak danych';
end;
Sprawdź działanie aplikacji po podaniu danych i gdy ich brak.
Zadanie l
Napisz program wyświetlający na etykiecie informacje o tym, który przycisk okna dialogowego InputQuery został wciśnięty.
Zadanie 2
Napisz program, który przez okno dialogowe wczytuje imię i wyświetla komunikat:
Dzień dobry Imię.
2
Okno funkcji InputBox