原先是这样的
form1:=TForm1.Create(Application);
form1.Caption:='123';form2:=TForm2.Create(Application);
form2.Caption:='456';我想提取个公共的操作
form1:=SetTest(TForm1,'123');//这样写参数会出错
function SetTest(form:TForm;str:string):TForm;
var
form:TForm;
begin
form:=TForm.Create(Application);
form.Caption:=str;
end;
form1:=TForm1.Create(Application);
form1.Caption:='123';form2:=TForm2.Create(Application);
form2.Caption:='456';我想提取个公共的操作
form1:=SetTest(TForm1,'123');//这样写参数会出错
function SetTest(form:TForm;str:string):TForm;
var
form:TForm;
begin
form:=TForm.Create(Application);
form.Caption:=str;
end;
var
form1 :TForm;
begin Tform(form).Caption := str;
end;procedure TForm1.Button1Click(Sender: TObject);
beginform2:=TForm2.Create(Application);
form2.Caption:='456';
SetTest(form1,'123');//这样写参数会出错
end;
function SetTest(mformclass:TFormclass;str:string):TForm;
var
form:TForm;
begin
form:=mFormclass.Create(Application);
form.Caption:=str;
result:=form;
end;
var
form1 :TForm;
begin
Tform(form) := TForm.Create(Application);
Tform(form).Caption := str;
Result := Tform(form);
end;procedure TForm1.Button1Click(Sender: TObject);
var
Form1 : TForm;
beginform2:=TForm2.Create(Application);
form2.Caption:='456';
Form1 := SetTest(TForm1,'123');//这样写参数会出错
form1.ShowModal;
end;
form1 := SetTest(TForm1,'123');
[错误] Unit1.pas(152): Incompatible types: 'TForm1' and 'TForm'
setTest 你沒認真看我怎麼寫。
begin
form.Caption := str;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Form1 : TForm;
begin
form2:=TForm2.Create(Application);
form2.Caption:='456';
SetTest(Form2,'123'); //一样的道理,可以设Form1,SetTest(Form1,'123');
form2.ShowModal;
end;
function SetTest(Pform:TFormClass;str:string):TForm;
begin
//application.CreateForm(pform,result);
result := Tform(pform.Create(application));
result.Caption := str;
result.Show;
end;var
f2:tform1;
begin
f2 := SetTest(tform1,'sdfsd') as tform1;
谢谢