Показать сообщение отдельно
  #1  
Старый 14.11.2009, 18:09
Friedrich Friedrich вне форума
Прохожий
 
Регистрация: 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.
Ответить с цитированием