我 需要这应一个过程
假如过程名是Fit
begin
form2:=Tform2.create(application);
form2.show
end
我需要随即创建
就是说 fit(3)
那么上面就是
begin
form3:=Tform3.create(application);
form3.show
end
这个过程怎么定义 谢谢
假如过程名是Fit
begin
form2:=Tform2.create(application);
form2.show
end
我需要随即创建
就是说 fit(3)
那么上面就是
begin
form3:=Tform3.create(application);
form3.show
end
这个过程怎么定义 谢谢
public
YourChoice=false:boolean;
end;
.......
procedure ????.?????(???);
begin
if 符合条件 then YourChoice:=true else YourChoice:=false;
end;
.......
.......
if (YourChoice) then
do procedure1
else
do procedure2
repeat
procedure1 或 procedure2
until ...........
....
end.
这样做,代码会写的比较多!但这也是我所知道的!
定义一过程:
procedure Fit(Form2: TForm);procedure TForm1.Fit(Form2: TForm);
begin
Form2:= TForm.Create(Application);
Form2.Show;
end;procedure TForm1.SB2Click(Sender: TObject);
var Form3: TForm;
begin
Fit(Form3);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2=class(TForm)
end;
....
TFormN=class(TForm)
end; TForm2Class=class of TForm2;
....
TFormNClass=class of TFormN; TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; procedure Fit(AFrmIndex:Integer)var
Form1: TForm1;implementationprocedure Fit(AFrmIndex:Integer);
var
vForm:TForm;
begin
case AFrmIndex of
2: vForm:=TForm2Class(GetClass('TForm'+IntToStr(AFrmIndex))).Create ;
....
N: vForm:=TFormNClass(GetClass('TForm'+IntToStr(AFrmIndex))).Create ;
end;
end;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Fit(StrToInt(Trim(Edit1.Text)));
end;Initialization
RegisterClasses([TForm2,....,TFormN]);end.
但可以动态创建新的控件实例,我想你要的就是这个效果
function fit(id:integer);
begin
case id of:
2:
begin
form2:=Tform2.create(application);
form2.show
end
3:
begin
form3:=Tform3.create(application);
form3.show
end;
end;end;
我的把每个form2:=Tform2.create(application);
全写那如果有N个呢?
我还的全写
所以我希望 动态创建它
比如我写个 fit(3)他就是form3:=Tform3.create(application);
form3.show