关于IntraWeb中的程序主窗口问题(50分)

D

djzxljb

Unregistered / Unconfirmed
GUEST, unregistred user!
我想请教一问题,如何手工设置程序启动主窗体,一般来讲,利用D7向导会在
project.dpr中自动生成以下文件
uses
Forms,
IWMain,
ServerController in 'ServerController.pas' {IWServerController: TIWServerController},
DatamoduleUnit in 'DatamoduleUnit.pas' {DataModule1: TDataModule},
iwFormBase in 'iwFormBase.pas' {iwFormDBJ: [red]TIWFormModuleBase[/red]},
loginUnit in 'loginUnit.pas' {[red][black]iwformLogin: TIWAppForm[/black][/red]};

{$R *.res}

begin
Application.Initialize;
 Application.CreateForm([red][black]TiwFormDBJ, iwFormDBJ[/black][/red]);
Application.Run;
end.应该说formLogin是程序启动主窗口,我想手工将FormMain设为主窗口,于是我这样改
IWUnit1 in 'IWUnit1.pas' {formLogin:[red] TIWAppForm[/red]},
Main_Unit in 'Main_Unit.pas' {[red]formMain: TIWFormModuleBase[/red]},
对定义进行了调换,
Application.CreateForm([red][black]TiwFormlogin, iwFormlogin[/black][/red]);
然后将IWUnit1.pas中的
initialization
TfrmLogin.SetAsMainForm;
剪切至MainUnit中,这样做理论上是不是可以,可我的D7总报示定义formLogin
为什么会这样子
 
我找到一个解决的办法,即在
begin
Application.Initialize;
 /////////////////////////////////
Application.CreateForm(TiwFormLogin, iwFormLogin)
//////////////////////////////////
Application.Run;
end.
将application.createForm中的自已的窗体命名改为系统默认的TformIWMain, formIWMain
然后有iwFormLogin.pas添加
initialization
TfrmLogin.SetAsMainForm;
即可,但不知道为什么
 
楼主,只需修改下面即可!!
代码:
program IWProject;
{PUBDIST}

uses
  IWInitStandAlone,
  ServerController in 'ServerController.pas' {IWServerController: TIWServerController},
  IWUnit1 in 'IWUnit1.pas' {formMain: TIWForm1};

{$R *.res}

begin
  IWRun(TFormMain, TIWServerController);
       ~~~~~~~~~~把这里修改为你的开始窗口名
end.
 
为什么你的程序代码和我的不一样,你用的是intraweb什么版本,是5.1.24吗?
 
To :楼主,估计你用的是6.0以上版本吧,
没错,是这样的.你注意了没有工程中多了一个IWMain单元,我想这个单元就是来定义
处理主FORM的.
6.0 显然intraweb不向下兼容.
其实,只要你的frmlogin增加了那一句话,工程中这样就可以了
Application.Initialize;
Application.CreateForm(TformIWMain, formIWMain);
Application.Run;
 
Application.CreateForm(TformIWMain, formIWMain);
IWMAIN是用来做什么的呢?
 
formIWMain代表的就是主窗体,这里由于frmLogin已经使用了TfrmLogin.SetAsMainForm;
所以frmLogin就成了主窗体.Application.CreateForm(TformIWMain, formIWMain);
创建的就是frmLogin.
IWMAIN的源码看不到,但可以想像它就是做这个主窗体的定义的.
 
多人接受答案了。
 
顶部