怎麼把 Form 裡所有的 TADOQuery 全部Close ?? |
答題得分者是:careychen
|
yching
一般會員 ![]() ![]() 發表:6 回覆:22 積分:10 註冊:2007-03-23 發送簡訊給我 |
|
RootKit
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
yching
一般會員 ![]() ![]() 發表:6 回覆:22 積分:10 註冊:2007-03-23 發送簡訊給我 |
我試過... 可是Components[i] 不能Close;
[code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; begin for i:=0 to ComponentCount-1 do if Components[i] is TADOQuery then Components[i].Close; // 這句有問題 end; [/code] Error message: [Error] Test.pas(484): Undeclared identifier: 'Close' |
pceyes
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
[code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; begin for i:=0 to Self.ComponentCount-1 do if (Self.Components[I] is TADOQuery) then Self.Components[i].Close; end; [/code]
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-09-04 18:04:38, 註解 無‧
|
yching
一般會員 ![]() ![]() 發表:6 回覆:22 積分:10 註冊:2007-03-23 發送簡訊給我 |
我找到方法了.... ^^a
不過我醬子做... 是真的Close 掉Components[i] 嗎? 還是我只是Colse 掉DB_ADOQuery 這個變數? [code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; DB_ADOQuery: TADOQuery; begin // Close 所有ADOQuery for i:=0 to ComponentCount-1 do if Components[i] is TADOQuery then begin DB_ADOQuery := TADOQuery.Create(Components[i]); DB_ADOQuery.Close; DB_ADOQuery.Free; end; [/code]
編輯記錄
yching 重新編輯於 2008-09-04 18:12:27, 註解 無‧
|
yching
一般會員 ![]() ![]() 發表:6 回覆:22 積分:10 註冊:2007-03-23 發送簡訊給我 |
===================引 用 pceyes 文 章=================== [code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; begin for i:=0 to Self.ComponentCount-1 do if (Self.Components[I] is TADOQuery) then Self.Components[i].Close; end; [/code] 這樣寫一樣不行.... @@
編輯記錄
yching 重新編輯於 2008-09-04 18:09:21, 註解 無‧
|
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
你這樣寫很怪唷,建議像下面這樣寫 ( 拍謝從 pceyes 大那邊 Copy 過來的,小改一下 )
[code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; begin for i:=0 to Self.ComponentCount-1 do if (Self.Components[I] is TADODataSet) then TADODataSet(Self.Components[i]).Close; end; [/code] ===================引 用 yching 文 章=================== procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; DB_ADOQuery: TADOQuery; begin // Close 所有ADOQuery for i:=0 to ComponentCount-1 do if Components[i] is TADOQuery then begin DB_ADOQuery := TADOQuery.Create(Components[i]); DB_ADOQuery.Close; DB_ADOQuery.Free; end;
------
價值的展現,來自於你用哪一個角度來看待它!! |
yching
一般會員 ![]() ![]() 發表:6 回覆:22 積分:10 註冊:2007-03-23 發送簡訊給我 |
呵呵呵........ 我也覺得我寫的怪怪的..... @@a
試了您的寫法... 可以過了.... 感激您....... ^^ ===================引 用 careychen 文 章=================== 你這樣寫很怪唷,建議像下面這樣寫 ( 拍謝從 pceyes 大那邊 Copy 過來的,小改一下 ) [code delphi] procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; begin for i:=0 to Self.ComponentCount-1 do if (Self.Components[I] is TADODataSet) then TADODataSet(Self.Components[i]).Close; end; [/code] ===================引 用 yching 文 章=================== procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); Var i:Integer; DB_ADOQuery: TADOQuery; begin // Close 所有ADOQuery for i:=0 to ComponentCount-1 do if Components[i] is TADOQuery then begin DB_ADOQuery := TADOQuery.Create(Components[i]); DB_ADOQuery.Close; DB_ADOQuery.Free; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |