初級問題:我寫的一個getnewno函數,代碼放在最後,怎樣在本單元和幾個datamodule中調用 |
答題得分者是:ddy
|
hua2000
中階會員 發表:102 回覆:200 積分:65 註冊:2006-11-04 發送簡訊給我 |
初級問題:我寫的一個getnewno函數,其代碼放在最後,怎樣使其能在本單元和幾個Tdatamodule中調用此getnewno函數?
我把"function getnewno(tbname:string):string;"放在public部分或private部分,但總示如下錯誤提示:
[Error] Unit1.pas(33): Unsatisfied forward or external declaration: 'TForm1.getnewno 請各位高手多指教!
多謝! 胡
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
你的function 宣告放錯地方了
應該放在implementation之前的var 裡
這樣子才是屬於這個Form 的全域可視範圍
(以 function ABC 為例)
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function ABC():integer ; implementation如果是要放在Private /Public 則 在function 實作部份加上TForm. 例: function TForm1.ABC():integer ; begin ABC := 100; end;噓~~~~~~沉思中… 發表人 - ddy 於 2002/11/07 16:17:23 |
hua2000
中階會員 發表:102 回覆:200 積分:65 註冊:2006-11-04 發送簡訊給我 |
|
hua2000
中階會員 發表:102 回覆:200 積分:65 註冊:2006-11-04 發送簡訊給我 |
引言: 你的function 宣告放錯地方了 應該放在implementation之前的var 裡 這樣子才是屬於這個Form 的全域可視範圍 (以 function ABC 為例)又有一個問題,我新建了一個form和一個DATAMODULE,在FORM和DATAMODULE中怎麼訪問不了這個FORM1中的放在public處的函數? 應該怎樣做才能訪問得到? 胡type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function ABC():integer ; implementation如果是要放在Private /Public 則 在function 實作部份加上TForm. 例:function TForm1.ABC():integer ; begin ABC := 100; end;噓~~~~~~沉思中… 發表人 - ddy 於 2002/11/07 16:17:23 |
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
hua2000
中階會員 發表:102 回覆:200 積分:65 註冊:2006-11-04 發送簡訊給我 |
引言:我在form2中編寫的函數,在form1中已“uses Unit2;”,但在form1中還無法訪問那個form2中編寫的函數。 總提示:[Error] Unit1.pas(41): Undeclared identifier: 'doublethevalue' 此doublethevalue為一個form1中的函數,form2要用這個函數。 在種情況下還有沒有其他的要注意的呀! 我急切的希望能訪問些datamodule和form2,form3中的函數。 請教! 多謝! < >< > 胡 發表人 -var Form1: TForm1; implementation uses unit2,unit3; //在implementation 之後 {$R *.dfm}如上例,需於各unit 內uses其它unit 就可以引用其它unit內公開的函數了 噓~~~~~~沉思中… 發表人 - ddy 於 2002/11/08 00:46:03 |
FrederickPau
資深會員 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
引言: 我在form2中編寫的函數,在form1中已“uses Unit2;”,但在form1中還無法訪問那個form2中編寫的函數。 總提示:[Error] Unit1.pas(41): Undeclared identifier: 'doublethevalue' 此doublethevalue為一個form1中的函數,form2要用這個函數。 在種情況下還有沒有其他的要注意的呀!先弄清楚,你doublethevalue 是寫在那個Form ?? 你所描述的部份(紅色)有矛盾 如果是doublethevalue 寫在Form1,則Unit2 要引用Unit1 如果要互相引用對方,則要將對方列入uses 中 例: var Form1: TForm1; implementation uses unit2,unit3; ------------------ var Form2: TForm2; implementation uses unit1,unit3; ------------------ var Form3: TForm3; implementation uses unit1,unit2;噓~~~~~~沉思中… |
hua2000
中階會員 發表:102 回覆:200 積分:65 註冊:2006-11-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |