請問DataSet可當參數傳入Function或Procedure嗎? |
尚未結案
|
bear28
一般會員 發表:44 回覆:53 積分:19 註冊:2002-09-10 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
|
bear28
一般會員 發表:44 回覆:53 積分:19 註冊:2002-09-10 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我覺得以下的程式叫多此一舉, 雖然我不清楚你要傳入的 DataSet 是要做什麼,
通常傳入一個Query, 是在外層已經完成了一個Query 的資料集, 為了不想在 proceudre 再重覆開啟, 所以導入進來, 可以直接引用, 但你的程式, 把外層 Query 導入, 然後又關了它, 結果又重新給予sql值再open, 那又何必從外層導入呢? 乾脆直接在 procedure 中定義一組 TFDQuery , 在 begin 下, 直接去建立 TFDQuery, 再進入 sql 的設定就好了 以上是我的想法!! ===================引 用 bear28 文 章=================== 那寫法這樣對嗎? var begin test.SQL.Clear; test.SQL:=s1; end; ===================引 用 tuga 文 章=================== 可以, 但是你既然已經傳入 test, 就不要再用 dm.test, 因為 dm.test 是直接呼叫 dm 裡面的 test, 而不是你傳入的 test |
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
TFDQuery,这是一个 Class,所有 Class 的具体的实例,也就是一个 Object,和一个普通的 var 比如 var S: stirng;这里的 S,是同样的算作是一个【东西】,都是可以作为一个 function 的 Parameter 传入或传出一个 function 的。
例子: procedure ChangeLabel(const S: string; ALabel: TLabel); begin ALabel.Caption := S; end; 那么,当你想改变任何一个 TLabel 的实例,也就是某个具体的 Label 的时候,就可以调用这个 procedure (记住,procedure 就是一个没有返回值的 function)。比如: 假设你的 Form1 里面有一个 Label2: TLabel;,那么, procedure TForm1.Button1Click(Sender: TObject) begin ChangeLabel('This is my test', Label2); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |