關於表單呼叫 |
答題得分者是:adonis
|
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
各位高手大家好: 小弟有個問題思索很久卻找不出原因(因為是看書的初學者),請各位高手幫忙,謝謝!
我的程式碼如下: unit Main; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, emp; type
TCommon = class(TForm)
MainMenu1: TMainMenu;
F1: TMenuItem;
N1: TMenuItem;
AltP1: TMenuItem;
AltS1: TMenuItem;
N2: TMenuItem;
AltI1: TMenuItem;
AltO1: TMenuItem;
C1: TMenuItem;
H1: TMenuItem;
H2: TMenuItem;
AltC1: TMenuItem;
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Common: TCommon;
emp : Temployee;
implementation {$R *.dfm} procedure TCommon.N1Click(Sender: TObject);
begin
emp.Enabled:=True;
end; end. 感謝各位!!
|
adonis
高階會員 發表:140 回覆:258 積分:159 註冊:2002-04-15 發送簡訊給我 |
nick6562, 您好 請問一下你的 emp 是什麼?另一個Form的Unit嗎?
一般我的作法會把另一個Form的Uses擺到implementation的下一行去uses emp;
而emp : Temployee;我會在其它的事件裡去使用它,例如:
var emp: Temployee begin try emp := Temployee.Create(self); emp.showModal; finally emp.free; end; end;透過上述方式來調用其它的Form(別忘了在Project/Option中該Form不要讓其自動Create) 不知你問的問題是否如我所回應? 我也正努力學習中 ^ ^
------
我也在努力學習中,若有錯謬請見諒。 |
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
引言: nick6562, 您好 請問一下你的 emp 是什麼?另一個Form的Unit嗎? 一般我的作法會把另一個Form的Uses擺到implementation的下一行去uses emp; 而emp : Temployee;我會在其它的事件裡去使用它,例如:Dear Adonis: 感謝您的回應,emp的確是另一個Form及Unit,但後來我將Form的Name修改為employee,所以我該如何寫?謝謝您!var emp: Temployee begin try emp := Temployee.Create(self); emp.showModal; finally emp.free; end; end;透過上述方式來調用其它的Form(別忘了在Project/Option中該Form不要讓其自動Create) 不知你問的問題是否如我所回應? 我也正努力學習中 ^ ^ |
adonis
高階會員 發表:140 回覆:258 積分:159 註冊:2002-04-15 發送簡訊給我 |
|
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
引言: implementation uses Unit2; //employee的Unit名稱即可您好; 我修改了程式碼: interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TCommon = class(TForm) MainMenu1: TMainMenu; F1: TMenuItem; N1: TMenuItem; AltP1: TMenuItem; AltS1: TMenuItem; N2: TMenuItem; AltI1: TMenuItem; AltO1: TMenuItem; C1: TMenuItem; H1: TMenuItem; H2: TMenuItem; AltC1: TMenuItem; procedure N1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Common: TCommon; employee : Temployee; implementation uses emp; {$R *.dfm} procedure TCommon.N1Click(Sender: TObject); var employee : Temployee; begin try employee:=Temployee. end; end. 結果顯示了錯誤訊息... [Pascal Error] Main.pas(1): Unable to invoke Code Completion due to errors in source code [Warning] Main.pas(41): Variable 'employee' might not have been initialized |
adonis
高階會員 發表:140 回覆:258 積分:159 註冊:2002-04-15 發送簡訊給我 |
nick6562, 您好
引言: var Common: TCommon; employee : Temployee; <---刪掉 implementation uses emp; 加入該調用Form的Unit {$R *.dfm} procedure TCommon.N1Click(Sender: TObject); var employee : Temployee; 為該調用Form的變數 begin try employee:=Temployee.Create(self); employee.ShowModal; finally employee.free; end; end;
------
我也在努力學習中,若有錯謬請見諒。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |