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

怎麼把 Form 裡所有的 TADOQuery 全部Close ??

答題得分者是:careychen
yching
一般會員


發表:6
回覆:22
積分:10
註冊:2007-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-04 17:21:19 IP:220.130.xxx.xxx 訂閱
因為我很懶...一一a

所以我想在FormClose 時,把Form 裡所有的TADOQuery 全部Close !
我試著找過用 Control[i] 控制,可是找不到相關文章!>"<
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-04 17:28:58 IP:61.222.xxx.xxx 訂閱
Components[I] is TADOQuery ...
yching
一般會員


發表:6
回覆:22
積分:10
註冊:2007-03-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-04 17:53:00 IP:220.130.xxx.xxx 訂閱
我試過... 可是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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-04 18:03:35 IP:220.141.xxx.xxx 訂閱

[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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-04 18:04:59 IP:220.130.xxx.xxx 訂閱
我找到方法了.... ^^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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-04 18:08:17 IP:220.130.xxx.xxx 訂閱

===================引 用 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-09-04 18:11:06 IP:218.210.xxx.xxx 訂閱
你這樣寫很怪唷,建議像下面這樣寫   ( 拍謝從 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;
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-09-04 18:13:04, 註解 無‧
careychen 重新編輯於 2008-09-04 18:13:57, 註解 無‧
yching
一般會員


發表:6
回覆:22
積分:10
註冊:2007-03-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-09-04 18:16:14 IP:220.130.xxx.xxx 訂閱
呵呵呵........ 我也覺得我寫的怪怪的..... @@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;
系統時間:2024-03-29 16:05:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!