End;
. .
Procedure TForml.FormKeyDown(Sender: TObject; Var Key: Word;
Shift: TShiftState);
Begin
Case Key Of
VK_DOWN: IfNuniMeino.NuinStr<NumMeino.Lines.Count+l Then NuniMemo.Perfornt(WM_USERl, 1, 0);
VK_UP: IfNumMemo.NuniStr>l Then
SendMessage(NumMemo.Handle, WM_USER1, -1, 0);
VK_RETURN: PostMessage(NumMemo.Handle, WM_USER1,1, 0);
End;
End;
, Windows.
- , . - , ( ). , a Delphi .
Events . Delphi , TForm Begin End.
. Delphi , Windows. , , . , .
- , Sender, - . , , , . Sender. , , Sender , . TObject, TObject ( ). Sender - .
, , - , .
, , . Delphi , .
|
|
, , . , (TLabel), , :
. ;
(trap the event). , , .
) .
TNotifyEvent , Sender, , . Classes :
Type TNotifyEvent=Procedure(Sender: TObject) Of Object;
OnClick - . :
Procedure TForml.FormClick(Sender: TObject);
Begin
ShowMessage(' !');
End;
) .
, () , . , ( OnMouseDown), , . , . TMouseEvent, Delphi :
Type TMouseEvent^Procediu^Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer) Of Object;
, , OnMouseDown Events . - ,
, :
Procedure TForml.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Begin
Forml.Canvas.Font.Color:=clBIue; // Forml.Canvas.Brush.CoIor:=cIBtnFace; // Forml.Canvas.TextOut(X, Y, 'X='+IntToStr(X)+' Y='+IntToStr(Y));
End;
, .
- , , , , . (delegation). , , . - , () . :
|
|
<oemI>.<coblmue>'.=:<oem2>.<comlte>;
, () "" :
<>.<>:=!^11;
, . , Delphi . . , (Self), , (.. Self).
Type TAnyEvent=Procedure(Sender: TObject; VarAValue; Integer) Of Object;
TlstClass=Class //
FOnMyEvent: TAnyEvent;
Property OnMyEvent: TAnyEvent Read FOnMyEvent Write FOnMyEvent;
End;
T2ndClass=CIass // -
Procedure SetValuel(Sender: TObject; Var AValue: Integer);
Procedure SetValue2(Sender; TObject; VarAValue: Integer);
End;
Var Objl: TIstClass;
Obj2: T2ndClass;
Begin
Objl:=TlstClass.Create;
Obj2:=T2ndClass.Create;
Obj 1.0nMyEvent:=Obj2.SetValuel; II
Obj 1.0nMyEnent:=Obj2.SetValue2; It
Obj 1.OnMyEnent:=Nil; //
, , Delphi - , . , . , .
, , - , .
, , , , Is:
If Sender Is <0 Then <onepamop>;
, Tag , :
If </cnacc>(Sender).Tag==l Then <onepamop>\
If (Sender As <^acc>).Tag=l Then <onepamop>\
Delphi . , Events, . Delphi .
, , :
Var AnyEvent, NameEvent: <mun >;
Begin
AnyVlVeat'.xs:<oem>.<comue>, NameEvent:=<ayKfl >;
If@AnyEvent=@NameEvent Then <onepamop>\
:
Var AnyEvent: <mun >;
Begin
AnyEvent:=<o6'beKm>.<co6btmue>',
Labell.Caption:=MethodName(@AnyEvent); // Label2.Caption:=Format('%p', [@AnyEvent]); //