全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2501
推到 Plurk!
推到 Facebook!

Form的右上角,關閉視窗的按鈕

答題得分者是:danny
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-20 18:32:51 IP:203.204.xxx.xxx 未訂閱
Form的右上角,關閉視窗的按鈕,如果在event設一個對話方塊問user是否確定。 此時,不管user回答的是n或y,最後程式還是會關閉,要如何解決?
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-20 21:34:44 IP:61.66.xxx.xxx 未訂閱
引言: Form的右上角,關閉視窗的按鈕,如果在event設一個對話方塊問user是否確定。 此時,不管user回答的是n或y,最後程式還是會關閉,要如何解決?
重點在, 選右上角結束, 會觸發onCloseQuery, 其中有一個CanClose, 如果你的CanClose=false, 不論你點多少次, 程式都不會反應結束
richcomp
中階會員


發表:18
回覆:66
積分:51
註冊:2002-10-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-21 12:10:54 IP:61.177.xxx.xxx 未訂閱
褫¢orm.bordericons笢bisystemmenu偞嶨alse; 珩褫⺼狟瞰ㄩ procedure TF_bom.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var l_ans:variant; begin l_ans:=messagedlg('訧蹋帤湔紫ㄛ湔紫綴燭羲ˋ',mtwarning,[mbyes,mbno,mbcancel],0); if l_ans=mryes then bn_saveclick(mouse) else if l_ans=mrcancel then canclose:=false; end;
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-22 09:47:01 IP:61.219.xxx.xxx 未訂閱
你可以試試看在Form的OnClose事件下 下 //語法可能有誤你在查查 if messagedlg('是否關閉',Confir...,YesNo..,0) <> mrYes then abort; 這樣就不會關閉了~~~ 因為abort會讓之後的程式都不執行 試試看吧!!
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-22 09:52:54 IP:61.219.xxx.xxx 未訂閱
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg('Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then begin abort; end; end; 按yes之後會執行離開 而按no則會執行abort而不讓Form關閉!? 參考看看~~~
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-22 09:54:28 IP:163.15.xxx.xxx 未訂閱
procedure TForm1.Button2Click(Sender: TObject); // close begin Close; end; 擺r procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin If MessageDlg('Are you sure?', mtConfirmation, [mbYes, mbNo], 0)=mrNo then begin Action := caNone; //Add other workIq end else begin //Add other workq end; end; 發表人 - Adonis 於 2002/10/22 09:56:03
------
我也在努力學習中,若有錯謬請見諒。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-22 12:47:30 IP:61.66.xxx.xxx 未訂閱
對不起, 打個插! 在 onFormClose中撰寫判斷, 對右上角的 [X] close 並沒有作用, 因為 並不會觸發FormClose Event(我實測結果), 除非在 程式中中有下 form.close行為才會引發 formclose Event, 不知對否?
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-10-22 14:29:25 IP:210.202.xxx.xxx 未訂閱
引言: 對不起, 打個插! 在 onFormClose中撰寫判斷, 對右上角的 [X] close 並沒有作用, 因為 並不會觸發FormClose Event(我實測結果), 除非在 程式中中有下 form.close行為才會引發 formclose Event, 不知對否?
要確認是否可以 Close 最好是在 OnFormCloseQuery 中處理比較好(在Form還未確認 Close 之前). 不論是用程式 Close 或是按右上的 [X] 效果都一樣.
------
將問題盡快結案也是一種禮貌!
系統時間:2024-04-28 10:16:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!