掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
サブフォームをフロントにしたい (ID:29039)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ダブルクリックだと 1回目のクリックで実行されアクティブになりその後2回目のクリックで 起動元がアクティブになってしまうみたいなので ダブルクリックの際には OnClick ではなく OnDblClick で処理する必要があります が ダブルクリックした際にも OnClick は処理されてしまうので OnClick が ダブルクリックで処理された OnClick なのかを判定しなくてはいけません (*) ボタンならばこの問題はおきません //CreateProcessでEXEを実行 procedure Execute; var PI : TProcessInformation; SI : TStartupInfo; S : String; begin S := 'notepad.exe'; ZeroMemory(@si,SizeOf( TStartupInfo)); si.cb := sizeof(TStartupInfo); CreateProcess(nil,PChar(S),nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,&si,&pi); end; procedure TForm3.Edit1Click(Sender: TObject); var MSG : TMSG; begin Sleep(GetDoubleClickTime()); if PeekMessage(MSG,0,WM_LBUTTONDBLCLK,WM_LBUTTONDBLCLK,PM_NOREMOVE) = False then begin //Clickの場合ここで実行 Execute; end else begin //DBClickなので処理しない end; end; procedure TForm3.Edit1DblClick(Sender: TObject); begin //DBClickの場合こちらで実行 Execute; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.