动态创建窗体时如何传递参数?(100分)

  • 主题发起人 主题发起人 ypy
  • 开始时间 开始时间
Y

ypy

Unregistered / Unconfirmed
GUEST, unregistred user!
动态创建一个窗体时如何传递一个参数过去?就是a创建b的时候传一个参数给b,
b接受参数。

在form1里创建
Form2:=TForm2.Create(self);
//怎么传一个参数?

在form2里
TForm2.onCreate(..)
begin
showmessage(参数);
//怎么接受参数?
end;
 
定义一个全局变量,
TForm2.onCreate(..)
begin
showmessage(全局变量);
end;
 
1、通过公共变量:
先申明一个公共变量,然后在form2中使用,最好是自己建一个过程来实现这个功能
如:在Form2的单元中:
代码:
  function ExecuteForm2(Const A:XXXX):Boolean;
  begin
     Form2:=TForm2.Create(Application);
     ...
  // 直接使用A这个参数
  end;
2、重载Form的Creat函数:
具体的嘛一般讲ObjectPascal的书上都有讲的,找本书来看看吧,比上这问得清楚。

 
自定义一个构造函数,或者在B设一个Class Function:
type
TForm2 = class(TForm)
...
public
class function CreateForm2(const AMyParam: string): TForm;
end;
...
class function TForm2.CreateForm2(const AMyParam: string): TForm;
begin
Result := nil;
if AMyParam = 'Create' then
Result := TForm2.Create(Application);
end;

调用的时候:
Form2 := TForm2.CreateForm2('Create');
 
多人接受答案了。
 
后退
顶部