请问大家这个应用(控制程序界面)该如何来做?

shuaixf 2009-07-23 08:06:21
一个工程有两个界面,根据参数params=a打开界面1,params=b打开界面2
【工程代码】
    ......
Application.Initialize;
Application.Title := 'test';
Application.CreateForm(TDataModule, DataModule);
if params='a' then
Application.CreateForm(TForm1, Form1)
else if params='b' then
Application.CreateForm(TForm2, Form2);
Application.Run;


但是当打开界面1后,配置好参数后需要关闭1并打开界面2,这怎么做呢?
procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
Form2 := TForm2.Create(Application);
Close;
Form2.ShowModal;
.....
end;


因为在引用中Form2有ocx控件,Form2 := TForm2.Create后,ocx控件就会加载参数,参数是通过界面1配置的。

...全文
59 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuaixf 2009-07-23
  • 打赏
  • 举报
回复
我错了,呵呵。
发现你是对的,谢谢sparklerl你的详解!
shuaixf 2009-07-23
  • 打赏
  • 举报
回复
不行啊,点击后仍然显示是Form1,而不是Form2
sparklerl 2009-07-23
  • 打赏
  • 举报
回复

program Project1;

uses
Controls,
......



mrOK在Controls里面,所以工程代码里面要加上这个
sanguomi 2009-07-23
  • 打赏
  • 举报
回复
把FORM1隐藏
sparklerl 2009-07-23
  • 打赏
  • 举报
回复
    ......
Application.Initialize;
Application.Title := 'test';
Application.CreateForm(TDataModule, DataModule);
if params='a' then
begin
Form1:=TForm1.Create(nil);
if Form1.ShowModal=mrOK then Application.CreateForm(TForm2, Form2);
end
else if params='b' then
Application.CreateForm(TForm2, Form2);
Application.Run;



procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
ModalResult := mrOK;
end;


试试这样
shuaixf 2009-07-23
  • 打赏
  • 举报
回复
整个应用程序关掉了。
sparklerl 2009-07-23
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
Form2 := TForm2.Create(Application);
Close;
Form2.ShowModal;
.....
end;


你这个代码在运行的时候有什么问题嘛?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧