線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1796
推到 Plurk!
推到 Facebook!

如何控製右上角的「關閉」按鈕??

答題得分者是:cmf
uuujjj
一般會員


發表:31
回覆:59
積分:18
註冊:2002-09-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-05 21:22:02 IP:61.218.xxx.xxx 未訂閱
各位高手們,大家好~ 又有疑問出來了~^^||| 之前是利用button來控製關閉視窗, 程式很直接的就能撰寫^_^, 但是,我想連同視窗右上角的「關閉」小按鈕, 也撰寫出messagebox的詢問對話方塊, 就是無法同button那樣撰寫出來~@@" 執行時,按下「關閉」的小按鈕, 還是會跑出messagebox來~ 但是,無論我按「確定」或是「取消」… 視窗仍舊是照常關閉…= =|||| 請問有經驗的版友高手們,這該如何處理呢?? 不好意思~~~ 我的程式: lang="en-us"> m:Integer; begin m :=Application.MessageBox('確定離開??','離開系統',33); if m = 1 then begin close; end; end; end. 如果加入了m=2 讓它frm_Menu.show也不行…@@|| 這該如何是好呢~~:: >< :: 發表人 - uuujjj 於 2003/02/05 21:30:45 發表人 - uuujjj 於 2003/02/05 21:33:58
FrederickPau
資深會員


發表:4
回覆:161
積分:268
註冊:2002-11-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-05 21:29:12 IP:61.228.xxx.xxx 未訂閱
這樣試試.    if m = 1 then Abort;
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-05 21:29:16 IP:61.221.xxx.xxx 未訂閱
uuujjj 你好: 請參考以下連結的做法
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-05 21:33:19 IP:61.70.xxx.xxx 未訂閱
procedure Tfrm_Menu.FormClose(Sender: TObject; var Action: TCloseAction);    begin    if MessageDlg('Close application ?', mtConfirmation,     [mbYes, mbNo], 0) = mrYes then     Action := caFree   else     Action := caNone;        end;    
------
︿︿
uuujjj
一般會員


發表:31
回覆:59
積分:18
註冊:2002-09-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-05 21:44:36 IP:61.218.xxx.xxx 未訂閱
引言: procedure Tfrm_Menu.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg('Close application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Action := caFree else Action := caNone; end;
可否請教一下~~ MessageDlg是不是專門用在視窗上的按鈕呢?? 還是說就視窗上的按鈕外,哪些方面也適用呢?? if MessageDlg('Close application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then 此句中的mtConfirmation是什麼意思??? 原來這語法的使用這麼方便啊~ 只要指定給它所取得的參數就行了~~ 不用像messagebox一樣… 還得另外寫判斷句… 不過,如果用messagebox寫的話… 是不是也可以用這樣子的寫法啊???^^? (※應用在普通的button上的話) 還有,我不能修改那message標題列的標題文字耶~ 這MessageDlg可以修改嗎?? 發表人 - uuujjj 於 2003/02/05 21:52:54
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-05 21:56:56 IP:61.70.xxx.xxx 未訂閱
MessageDlg是不是專門用在視窗上的按鈕呢??     Ans: NO 還是說就視窗上的按鈕外,哪些方面也適用呢?? Ans: 用法與 messagebox 相同 if MessageDlg('Close application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then 此句中的mtConfirmation是什麼意思??? Ans: mtConfirmation = A message box containing a green question mark. 原來這語法的使用這麼方便啊~ 只要指定給它所取得的參數就行了~~ 不用像messagebox一樣… 還得另外寫判斷句… 不過,如果用messagebox寫的話… 是不是也可以用這樣子的寫法啊???^^? Ans: if Application.MessageBox('Close application ?','離開系統', MB_OKCANCEL)=IDOK then Action := caFree else Action := caNone; 發表人 - cmf 於 2003/02/05 21:58:35
------
︿︿
uuujjj
一般會員


發表:31
回覆:59
積分:18
註冊:2002-09-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-05 22:15:45 IP:61.218.xxx.xxx 未訂閱
哇塞~感謝您一一的指導~^^ 好感謝喔…… 嗯嗯…我都瞭解了~ 剛剛那些參數(如:mtConfirmation…等) 我都有試著run一次看看~ 原來是指圖示的意思…    嗯嗯…原來設定視窗按鈕的語法差別是在於: procedure Tfrm_Menu.FormClose(Sender: TObject; var Action: TCloseAction); Action := caFree Action := caNone; 這幾項上面… 謝謝~我恍然大悟了~^___________^ 非常滿意… 以及感謝其它高手的指點~謝謝~~
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-11 22:50:45 IP:61.224.xxx.xxx 未訂閱
引言: 哇塞~感謝您一一的指導~^^ 好感謝喔…… 嗯嗯…我都瞭解了~ 剛剛那些參數(如:mtConfirmation…等) 我都有試著run一次看看~ 原來是指圖示的意思… 嗯嗯…原來設定視窗按鈕的語法差別是在於: procedure Tfrm_Menu.FormClose(Sender: TObject; var Action: TCloseAction); Action := caFree Action := caNone; 這幾項上面… 謝謝~我恍然大悟了~^___________^ 非常滿意… 以及感謝其它高手的指點~謝謝~~
小弟覺得,使用 OnCloseQuery 事件比較好
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := MessageDlg('Close application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end;
加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-05-05 2:00:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!