C
caijitao
Unregistered / Unconfirmed
GUEST, unregistred user!
我想在某个函数中打开不同的窗口。
该函数定义如下
function fu1( w1:??? );
begin
with w1.create(self) do show;
end
而w1可以是formA,formB...formN等不同的窗口对象。
每调用一次函数可打开相应的窗口对象。
这个函数应该如何写呢?
感谢cjsh,问题解决了:)
完整例子
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Controls, StdCtrls,Forms;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
procedure CreateSubForm(AClassName:string);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateSubForm('TForm1');
end;
procedure TForm1.CreateSubForm(AClassName: string);
begin
if GetClass(AClassName)<>nil then
with TFormClass(FindClass(AClassName)).Create(self) do
begin
ShowModal;
end;
end;
////下面的代码注册窗体类,你要注册才能用FindClass找到
initialization
RegisterClass(TForm1);
end.
该函数定义如下
function fu1( w1:??? );
begin
with w1.create(self) do show;
end
而w1可以是formA,formB...formN等不同的窗口对象。
每调用一次函数可打开相应的窗口对象。
这个函数应该如何写呢?
感谢cjsh,问题解决了:)
完整例子
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Controls, StdCtrls,Forms;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
procedure CreateSubForm(AClassName:string);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateSubForm('TForm1');
end;
procedure TForm1.CreateSubForm(AClassName: string);
begin
if GetClass(AClassName)<>nil then
with TFormClass(FindClass(AClassName)).Create(self) do
begin
ShowModal;
end;
end;
////下面的代码注册窗体类,你要注册才能用FindClass找到
initialization
RegisterClass(TForm1);
end.