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.
このページのURL: