一個function要放在form的哪裡,才能讓其它 form來呼叫並傳值? |
尚未結案
|
seedbcc
高階會員 ![]() ![]() ![]() ![]() 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
如題
我把下列的function
放在
unit... interface uses type TsystemSet = class(form) procedure ......... procedure ......... private.. protected... public ... procedure ......... function GetDirFile(ACategory:String;AFileType:String;AFileID:String):Variant; var ... implementation uses Unit1; function TSystemSet.GetDirFile(ACategory:String; AFileType:String;AFileID:String):Variant; begin LkCategory:=ACategory; //判斷為<0系統>、或是 <1目錄> 還是 <2檔案> if LkCategory='2' then //若為<檔案>,判斷是(計量),還是(計數) begin LkFileType:=StrToInt(AFileType); end else //若為系統或目錄,此變數無意義 begin LkFileType:=10 end; LkFileID :=AFileID; //目錄或檔案的id end;但另一個form 要執行什麼呼叫它 |
sl@cableplus.com.cn
高階會員 ![]() ![]() ![]() ![]() 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
avalokita
一般會員 ![]() ![]() 發表:29 回覆:35 積分:12 註冊:2003-09-02 發送簡訊給我 |
|
Chance36
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
seedbcc 你好 一般Procedure或Function存在的位置,可以用下面幾個原則來決定,底下用類別或物件而不用Form來說明,是因為Form也是一種類別,其實體也是個物件,表示這個原則是一體適用的,不限於Form。 1.與類別或物件有直接關係,且要公開給別的物件所呼者,則放在物件的Public區段,若不開放給別的物件使用者,則放在Private區段。
在程序或函式內會使用到該類別或物件的成員屬性或方法者,表示有直接關係,使用方式:先uses 該單元檔,然後用 [unit.]xxxx.procedure(....);來呼叫 2.與類別或物件沒有直接關係但有間接關係者,則放在同個單元檔的定義區(與該類別同等地位)
在程序或函式內不會使用到該類別或物件的成員屬性或方法,但會用到該類別或物件本身者,例如呼叫該程序代為建立物件、釋放物件(一般會伴隨一些啟始設定及善後的處理),表示有間接關係,使用方式:先uses 該單元檔,然後用 [unit.]procedure(....);來呼叫 3.與類別或物別沒有特定關係者,即一般所謂的公用程序或函式,則最好分門別類放在個別獨立的單元檔中。
程序或函式內完全不會直接使用到該類別或物件者(把類別或物件當參數傳入者不算直接使用到)使用方式:先uses 該單元檔,然後用 [unit.]procedure(....);來呼叫(同第二種) ps: [Unit.]xxxxx.Procedure 其中
[unit.] : 代表可有可無的單元檔名的限定詞,限定後面的物件或類別是在該單元檔中定義的
xxxxx : 代表別或物件的名稱
Procedure :代表Procedure 或Function的名稱
下面表示各定義區的位置: unit ... interface uses type TClassName = class(TFatherClass) .... procedure ......... procedure ......... private.. protected... public 第一種程序定義區 End; 第二種程序定義區 Procedure ProcName(....); Function FuncName(......):...;var ; implementation ..... 第三種與第二種是同樣的位置,只是它是在另一個單元檔而已以你提供的範例來說,Function內部與Form的成員屬性等並無使用關係且與Form本身也沒直接關係,因此它適合放在另一個與它同類的單元檔中(公用函式)。 發表人 - chance36 於 2004/07/09 01:53:16 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |