|
Otóż event to takie coś co inaczej możemy nazwać zdarzeniem, zdarzenie wywoływane zawsze kiedy zajdą sprzyjające mu warunki. Poniżej opiszę eventy do standartowych komponetów i formularza Delphi [opierając się na D6]. procedure TForm1.FormActivate(Sender: TObject); begin // wywoływana kiedy forma Form1 staje się spowrotem aktywnym oknem end; procedure TForm1.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); begin // wywołana tuż przed zmianą wielkości okna NewWidht i NewHeight oznaczają właśnie tę wielkość, // a Resize oznacza czy pozwolimy na tą zmianę. Resize:=False i niezmienimy rozmiaru okienka end; procedure TForm1.FormClick(Sender: TObject); begin // wywołane gdy klikniemy myszką w obrębie formy end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin // jeśli jest to główna forma aplikacji to w tym miejscu możemy zwalniać zasoby, event wywoływany // gdy dane okno jest zamykane (zaknięcie głównej formy powoduje wyłączenie programu) // Action jest to akcja jaką ma wykonać, najbardziej przydatne to: // Action:=caNone; - nie robi nic nawet nie zamyka okienka // Action:=caFree; - zamyka okno i zwalnia // pozowstawienie Action bez zmian powoduje zamknięcie okna end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin // żądanie zamknięcia okienka, CanClose:=True oznacza, że zezwalamy na to end; procedure TForm1.FormConstrainedResize(Sender: TObject; var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer); begin // tutaj możemy ustawić minimalne i maxymalne rozmiary okna dopuszczalne przez nas podczas // zmiany rozmiaru end; procedure TForm1.FormContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin end; procedure TForm1.FormCreate(Sender: TObject); begin // wywoływane gdy forma jest tworzona end; procedure TForm1.FormDblClick(Sender: TObject); begin // a tu gdy wykonamy dwuklik na okienku end; procedure TForm1.FormDeactivate(Sender: TObject); begin // kiedy forma przestaje byc aktywna end; procedure TForm1.FormDestroy(Sender: TObject); begin // a to chwila przed zniszczeniem [zwolnieniem] formy end; procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer); begin // kiedy wykonamy Drag a potem Drop wtedy ten event zostanie wywołany // Source to obiekt z którego dragowaliśmy, natomiast X, Y to współrzędne // wykonania dropa end; procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin // kiedy zrobiliśmy Drag i wykonujemy Over [przesywamy to co dragneliśmy myszką] // Source j/w, X i Y to współrzene w których właśnie robimy Over // Accept:=True ozanacza, że akceptujemy w tym miejscu wykonanie Dropa end; procedure TForm1.FormHide(Sender: TObject); begin // kiedy użyjemy procedury Form1.Hide; wtedy ten event zostanie uruchomiony end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin // gdy wciśniesz klawisz i trzymasz wciśnięty klawisz // Key to klawisz który się wcisnął // Shift to klawisz typu ssAlt lub ssShift // np. if (Shift=ssAlt) and (Key=VK_RETURN) then wciśneliśmy Alt+Enter end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin // zwykłe naciśniecię klawisza czyli nacisnąć i puścić tutaj mamy Key jako Char // czyli odrazu wiemy co się nacisło i możemy zrobić np. tak Form1.Caption := Form1.Caption + Key; end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin // gdy się coś nacisło to prędzej czy później się to puści i wtedy właśnie przychodzi // z pomocą ten event paramerty takie same jak w KeyDown end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // podobnie jak z klawiaturą tyleże tu jest myszka, event uruchamiany gdy naciśniemy któryś // z przycisków myszki, oczym daje znać Button [mbLeft, mbRight lub mbMiddle] // Shift to tak jak w kibordzie [ssAlt lub ssShift] // X i Y współrzędne wciśnięcia myszki end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin // najczęściej uruchamiany event, włącza się on gdy ruszamy myszką po formie // X i Y to aktualne położenie kursora myszki na formie, a Shift już chyba jest znany end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // gdy zrobiliśmy MouseDown kolej na MouseUp, wszystko tak samo jak w MouseDown end; procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin // tutaj obsługujemy co zrobić gdy ktoś bawi się w kręcenie rolką end; procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin // a tutaj nic nie powiem bo niemam rolki :P // ale chyba chodzi o to że czasmi rolke to przycisk [szczególnie w modelach 2-rolkowych] end; procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin // j/w :P end; procedure TForm1.FormPaint(Sender: TObject); begin // kiedy rysujemy jakieś Bitmapy na formie, to proponuję tutaj wstawić odrusowanie tego // gdyż samo z siebie to się nie weźmie, otóż Windows nie przechowuje każdego okna // jako jakiś obraz, więc gdy zasłonimy nasze okienko czymś innym, a potem odsłonimy // Windows wysyła do naszego okienka kominikat "Odmaluj się" // jeśli ktoś nie jarzy to proponuję abyście wczytali jakąś bitmapę do uprzednio // stworzonej zmiennej, a potem Form1.Canvas.Draw(10,10,Bitmapa). Następnie F9 i zasłoncie // kawałek okienka z tą bitmapą a potem odsłońce :) end; procedure TForm1.FormResize(Sender: TObject); begin // gdy formie zmienia się rozmiar end; procedure TForm1.FormShow(Sender: TObject); begin // gdy forma jest pokazywana czyli np. Form1.Show; end;Dla wielu komponentów istnieją te same Eventsy przeglądając paletę komponentów możma by dodać jeszcze procedure TForm1.ComboBox1Change(Sender: TObject); begin // dostępne też dla TEdit i innych komponentów, w które możma wpisywać dane // wywoływane gdy zawartość się zmiania end; procedure TForm1.Label2MouseEnter(Sender: TObject); begin // w D6 [bo w D3 nie było] mamy takie coś dla Labela // wywoływane gdy najedziemy nań myszką end; procedure TForm1.Label2MouseLeave(Sender: TObject); begin // a to gdy zjedziemy myszką z Labela, to także dopiero chyba w D6 [w D3 nie było] end;Zazwyczaj eventy są tak dobrze nazywane, że można poznać do czego są, jak działają i kiedy są uruchamiane jeśli choć trochę rozumie się angielski. ...powrót |