打开一个FORM的问题
例如:if Not Assigned(FrmFlowMain) then
Application.CreateForm(TFrmFlowMain,FrmFlowMain);
FrmFlowMain.ShowModal;
我想把 FrmFlowMain 变成一个变量,根据所选择的不同来打开不同的FORM,怎么做呢?
问题点数:100、回复次数:8Top
1 楼geyobing(大地精灵)回复于 2003-09-01 20:46:23 得分 20
好象没有这个必要吧,而且你的每个窗体继承了TFORM,自己就是一个新的类了啊
你还不如根据每个条件给他们不同的变量呢Top
2 楼huojiehai(海天子)回复于 2003-09-01 20:50:19 得分 10
procedure TForm1.ShowForm(FormClass: TFormClass);
begin
With FormClass.Create(Self) do
try
ShowModal;
finally
Free;
end;
end;
调用
ShowForm(FrmFlowMain);
ShowForm(TForm2);
...
Top
3 楼Elysium(東鱗覀爫)回复于 2003-09-01 20:56:34 得分 10
var form:twincontrol
procedure create(winctrl:twincontrol)Top
4 楼do3344(爱你但不告诉你)回复于 2003-09-01 21:14:47 得分 0
procedure TForm1.ShowForm(FormClass: TFormClass);
begin
With FormClass.Create(Self) do
try
ShowModal;
finally
Free;
end;
end;
调用
ShowForm(FrmFlowMain
那调用时,FrmFlowMain为变量怎么调用?我就是不会这个啊。
Top
5 楼do3344(爱你但不告诉你)回复于 2003-09-01 21:58:44 得分 0
UP,帮帮啦。。。。。。。。。。。。。。。。。。Top
6 楼Cipherliu(孤鹰)回复于 2003-09-01 22:05:21 得分 10
ShowForm时,参数就传这个类的名字
比如
ShowForm(TForm1);
明白了吧Top
7 楼Cipherliu(孤鹰)回复于 2003-09-01 22:06:22 得分 10
注意一定要有这一句
TFormClass = class of TForm;Top
8 楼mrtxc(阿春)回复于 2003-09-01 22:39:31 得分 40
procedure TForm1.ShowForm(FormClass: TFormClass);
begin
With FormClass.Create(Self) do
try
ShowModal;
finally
Free;
end;
end;
如果在Form1中调用Form2,则:
uses unit2;//就是申明Form2的单元
……
ShowForm(TForm2);//注意不是Form2,因为这里是类名,不是实例名
你要显示FrmFlowMain也必须这样:
showform(TFrmFlowMain);不是showform(FrmFlowMain)
Top



