Top/Delphi/StringGridでセル編集終了時のイベントを取得する の編集

Delphi/StringGridでセル編集終了時のイベントを取得する の編集 の変更点


//Delphi/StringGridでセル編集終了時のイベントを取得する の編集
以下の方法で実現できます。

*サンプルソース~

 TStringGridEx = class(TStringGrid)
 private
  FOnEditEnd:TNotifyEvent;
 protected
  procedure WMCommand(var Msg:TWMCommand);message WM_COMMAND;
 published
  property OnEditEnd:TNotifyEvent read FOnEditEnd write FOnEditEnd;
 end;
 
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private 宣言 }
  public
    SG:TStringGridEx;
    procedure SGEditEnd(Sender:TObject);
  end;
 
 var
  Form1: TForm1;
 
 implementation
 
 {$R *.DFM}
 
 procedure TStringGridEx.WMCommand(var Msg:TWMCommand);
 begin
  inherited;
  if Msg.NotifyCode = EN_KILLFOCUS then
    if Assigned(FOnEditEnd) then FOnEditEnd(Self);
 end;
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
  SG := TStringGridEx.Create(self);
  SG.Parent := self;
  SG.Top := 10;
  SG.Left := 10;
  SG.Options := SG.Options+[goEditing];
  SG.OnEditEnd := SGEditEnd;
 end;
 
 procedure TForm1.SGEditEnd(Sender:TObject);
 begin
   MessageBeep($FFFFFFFF);
 end;
 
 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 begin
   ShowMessage(SG.Cells[1,1]);
 end;
 
 end.

-[[参考サイト>http://130.158.124.192/~takeuchi/delphi/article/066/066374.html]]

ページ新規作成

新しいページはこちらから投稿できます。

TOP