Wyświetlanie komunikatów
Procedura ShowMessage
Najprostszą procedurą wyświetlającą okno komunikatu jest procedura ShowMessage. Wyświetla ona okno z komunikatem i jednym przyciskiem OK położone centralnie względem ekranu. Definicja procedury jest w module Dialogs, należy zatem dopisać nazwę tego modułu w części deklaracji modułów (po słowie uses).
Nagłówek procedury i parametry:
procedure ShowMessage(const Msg: String);
Msg - komunikat, który pokazuje się w oknie.
Funkcja MessageDlgPos
Funkcja ta wyświetla okno komunikatu w miejscu wskazanym na ekranie. Dodatkowo funkcja umożliwia określenie rodzaju okna oraz liczby i rodzaju wyświetlanych przycisków. Definicja funkcji jest w module Dialogs.
Nagłówek funkcji i parametry:
function MessageDlgPos (const Msg: String; AType: TMsgDlgType; AButtons: MsgDlgButtons; HelpCtx: Longint; X, Y: Integer): Word;
Msg - wyświetlany komunikat
AType - typ wyświetlanego okna: mtWarning (ostrzeżenie), mtError (błąd), mtIformation (okno informacyjne), mtConfirmation (pytanie), mtCustom (puste). Okno wyposażone jest w ikonę, której postać zależy od parametru. Wygląd ikon taki jak dla metody MessageBox
AButtons - zbiór wyświetlanych przycisków.
Symbole przycisków: mbYes, mbNo, mbOK, mbCancel, mbAbort. mbRetry, mbIgnore, mbAll, mbHelp.
Wybrane przyciski powinny być przekazywane w nawiasach kwadratowych jako elementy typu zbiorowego, np. [mbYes, mbNo]
HelpCtx - kontekst pomocy (Helpu), parametr ten stosowany jest, gdy budujemy system pomocy do programu
X, Y - współrzędne wyświetlania lewego górnego rogu okna.
Wartości zwracane przez funkcję MessageDlgPos
Funkcja zwraca informację o tym, który przycisk został naciśnięty, zwracane wartości:
mrNone, mrAbort, mrYes, mrOk, mrRetry, mrNo, mrCancel, mrIgnore, mrAll.
Zadanie l
Na formularzu wstaw trzy przyciski z napisami: Lewy górny róg, Środek, Prawy dolny róg. W zależności od wybranego przycisku, wyświetlaj okno MessageDlgPos w określonym miejscu ekranu.
Metoda MessageBox
Metoda ta, zawarta w obiekcie Application reprezentującym naszą aplikacje, wyświetla okno komunikatu z określonym nagłówkiem, określoną liczbą i rodzajem przycisków.
Aby ją wywołać, należy jej nazwę poprzedzić nazwą obiektu - Application. MessageBox.
Nagłówek i parametry metody:
function MessageBox(Text, Caption: PChar; Flags: Longint): Integer;
Text - jest komunikatem, może być dłuższy niż 255 znaków
Caption - parametr opcjonalny - napis na pasku tytułowym okna
Flags - parametr określający typ okna, liczbę przycisków itp. Jeśli wykorzystujemy więcej niż jedną wartość, parametry z różnych grup można łączyć znakiem +.
Wartości parametru Flags dotyczące liczby i rodzaju przycisków
Parametr flags
|
Liczba i rodzaj przycisków
|
MB_AbortRetryIgnore
|
Przyciski: Przerwij, Ponów próbę, Zignoruj
|
MB_OK.
|
Przycisk: Tak
|
MB_OkCancel
|
Przyciski: Tak, Anuluj
|
MB_RetryCancel
|
Przyciski: Ponów próbę, Anuluj
|
MB_YesNo
|
Przyciski: Tak, Nie
|
MB_YesNoCancel
|
Przyciski: Tak, Nie, Anuluj
|
Wartości parametru Flags dotyczące aktywnego przycisku
Parametr flags
|
Numer aktywnego przycisku
|
MB_DefButtonl |
Wartość domyślna — pierwszy przycisk aktywny |
MB_DefButton2
|
Drugi przycisk aktywny
|
MB_DefButton3
|
Trzeci przycisk aktywny
|
Wartości parametru Flags dotyczące ikon wyświetlanych w oknie
Parametr flags
|
Wygląd ikony
|
MB_IconExclamation |
! |
MB_IconInformation
|
! |
MB_IconQuestion
|
? |
MBJconStop
|
x |
Wartości parametru Flags dotyczące modalności okna
Parametr flags
|
Znaczenie
|
MB_ApplModal
|
Wartość domyślna, oznacza okno modalne, należy kliknąć przycisk okna, aby kontynuować pracę. Można kontynuować pracę w innej aplikacji
|
MB_SystemModal
|
Okno modalne, należy kliknąć przycisk, aby kontynuować pracę. Nie można kontynuować pracy w innej aplikacji
|
Wartości zwracane przez metodę
Stała
|
Wartość liczbowa
|
Przycisk wybrany przez użytkownika
|
IdOk
|
1
|
Tak
|
IdCancel
|
2
|
Anuluj
|
IdAbort
|
3
|
Przerwij
|
IdRetry
|
4
|
Ponów próbę
|
Idlgnore
|
5
|
Zignoruj
|
IdYes
|
6
|
Tak
|
IdNo
|
7
|
Nie
|
Ćwiczenie 2.9
Zadanie aplikacji
Aplikacja po naciśnięciu przycisku wyświetla okno komunikatu opatrzone znakiem ?. Okno zawiera trzy przyciski: Przerwij, Ponów próbę, Zignoruj. Po wybraniu przez użytkownika przycisku napis z przycisku pokazuje się na etykiecie.
Nowe umiejętności
Przykład użycia metody MessageBox.
Na formularzu wstaw przycisk z napisem Wywołanie i etykietę Label.
Dla zdarzenia OnClick przycisku wpisz procedurę:
procedure TForml.Button1Click(Sender: TObject);
var wynik: Integer;
begin
wynik:=Application.MessageBox('Naciśnij klawisz',
'Testowanie MessageBox', _AbortRetryIgnore+Mb_defButton2+MB_IconQuestion);
Case wynik of
3:Label1.Caption: = 'Przerwij';
4:L"bel1.Caption:='Ponów próbę';
5:Label1.Caption: = 'Zignoruj';
end;
end;
Sprawdź działanie aplikacji i wypróbuj inne połączenia flag.
Zadanie l
Wykorzystując poznane wiadomości, utwórz aplikację z własnym menu, która prezentuje wybrane okna komunikatu.
Zadanie 2
Zbuduj aplikacje do przeprowadzenia testu z wiadomości o komputerze. Pytania umieść w tablicy stałych o typie elementu String[80]. Do wyświetlenia pytań użyj wyświetlanego w pętli okna komunikatu z dwoma przyciskami: Tak, Nie i ikoną zapytania. Po naciśnięciu odpowiedniego przycisku w oknie ShowMessage wyświetlana jest informacja o poprawności, ale nie ma już wtedy możliwości odpowiedzi na pytanie. Liczba poprawnych odpowiedzi zliczana jest pod zmienną globalną i wyświetlana po zakończeniu testu.
2