掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridでセル単位でOnEnterのようなイベントを拾うには? (ID:10942)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
単純に >StringGridでセル単位でOnEnterのようなイベントを拾うには? だけであれば、StringGrid をサブクラス化して InplaceEdit からの通知メッセージ を受け取るだけで実現します。 type TForm1 = class(TForm) StringGrid1: TStringGrid; Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private 宣言 } public OldProc: TWndMethod; procedure SGSubClassProc(var Msg:TMessage); end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin OldProc := StringGrid1.WindowProc; StringGrid1.WindowProc := SGSubClassProc; end; procedure TForm1.SGSubClassProc(var Msg: TMessage); begin OldProc(Msg); if Msg.Msg = WM_COMMAND then with StringGrid1 do begin if GetParent(Msg.LParam) <> Handle then exit; case Msg.WParamHi of EN_SETFOCUS:Memo1.Lines.Add(Format('SetFocus at Cells[%d,%d]',[Col,Row])); EN_KILLFOCUS:Memo1.Lines.Add(Format('KillFocus at Cells[%d,%d]',[Col,Row])); end; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.