你可以使用以下代碼在 Delphi 中實(shí)現(xiàn)關(guān)閉程序時(shí)詢(xún)問(wèn)是否退出:
在主窗體的 OnClose 事件中添加以下代碼:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
? if MessageDlg('確定要退出程序嗎?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
?? Action := caFree
? else
?? Action := caNone;
end;
這將彈出一個(gè)對(duì)話(huà)框,詢(xún)問(wèn)用戶(hù)是否要退出馍盟。如果用戶(hù)點(diǎn)擊“是”,則程序?qū)㈥P(guān)閉睦尽。如果用戶(hù)點(diǎn)擊“否”铁材,則程序?qū)⒗^續(xù)運(yùn)行。
請(qǐng)注意惫叛,在上述代碼中倡勇,我們使用了 MessageDlg 函數(shù)來(lái)顯示對(duì)話(huà)框。該函數(shù)有四個(gè)參數(shù):消息字符串嘉涌、消息類(lèi)型妻熊、按鈕選項(xiàng)和默認(rèn)按鈕。在此示例中仑最,我們使用 mtConfirmation 消息類(lèi)型固耘,表示這是一個(gè)確認(rèn)消息,并提供了兩個(gè)按鈕:“是”和“否”词身。如果用戶(hù)單擊“是”厅目,則函數(shù)返回 mrYes,否則返回 mrNo法严。最后损敷,我們根據(jù)用戶(hù)的響應(yīng)來(lái)設(shè)置 Action 變量,以指定程序應(yīng)采取的操作深啤。如果用戶(hù)單擊“是”拗馒,則設(shè)置 Action 為 caFree,這意味著程序?qū)⒈会尫挪㈥P(guān)閉溯街。如果用戶(hù)單擊“否”诱桂,則設(shè)置 Action 為 caNone,這意味著程序?qū)⒗^續(xù)運(yùn)行呈昔。