StringGridで固定領域のクリックイベントを取得するには

解決


HARUKA  2004-04-22 00:15:28  No: 8497

お世話になります。
現在、StringGridを使用してアプリを作成しているのですが、
固定領域をクリックしたときにある処理を行いたいのですが、
OnClickやOnSelectCellのイベントでは、反応してくれません。
何かよい方法ありませんでしょうか?
宜しくお願い致します。


にしの  2004-04-22 00:53:43  No: 8498

OnClickでは反応しませんが、OnMouseDownは呼ばれますね。
こちらで処理してやればよろしいかと。


HARUKA  2004-04-22 01:04:12  No: 8499

西野さんお返事ありがとうございます。
OnMouseDownで、確かに出来そう何ですが、
クリックした固定セルのColとRowもいっしょに
取得したいんですが、可能でしょうか?


take  2004-04-22 01:21:32  No: 8500

ColとRowはカーソル位置ですので固定領域には移動しません。
MouseToCellメソッドでマウス座標からセル座標に変換すれば取得できます。

procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  aCol,aRow : Integer;
begin
  StringGrid1.MouseToCell(X,Y,aCol,aRow);
  StringGrid1.Cells[0,0] := Format('%2.2d %2.2d',[aCol,aRow]);
end;


HARUKA  2004-04-22 01:33:05  No: 8501

takeさん返信ありがとうございます。
無事取得することができました。
StringGridにMouseToCellメソッドという便利な
メソッドがあるとは知りませんでした。
本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加