Dynamiczne podpinanie funkcji obsługi zdarzenia
Zazwyczaj funkcje obsługi zdarzeń są podpinane do odpowiednich zdarzeń w czasie projektowania formularza przez okienko Inspektora Obiektów (Object Inspector). Jednak czasami zachodzi potrzeba wykonania tej czynności w kodzie źródłowym programu.
Aby podpiąć funkcję obsługi zdarzeń do danego zdarzenia w kodzie źródłowym programu (dynamicznie) należy sprawdzić, czy funkcja, którą podpinamy do zdarzenia ma dokładnie takie same parametry jak funkcja, która byłaby normalnie tworzona przez Inspektora Obiektów, np.:
umieśćmy na formularzu dwa przycisku TButton, w pliku nagłówkowym, np. w sekcji private deklarujemy funkcję, która będzie obsługiwała zdarzenie OnClick drugiego przycisku (gdy ją podepniemy):
Unit1.h |
private: |
w pliku źródłowym piszemy kod tej funkcji:
Unit1.cpp |
void __fastcall TForm1::OnClick(TObject *Sender) |
na koniec dla pierwszego przycisku tworzymy zdarzenie OnClick za pomocą Inspektora Obiektów:
Unit1.cpp |
void __fastcall TForm1::Button1Click(TObject *Sender) |
Od razu po uruchomieniu programu możecie zobaczyć na jakiej zasadzie to działa, spróbujcie kliknąć przycisk drugi - żadnej reakcji, a teraz kliknijcie pierwszy, który podpina funkcję do drugiego przycisku i kliknijcie drugi przycisk.