按下X的回應@@? |
答題得分者是:ccchen
|
stonys
初階會員 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
可是不曉得當按下視窗右上方那個X的時候會回傳什麼數值
該怎麼攔截...
onClose, onCloseQuery兩個event 均會被呼叫. 故可如下
1. 宣告一參數
... public endLoop:Boolean; { Public declarations } end;2. loop中檢查此參數 endLoop:=False; for i:=0 to 30000 do begin if endLoop then break; ... application.ProcessMessages; end;3. 在onClose中尋問user是否結束 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if MessageDlg('Exit now?',mtConfirmation,[mbYes, mbNo],0) = mrYes then begin CanClose:=True; EndLoop:=True; end else CanClose:=False; end; |
stonys
初階會員 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
感謝您的回答...
我按照您所說的方法下去做...
可是還是會idel在那邊...無法即使關閉耶...
可以麻煩您檢視一下下面這段原始碼嗎?
procedure Dirs(path:string);
var
pathdir:string;//專輯資料夾
f:tSearchrec; file://搜索暫存變數
begin
if findfirst(path '*.mp3',faAnyFile,f)=0 then file://找尋資料夾中是否有MP3檔
begin
pathdir:=Copy(path,1,Length(path)-1) ; file://若有則紀錄檔案目錄
pathdir:=extractfilename(pathdir);
form1.Memo2.Lines.add(path); // 將子目錄列在Memo2上
findclose(f);
end;
if FindFirst(path '*.*',$0000001F,f)=0 then // 若有找到目錄名稱
begin
repeat
application.ProcessMessages;
if (trim(f.name)<>'.') and (trim(f.name)<>'..') then // 找到正式的目錄名稱後再呼叫自身函數
Dirs(path f.name '\'); // 將下一層的子目錄名稱傳入自身函數中(問題簡化)
until findnext(f)<>0; // 找下一個目錄名稱
FindClose(f); // 關掉FindFirst
end;
end;
當我執行這段的時候...就無法關閉程式了....
至於其他功能都可以使用
謝謝您的回答
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
我測試了一下應該沒有問題
procedure aDirs(path:string); var pathdir:string;//專輯資料夾 f:tSearchrec; //搜索暫存變數 begin application.ProcessMessages; if endLoop =True then exit; if findfirst(path '*.pas',faAnyFile,f)=0 then begin pathdir:=Copy(path,1,Length(path)-1) ; //若有則紀錄檔案目錄 pathdir:=extractfilename(pathdir); form1.Memo2.Lines.add(path); // 將子目錄列在Memo2上 findclose(f); end; if FindFirst(path '*.*',$0000001F,f)=0 then begin//仍會含所有檔 repeat if (trim(f.name)<>'.') and (trim(f.name)<>'..') then if f.attr=faDirectory then //仍須確定是目錄 aDirs(path f.name '\'); // 將下一層的子目錄名稱傳入自身函數中(問題簡化) until findnext(f)<>0; // 找下一個目錄名稱 FindClose(f); // 關掉FindFirst end; end; |
stonys
初階會員 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |