如题

解决方案 »

  1.   

    // 声明
    type
      TForm2 = class(TForm)
        Label1: TLabel;
      private
        { Private declarations }
      public
        { Public declarations }
        strDemo : string;
      end;
    // 使用
    ////////////////////////////var
      frm2 : TForm2;
    begin
      frm2 := TForm2.Create(Application);
      ShowMessage(frm2.strDemo);
    end;
    end;
      

  2.   

    SendMessage(Form2.Handle,自定义的消息,参数1,参数2);
      

  3.   

    用公共变量,公共单元这些都有一个缺陷,就是单元的封闭性不好,其实完全可以用入口函数,比如Form1打开Form2,那么在Form2的publish里定义一个入口函数,比如  private
        { Private declarations }
        Str: string;
      public
        { Public declarations }
        procedure EnterShow(AStr: String);
      end;procedure TForm2.EnterShow(AStr: String);
    begin
      Form2 := TForm2.Create(Application);
      with Form2 do
      begin
        Str := AStr;
      end;
    end;然后在Form1里就可以用Form2.EnterShow('ok');这样来传递字符串了
      

  4.   

    给窗体添加一个属性published
      property MyAtt:String read FMyAtt write FMyAtt;end;
      

  5.   

    窗口A,里面有个str1;
    窗口B,里有有个str2;
    A.str1:=b.str2;