16 Aplikacje w Delphi. Przykłady

Nagłówki procedur obsługi zdarzeń, a także szkielet takiej procedury w części implementacyjnej modułu są tworzone automatycznie po dwukrotnym kliknięciu tego komponentu podczas projektowania lub po dwukrotnym kliknięciu w okienku Inspektora Obiektów w polu, które znajduje się z prawej strony nazwy zdarzenia (zakładka Events). W zależności od typu komponentu dwukrotne kliknięcie tego komponentu w fazie projektowania najczęściej powoduje wejście do procedury obsługi zdarzenia OnClick (np. dla TButton, TLabel, TImage, TListBox) lub zdarzenia OnChange (np. dla TEdit, TScrollBar, TMemo, TComboBox). W przypadku formularza dwukrotne kliknięcie spowoduje utworzenie szkieletu procedury obsługi zdarzenia OnCreate, występującego podczas tworzenia formularza. W procedurze tej zwykle wpisuje się ustawienia początkowe dla programu.

Na przykład dwukrotne kliknięcie przycisku o standardowej nazwie Buttonl (w fazie projektowania) powoduje dopisanie do definicji klasy TForml nagłówka procedury ButtonlCl ick oraz ustawienie kursora wewnątrz bloku procedury w części implementacyjnej modułu:

type

TForml = class(TForin)

Buttonl: TButton:

procedurę ButtonlClick(Sender: TObject): private

{ Private declarations } public

{ Public declarations } end: var

Forml: TForml;

implementation

{SR *.dfm}

procedurę TForml.ButtonlClickCSender: TObject): begin

//tu wpisujemy instrukcje, które zostaną wykonane po uruchomieniu programu //i kliknięciu przycisku Buttonl. end; end.

Parametr procedury ButtonlCl ick o nazwie Sender identyfikuje obiekt, w którego kontekście wystąpiło dane zdarzenie. Może być wykorzystany w sytuacji, gdy dana procedura zdarzeniowa jest przypisana do kilku różnych zdarzeń dla różnych obiektów. Przykładowo, jeśli w okienku Inspektora Obiektów obok nazwy zdarzenia OnClick dla przycisku Buttonl pojawi się nazwa procedury ButtonlCl ick i tę samą nazwę przypiszemy dla zdarzenia OnClick komponentu Image 1, to w procedurze można sprawdzić, dla którego komponentu wystąpiło zdarzenie, za pomocą instrukcji: if Sender is TButton then ... lub if Sender is TImage then ..., unikając w ten sposób pisania kolejnych procedur obsługi zdarzeń. Przykłady wykonywania tych samych operacji dla wielu komponentów przedstawiono w rozdziale 20.

Najczęściej występujące zdarzenia dla komponentów wynikają z wykonania następujących czynności: