不同 Form 中傳遞 var 的問題 |
答題得分者是:P.D.
|
vernon
一般會員 ![]() ![]() 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Form1 有 i 變量, 在 Form2 中怎樣才能把數值傳遞給 Form1 中的 i ??很多方式, 最直的做法 1.i 宣告為 public, 不過不建議使用 i名稱, 最好以有效名稱(正規)命名 2.form2 中, uses Form1 3.form1 必須 form2 先 create 出來 4.直接在 form2 中改變 i 值, form1 的 i 值即可變動 第二種方式 1.form2宣告一個function , 回傳 i 值內容 2.form1 uses form2, 然後在form1中執行該function, 把你要的結果 i:= form2.function(...); 3.form1呼叫form2.function前, form2必須被create 這類做法至少可以有十種以上方法可以達成, 僅提供兩種方式參考! 發表人 - P.D. 於 2003/07/11 16:35:41 |
ha0009
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
以下你參考看看。
當你的變數放在私有或保護區段而想要讓外部使用,則需利用 Property 宣告來達成,好處是你可以過濾使用者的不當存取。否則你只需要 宣告在 Public 或 Published 來達成。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, db, Grids, DBGrids, ADODB, ComCtrls; type TForm1 = class(TForm) private FPriveValue : integer; public PublicValue : integer; peoperty PriveValue : integer read FPriveValue write FPriveValue; end; implementation 當你要存取某單元祇要 Uses 該單元既可,只要是屬於 Public 或 Published 的變數或物件宣告等你都可以存取。 unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, db, Grids, DBGrids, ADODB, ComCtrls, Unit1; type TForm1 = class(TForm) private public end; implementation ![]() ![]() |
cmj
高階會員 ![]() ![]() ![]() ![]() 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
引言: Form1 有 i 變量, 在 Form2 中怎樣才能把數值傳遞給 Form1 中的 i ?? Form1 -> Unit.Pas Form2 -> Unit2.Pas Form1 如下 unit Unit1; interface uses . . TForm1 = class(TForm) . . var i:integer; implementation 在Form2 之uses加入Unit1 . . Unit1.i:=1; //改變Form1之i值 注意Form1要先Create發表人 - cmj 於 2003/07/11 21:25:27 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |