14.11.2009, 18:09
|
Прохожий
|
|
Регистрация: 27.04.2008
Сообщения: 13
Репутация: 10
|
|
OnChange не срабатывает
Всем привет. Я пишу компонент. Этот компонент будет наследником StringGrid. В этом компоненте я создаю Edit1 и определяю Edit1.OnChange:= … и Edit1.OnKeyDown:=… Когда я всё запускаю, то при редактировании Edit Edit1.OnChange не срабатывает, но почему? Я смотрел это при помощи точек останова
Код:
unit dSG;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ToolWin, ImgList, Grids;
type
TdSG = class(TStringGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Edit1Change(Sender: TObject);
public
{ Public declarations }
published
{ Published declarations }
constructor Create(aowner:Tcomponent);override;
end;
var
Edit1 : TEdit;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComponents', [TdSG]);
end;
procedure TdSG.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//////////////
Edit1.Text:='KeyDown';
end;
procedure TdSG.Edit1Change(Sender: TObject);
begin
/////////////
Edit1.Text:='Edit1Change';
end;
constructor TdSG.Create(aowner:Tcomponent);
begin
inherited create(Aowner);
Edit1:=TEdit.Create(Self);
Edit1.Parent:=Self;
Edit1.OnChange:= Edit1Change;
Edit1.OnKeyDown:=Edit1KeyDown;
Edit1.Visible:=true;
end;
end.
|