2011-05-17 35 views
1

所以我运行一个仿真使用通过代码框架队列

当你选择模型的程序,它会打开一个屏幕,可让您选择“运行模式”,这将打开另一个窗口,从中可以可以按下启动按钮

我想打一个队列,以便用户可以选择多个模型和程序将通过这些画面,而无需用户输入运行

于是,我打电话这样的框架:

ProgForm := TProgressForm.Create(Self, FModItem); 
Self.Visible := False; 
try 
ProgForm.ShowModal; 

现在,我可以通过在Create的末尾添加一行来运行程序来运行仿真,但问题是仿真结束前它没有显示帧(因为Create构造函数isn直到我完成的运行函数完成)

我不知道该怎么做,因为如果我没有在Create函数中添加任何东西,我打电话,似乎没有任何其他方式自动调用任何功能,但如果我做一些创建,将不显示的帧,直到创建完成

感谢

回答

1

我建议阅读:

http://delphi.about.com/od/formsdialogs/a/delphiformlife.htm

您可以使用窗体的OnShow事件做的东西之前的形式完全在屏幕上绘制。
OnActivate通常是绘制表单时最好做的东西。

BTW
你说的框架,但在你的代码,它说:TProgressForm所以我猜你的意思是Form一个Frame内。

+0

非常感谢,这正是我所寻找的,OnActivate完美的作品 – KingKong 2011-05-17 14:06:53

+1

如果在同一个“模式堆栈”级别中有两个或多个表单并且用户在这些表单之间切换,则也会调用OnActivate。因此,使用OnActivate作为“OnAfterShow”时要小心。 – 2011-05-17 20:36:56