>>381
フラグを使うだけだと MessageBox を表示した瞬間にダイアログ側で ESC キー押下イベントが処理されてすぐ閉じられてしまう。
MessageBox を表示する直前に Application.ProcessMessages を呼んで未処理のキーイベントをすべて消化しておくと期待通りに動作する。
Application.ProcessMessages を呼ぶと UI の全てが操作可能になるので事前に Form の Enabled を False する等しておく必要がある。
procedure TForm1.Button1Click(Sender: TObject);
var
Flag: Boolean;
begin
Enabled := False;
try
Flag := False;
while True do
begin
if GetAsyncKeyState(VK_ESCAPE) and $8000 <> 0 then
begin
Application.ProcessMessages;
if not Flag then
begin
// ESC キーが押された
if MessageDlg('中止しますか?', mtConfirmation, mbOkCancel, 0) = mrOk then
Exit;
end;
Flag := True;
end else
Flag := False;
end;
finally
Enabled := True;
end;
end;
探検
くだすれDelphi(超初心者用)その59【Embarcadero】
■ このスレッドは過去ログ倉庫に格納されています
382デフォルトの名無しさん
2022/04/02(土) 00:32:29.84ID:hGTjsl3r■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「水道水で食中毒」14人が下痢や腹痛などの症状を訴え 「カンピロバクター」を検出 群馬・神流町 [少考さん★]
- 【ラジオ】永野芽郁、田中圭との不倫疑惑後初の『ANNX』で謝罪「誤解を招くような行動…反省」「本当にごめんなさい」★9 [Ailuropoda melanoleuca★]
- 【Switch2】争奪過熱の任天堂スイッチ2、行き渡るのは1年以上先か 応募条件厳しく予約権プラチナ化 [煮卵★]
- 【アイドル】『≠ME』、暴行行為でイベント中止の状況判明… 20数人に優先入場券を数百枚強奪される トラブル同時多発発生 [冬月記者★]
- 昭和の少女漫画ランキングTOP5発表 40代~70代女性が 夢中で読んだ名作1位は「もう流通していない名作」 [muffin★]
- 米中「チキンゲーム」で旗色悪いトランプ氏 中国、第1次政権での教訓踏まえ足元見透かす [蚤の市★]
- コテ粘粘が発狂してコテ粘連呼するお🏡
- 財務省解体デモ、規模が大きくなりすぎて不穏な感じになり始める [606757419]
- __石破、ベトナムの脱炭素に2.9兆円投資「ベトナムの声に誠実に耳を傾けていく」 [827565401]
- 風呂で死ぬ現象なんだっけ [118990258]
- 平手友梨奈(23)「ライブやる。チケットは0円。終わった後でそっちで値段決めて払ってくれ」
- 【画像】万博のイギリス飯、たった2週間で変わり果てた姿になる [834922174]