StringGridを使用して入力チェックを行っているのですが、
次の行に移動するときにチェックを行うにはどうすればよいのでしょうか?
InplaceEditのOnExitって取れるのでしょうか?
Halbow です。
>InplaceEditのOnExitって取れるのでしょうか?
InplaceEdit は StringGrid の子コントロールとして作られる Edit です。
Edit コントロールは、フォーカスを失うとき親コントロールに WM_COMMAND
メッセージを送ります。これを捕まえる事ができます。
以下のようにしてうまくいっています。
public
OriginalProc:TWndMethod;
procedure SubClassProc(var Message:TMessage);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
OriginalProc := StringGrid1.WindowProc;
StringGrid1.WindowProc := SubClassProc;
end;
procedure TForm1.SubClassProc(var Message: TMessage);
begin
OriginalProc(Message);
if (Message.Msg = WM_COMMAND) and (Message.WParamHi = EN_KILLFOCUS) then
with StringGrid1 do
Label1.Caption := Format('InplaceEdit OnExit at (%d,%d)',[Col,Row]);
end;
Halbow様
ありがとうございました。
このロジックでうまくいけそうです。
また、なにかありましたら、よろしくお願いいたします。
ツイート | ![]() |