StringGridを使って入力プログラムを作っていますが、セルが編集中の時に
セル内のキャレットをマウスにて移動された場合、リアルタイムに位置を拾うことができません。どなたかご教授お願いします。
ちなみにStringGridのOptionsプロパティはgoEditingとgoTabsをTrueにしています。
ちょっとキャストが邪道っぽいですが、以下でうまくいきました。
{ Private 宣言 }
public
ctl:TControl;
procedure IPEClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.IPEClick(Sender: TObject);
begin
Memo1.Lines.Add(IntToStr(TEdit(ctl).SelStart));
end;
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
if StringGrid1.ControlCount > 0 then begin
ctl := StringGrid1.Controls[0];
if ctl is TInplaceEdit then
TEdit(ctl).OnClick := IPEClick;
end;
end;
確認してみました。OKです。
どうもありがとうございました。
ツイート | ![]() |