線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:767
推到 Plurk!
推到 Facebook!

表單問題

答題得分者是:deity
nick6562
一般會員


發表:26
回覆:19
積分:9
註冊:2004-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-11 10:23:42 IP:211.74.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-11 11:00:15 IP:211.21.xxx.xxx 未訂閱
您將emp這個Form設成Available form即可 即在Delphi Menu/Project/Options在Form的頁夾將emp從Auto-create forms移到Available forms就可以了,試試看吧… ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
nick6562
一般會員


發表:26
回覆:19
積分:9
註冊:2004-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-11 11:06:17 IP:211.74.xxx.xxx 未訂閱
引言: 您將emp這個Form設成Available form即可 即在Delphi Menu/Project/Options在Form的頁夾將emp從Auto-create forms移到Available forms就可以了,試試看吧… ~小弟淺見,參考看看~
可以了!!!感謝您~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-11 11:06:31 IP:218.15.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-11 13:34:23 IP:211.74.xxx.xxx 未訂閱
引言: 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"> 果然是高手!!
系統時間:2024-05-17 15:31:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!