Консультация № 123139
14.02.2008, 16:48
0.00 руб.
0 1 1
Уважаемые эксперты, возник вопрос.

Пишу компонент. для упрощения скажу что это некое подобие Labeled Edit

наследуется он от TCustomControl и на нем находятся некоторые компоненты. вопрос вот в чем на TCustomControl у меня лежит допустим Edit как мне создать событие OnKeyPress у TCustomControl чтобы он срабатывало при KeyPress у Edit.

Обсуждение

Неизвестный
14.02.2008, 21:55
общий
это ответ
Здравствуйте, Кэр Лаэда!

Все необходимые возможности, по минимуму, представлены в модуле в приложении:


Приложение:
unit Unit2;interfaceuses Windows, SysUtils, Messages, Classes, Graphics, Forms, ExtCtrls, Menus, Controls, Dialogs, OpenGL, UnitUtils, StdCtrls;type TMyControl = class(TCustomControl) private FOnKeyPress: TKeyPressEvent; FEdit: TEdit; procedure DoKeyPress(Sender: TObject; var Key: Char); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress; end;implementation{ TMyControl }constructor TMyControl.Create(AOwner: TComponent);begin inherited Create(AOwner); FEdit:=TEdit.Create(Self); FEdit.Parent:=Self; FEdit.OnKeyPress:=DoKeyPress;end;destructor TMyControl.Destroy;begin FEdit.Free; inherited Destroy;end;procedure TMyControl.DoKeyPress(Sender: TObject; var Key: Char);begin //Что-то делаем прежде, чем передать обработчик события дальше //... //Передаем обработку события куда-то, за пределы класса if Assigned(FOnKeyPress) then FOnKeyPress(Sender, Key); //Завершаем обработку события //...end;end.
Форма ответа