請問一個變數設定的問題。 |
答題得分者是:fangwy
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
|
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
謝謝大家。
我試著建立一個
unit UnitGlobal ;
interface
var TheFlog: String;
implementation
end.
在FACOAM07加入UnitGlobal。
uses UCOA, UnitGlobal;
但是在FACOAM07中使用時,如下
procedure TFACOAM07.FormActivate(Sender: TObject);
begin
PageControl1.OwnerDraw := True;
TheFloag :='1';
end;
卻發生。
Undeclared identifier : 'TheFloag'
不是就表示找不到嗎。
謝謝。
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言:不过如果单单只是调用一个变数的话,还是定义在主Form(unit1)的 public即可interface uses Windows;//加上此句,试试,小弟试了没问题 var TheFlog: String; implementation end. 在FACOAM07加入UnitGlobal。 uses UCOA, UnitGlobal; 在FACOAM07中使用時,如下 procedure TFACOAM07.FormActivate(Sender: TObject); begin PageControl1.OwnerDraw := True; TheFloag :='1'; end; private { Private declarations } public { Public declarations } TheFlog: String; end; procedure TForm1.FormCreate(Sender: TObject); begin TheFlog:='1'; end; 调用: uses unit1; procedure TForm3.Button1Click(Sender: TObject); begin showmessage(Form1.TheFlog); end变量声明和函数声明等类似,参考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52861 ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
不好意思。我剛剛將名稱打錯。
現在不會有錯誤訊息。
但是,好像一直無法取到此變數的值。
因為會定義到多個全局變數,所以利用UnitGlobal來設定變數。
目前有三表單作連結。我分別將它們列出來。
表單:FACOAM01
uses UCOA, UCOAM07, UnitGlobal;
procedure TFACOAM01.SpeedButton3Click(Sender: TObject);
begin
FACOAM07.ShowModal;
UnitGlobal.TheFlog :='FACOAM01';
end; 表單:FACOAM07
procedure TFACOAM07.FormActivate(Sender: TObject);
begin
PageControl1.OwnerDraw := True;
showmessage(UnitGlobal.TheFlog);//為空值 if UnitGlobal.TheFlog ='FACOAM01' then begin
TabSheet1.Caption := ' 一般選項';
TabSheet2.Caption := ' 進階選項';
Label1.Font.Size := 10;
Label1.Caption :='參照欄位代號';
end;
end; UnitGlobal以下。
unit UnitGlobal ;
interface
uses Windows;
var TheFlog: String;
implementation
end. 不好意思。再次麻煩大家。
我會在仔細看一下。
謝謝。
|
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
如果你打算在FACOAM07中使用TheFlog,并且需要其值等于'FACOAM01',应该如下写法,两句对调.
procedure TFACOAM01.SpeedButton3Click(Sender: TObject);
begin
UnitGlobal.TheFlog :='FACOAM01';
FACOAM07.ShowModal;
end;
否则,FACOAM07未关闭之前并未执行到UnitGlobal.TheFlog :='FACOAM01';
你可以加断点跟踪看看就明白了.另外引用TheFlog并不需要加'UnitGlobal.'
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |