如:
procedure TXX.XX(a:Integer)
var
form:TForm;
begin
   if a=0 then
   begin
      form转换为TForm1;
      form.TForm1的属性
   end
   if a=1 then
   begin
      form转换为TForm2;
      form.TForm2的属性
   end
   form. TForm没有,但TForm1和TForm2都有的属性
end;

解决方案 »

  1.   

    Form.Assign(Form1);
    Form.Assign(Form2);
      

  2.   

    if a=0 then
       begin
          form := Form1;
          TForm1(Form)..TForm1的属性
       end不知這樣可不可以
      

  3.   

    zzllabc(龙)的方法不行,因为不能访问Form1和form2的属性
      

  4.   

    TForm1(Form)..TForm1的属性我是想用一个变量之类的东西代替TForm1这个东西
      

  5.   

    procedure TXX.XX(a:Integer)
    var
    frm_1:TForm1;
    frm_2:tform2;
    begin
       if a=0 then
       begin
         from_1:=tform1.create(application) ;
         form_1......
       end
       if a=1 then
       begin
         from_2:=tform2.create(application) ;
         form_2......
       end
    end;
      

  6.   

    Form.Assign(Form1);
    Form.Assign(Form2);(Form as TForm1).属性;
    (Form as TForm2).属性;
      

  7.   

    TForm1和TForm2有大量名字相同,内容不同的过程我不想分别调用如何做到呢?如:
    if a=0 form转为TForm1
    if a=1 form转为TForm2form.TFom1和TForm2中相同名字的过程
      

  8.   

    Form.Assign(Form1);
    Form.Assign(Form2);TForm1(Form).属性;
    TForm2(Form).属性;
      

  9.   

    看看有關确接口 的編寫吧!
    Form1, Form2 都繼續同個接口, 運行時var AForm: myinterface
    begin
     if a = 0 then AForm := Form1
     else
     ...
      AForm.Do1;
     大概這樣做吧!