StringGridのOnFixedCellClickとOnDblClickについて

解決


やまだ  2013-09-16 04:57:10  No: 45267  IP: [192.*.*.*]

こんばんは。
開発環境は、win7(sp1)、delphiXE3 enterpriseです。

先日からStringGridを使っています。

現在OnFixedCellClickにRow=0のときに機能するソート処理を、OnDblClickにサブ画面を開く処理を記述しています。

それと、StringGridは行選択、読み取り専用にしています。

Row=0をクリックしてソート処理を何回か連続して実施した場合、OnDblClickが機能してサブ画面が開いてしまいます。

OnFixedCellClickにprivate変数のフラグを書いても、OnDblClickが反応してしまいます。

OnFixedCellClickイベント
begin
 フラグON;
 ソート処理;
 フラグOFF;
End;

OnDblClickイベント
begin
 if フラグ=off then サブ画面オープン処理;
End;

を以下のようにしてもオープン処理が機能してしまいます。

OnDblClickイベント
begin
 if フラグ=on then
 begin
  フラグ:=off;
 End
 else
 begin
  サブ画面オープン処理;
 End;
End;

OnDblClickイベントにARowなどの引き数があれば良いのですが。

マウスポインタの位置を取得して、StringGrid上の何処かに変換して、
Rowを判断して、OnDblClickイベントを制御した方が良いのでしょうか?

何か良い方法を思いついた方教えてください。

お願いします。

編集    削除
Nov  2013-09-16 05:32:50  No: 45268  IP: [192.*.*.*]

>マウスポインタの位置を取得して、StringGrid上の何処かに変換して、

で良いと思いますが... CalcCursorPos と MouseToCell で。

編集    削除
やまだ  2013-09-17 18:39:04  No: 45269  IP: [192.*.*.*]

こんにちは。

OnMouseDownイベントでYを参照することにより何とかなりました。

教えていただいたことをやる前に試してみたら上手くいきました。

お騒がせしました。

ありがとうございました。

編集    削除