//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]]