.


:




:

































 

 

 

 


IfAssigned(FOnMouseMove) Then FOnMouseMove(Self, Shift, X, Y);




End;

, , :

IfAssigned(OnKeyPress) Then OnKeyPress(Self, Key);

If Key #0 Then <onepamop>;

, .. , , :

If Assigned(OnClick) Then OnClick(Self) Else <onepamop>;

. - TMemo, Label 1 Up Down.

.

Type

TNumStrEvent=Procedure(Sender: TObject; Num: Integer) Of Object; // TNumMemo=Class(TMemo) // Private

FOnNumStr: TNumStrEvent; // FNumStr; Integer; // Protected

Procedure DoNumStr(Num: Integer); Dynamic; // Public

Property NumStr: Integer Read FNumStr Write FNumStr; // Property OnNumStr: TNumStrEvent Read FOnNumStr Write FOnNumStr;

End;

FNumStr NumStr .

, TFormI, .

TForm' <:lass(TForm) Labell: TLabel;

Procedure FormCreate(Sender: TObject);

Procedure FormKeyDown(Sender: TObject; Var Key: Word;

Shift: TShiftState);

Public

NumMemo: TNumMemo; // Procedure EventNumStr(Sender: TObject; Num: Integer); // End;

EventNumStr :

Procedure TNumMemo.DoNumStr(Num; Integer);

Begin

IfAssigned(FOnNumStr) Then FOnNumStr(Self, Num); II End;

Procedure TForml.EventNumStr(Sender: TObject; Num: Integer);

Begin

NumMemo.NumStr:=NumMemo.NumStr+Num; //

Labell.Caption:=IntToStr(NumMemo.NumStr); // End;

TNumMemo , OnCreate .

Procedure TForml.FormCreate(Sender: TObject);

Begin

NumMemo:=TNumMemo.Create(Self); // With NumMemo Do Begin Parent:=Self;

SetBounds(10,10,150,150); 11 Name:='NumMemo';

FNumStr:=l; // Visible:=True;

OnNumStr:=EventNumStr; II End;

Forml.KeyPreview;=True; II End;

OnKeyDown "" Up (VK_UP) Down (VKJDOWN) TNumMemo. NumMemo Enter (VK_RETURN).

Procedure TForml.FormKeyDown(Sender: TObject; Var Key: Word;

Shift: TShiftState);

Begin

Case Key Of

VK_DOWN: If NumMemo.NumStr<NumMemo.Lines.Count+l

Then NumMemo.DoNumStr(l);

VK_UP: IfNumMemo.NumStr>l Then NumMemo.DoNumStr(-l);

VK_RETURN: NumMemo.DoNumStr(l);

End;

End;

Up Down. Labell . OnNumStr:=EventNumStr, . , .

) .

TControl , . . , . .

Const WM_USER1=WM_APP; // Type

TNumMemo=Class(TMemo) Protected

II Procedure WMNumStr(Var Msg: TMessage); Message WM_USER1;

:

Procedure TNumMemo.WMNumStr(Var Msg: TMessage);

Begin





:


: 2016-10-30; !; : 411 |


:

:

.
==> ...

1905 - | 1780 -


© 2015-2024 lektsii.org - -

: 0.008 .