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

控制窗体的'关闭'按钮

答題得分者是:deity
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-18 16:32:43 IP:211.162.xxx.xxx 未訂閱
大大们好,又有问题麻烦您们了 一般的窗体上都有3个系统按钮:最小化,最大化/还原,关闭。 现在我想对'关闭'按钮单独控制,让它响应我自定义的事件,可是我不知道该从那里下手 在 class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-18 16:44:51 IP:210.65.xxx.xxx 未訂閱
Hi,    寫在 Form 的 OnClose Event 上
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    IF Application.MessageBox(PChar('是否確定離開?' ),'離開確認',MB_ICONINFORMATION   MB_YESNO   MB_DEFBUTTON2) = ID_YES then
        Action := caFree
    else
        Action := caNone;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-18 17:59:08 IP:211.162.xxx.xxx 未訂閱
大大,我想需要的是单独控制'关闭'按钮的Events啊,比如,我在窗体上有个button,它是专门来close()的,而我要求'关闭'按钮响应其他的Events(比如缩小),如果在FormClose中做的话,这两个就会发生冲突啊!    

===============
人生在勤,不索何获? 
===============
------
人生在勤,不索何获?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-18 20:15:43 IP:211.76.xxx.xxx 未訂閱
您好: 可否在描述的清楚一點,覺得好像還是聽不懂 你的意思是說在關閉的按鈕上去處發你自訂的事件ㄇ 如果是就在該按鈕的CLICK事件中在FORM CLOSE之前去執行你自訂的事件不就可以了 ~~應無所住而生其心~~
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-18 20:54:33 IP:211.162.xxx.xxx 未訂閱
对不起,大大们,我没有把问题描述清楚,这是我的错,劳您们费心了 完整的问题是这样的:我两个窗体,一个主窗体 class="code"> procedure TForm2.Button2Click(Sender: TObject); begin Application.Terminate; end; procedure TForm2.Button1Click(Sender: TObject); begin ...................... //执行检查密码的功能 Close(); end; 可是我发现如果直接按下窗体上的'关闭'按钮就会直接关闭Form2而进入Form1, 从而绕过密码的检查,令人心惊肉跳!所以我想在Form2上的'关闭'按钮上下文章, 能控制它,响应我自己的Event。 我是初学者,对问题的描述不是很清楚,希望大大们原谅新手的幼稚 < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-18 21:28:52 IP:211.76.xxx.xxx 未訂閱
您好: 這是你要的ㄇ?  
 
function TForm2.Checkpassword(xxx):boolean;//执行检查密码的功能
begin
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
   if  Checkpassword(xxx) then
      Close()
   else
      Showmessage('密碼錯誤');
end;    
~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-18 21:58:16 IP:218.15.xxx.xxx 未訂閱
bigdogchina你好: 看了你上次问的题,你无非是想在进入主窗体是进行一次密码登陆 主窗体对应Form1; 登陆窗体对应Form2; 不知我有没有猜错,如果没有的话,你可以对照下面的写法,看看你的程式,那里有搞错的: 首先将Form2设为available forms unit1.pas 要先uses unit2; procedure TForm1.FormCreate(Sender: TObject); begin with Tform2.Create(Self) do begin try if showmodal<>mrok then Application.Terminate; finally Free; end; end; end; unit2.pas uses unit1; procedure TForm2.Button2Click(Sender: TObject); begin Application.Terminate; end; procedure TForm2.Button1Click(Sender: TObject); begin ...................... //执行检查密码的功能 if 密码不正确 then modalresult:=mrno else modalresult:=mrok end; dpr code program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. 对照下,找找错误,试试看。 ——行径窄处,留一步与人行——
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-18 22:18:29 IP:211.74.xxx.xxx 未訂閱
引言: 大大们好,又有问题麻烦您们了 一般的窗体上都有3个系统按钮:最小化,最大化/还原,关闭。 现在我想对'关闭'按钮单独控制,让它响应我自定义的事件,可是我不知道该从那里下手 在 class="code"> =============== 人生在勤,不索何获? ===============
攔劫WM_SYSCOMMAND訊息 procedure WMSYSEVENT(var Msg:TMessage);message WM_SYSCOMMAND; procedure TForm1.WMSYSEVENT(var Msg:TMessage); begin inherited; Case Msg.WParam of SC_CLOSE:;//關閉按鍵的處理 end; end;
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-18 22:50:57 IP:211.162.xxx.xxx 未訂閱
真诚感谢terrychen,deity大大的热诚回答! deity,您真行,您的回答正是我所需要的,我都不知道说什么好!犹如雨中甘露,很舒服!你这么young,知道的又是这么的多,我很佩服您,请您以后多多指点我!我是新手,经常提出很菜的问题,见怪不怪哟 < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
系統時間:2024-07-01 2:30:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!