こんばんは。
開発環境は、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イベントを制御した方が良いのでしょうか?
何か良い方法を思いついた方教えてください。
お願いします。
>マウスポインタの位置を取得して、StringGrid上の何処かに変換して、
で良いと思いますが... CalcCursorPos と MouseToCell で。
こんにちは。
OnMouseDownイベントでYを参照することにより何とかなりました。
教えていただいたことをやる前に試してみたら上手くいきました。
お騒がせしました。
ありがとうございました。