表單問題 |
答題得分者是:deity
|
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
Dear All: 之前請教過幾位前輩關於Form Create及Show方法,但有個疑問至今無法解決,煩請各位前輩再度指教...
是這樣的;我利用MainMenu建立了下拉式的功能,要以下拉式功能中的一選項呼叫表單(ex: Unit名employee, Form名emp),我按照指點使用其語法如下: unit Bs_Main; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus; type
TMain = class(TForm)
MainMenu1: TMainMenu;
F1: TMenuItem;
N1: TMenuItem;
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Main: TMain; implementation
uses Employee; {$R *.dfm} procedure TMain.N1Click(Sender: TObject);
begin
emp.Create(self);
try
emp.ShowModal;
finally
emp:=nil;
end;
end; end. 表單可以顯示出來,但是跟著Main Form執行時一起出來,而不是因為按下其中MainMenu功能中一選項而出現的...,請教是否有方法可以解決此問題,感謝各位前輩,謝謝!
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
nick6562您好:
试着做了一次,并不会同时出现两个窗口,代码如下:
unit Bs_Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TMain = class(TForm) MainMenu1: TMainMenu; F1: TMenuItem; N1: TMenuItem; procedure N1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Main: TMain; implementation uses employee; {$R *.dfm} procedure TMain.N1Click(Sender: TObject); begin emp:=Temp.Create(self); try emp.ShowModal; finally emp.free; end; end; end. unit employee; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type Temp = class(TForm) private { Private declarations } public { Public declarations } end; var emp: Temp; implementation {$R *.dfm} end. dpr program Project1; uses Forms, Bs_Main in 'Bs_Main.pas' {Main}, employee in 'employee.pas' {emp}; {$R *.res} begin Application.Initialize; Application.CreateForm(TMain, Main); Application.CreateForm(Temp, emp); Application.Run; end.执行结果没错,按N1才显示出emp窗体,试试看 ——行径窄处,留一步与人行—— —— |
nick6562
一般會員 發表:26 回覆:19 積分:9 註冊:2004-07-15 發送簡訊給我 |
引言: nick6562您好: 试着做了一次,并不会同时出现两个窗口,代码如下:unit Bs_Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TMain = class(TForm) MainMenu1: TMainMenu; F1: TMenuItem; N1: TMenuItem; procedure N1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Main: TMain; implementation uses employee; {$R *.dfm} procedure TMain.N1Click(Sender: TObject); begin emp:=Temp.Create(self); try emp.ShowModal; finally emp.free; end; end; end. unit employee; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type Temp = class(TForm) private { Private declarations } public { Public declarations } end; var emp: Temp; implementation {$R *.dfm} end. dpr program Project1; uses Forms, Bs_Main in 'Bs_Main.pas' {Main}, employee in 'employee.pas' {emp}; {$R *.res} begin Application.Initialize; Application.CreateForm(TMain, Main); Application.CreateForm(Temp, emp); Application.Run; end.执行结果没错,按N1才显示出emp窗体,试试看 ——行径窄处,留一步与人行—— ——>>< face="Verdana, Arial, Helvetica"> 果然是高手!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |