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

解決


HARUKA  2004-04-21 15:15:28  No: 8497  IP: 192.*.*.*

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

編集 削除
にしの  2004-04-21 15:53:43  No: 8498  IP: 192.*.*.*

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

編集 削除
HARUKA  2004-04-21 16:04:12  No: 8499  IP: 192.*.*.*

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

編集 削除
take  2004-04-21 16:21:32  No: 8500  IP: 192.*.*.*

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-21 16:33:05  No: 8501  IP: 192.*.*.*

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

編集 削除