请教一下大家,我有一个窗口需要在程序里重复引用,而且根据源窗口显示不同的内容比如说从FORM1打开,窗口中的label组件就显示form1
从form2打开,窗口中的label组件就显示form2
从form3打开,窗口中的label组件就显示form3想请大家给个解决方法,谢谢

解决方案 »

  1.   

    给窗体中加一个方法,用来使之label显示,然后调用时,先执行这个方法
      

  2.   

    Constructor TDestForm.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      if AOwner.Classtype = TForm1 then
        label1.caption := 'Form1'
      else if AOwner.Classtype = TForm2 then
        label1.caption := 'Form2'
      else if AOwner.Classtype = TForm3 then
        label1.caption := 'Form3'
      ...
    end;procedure TForm1.CallDestForm;
    var
      fmDest: TDestForm;
    begin
      fmDest := TDestForm.Create(self);
      ...
    end;
    ...
      

  3.   

    同意楼上的
    不过我一般都是自动创建窗体的
    用的时候直接从form1打开
    tmpform.label1.caption='form1';
    tmpform.show;
    ....
      

  4.   

    太深,不是很懂,还得劳烦一下大家给条活路,我的代码贴出来
    procedure Tbatsaleform.N2Click(Sender: TObject);
    begin
      application.CreateForm(Tattribform,attribform);
      attribform.Show
    end;procedure Tdistform.N2Click(Sender: TObject);           
    begin
      application.CreateForm(Tattribform,attribform);
      attribform.Show;
    end;上面是二个源窗口;procedure Tattribform.FormShow(Sender: TObject);
    var
      i:integer;
    begin
      combobox1.Clear;
      for i:=0 to distform.dbgrideh1.Columns.Count-1 do
      begin
        combobox1.Items.add(distform.DBGridEh1.Columns[i].FieldName);
      end
    end;
    这是打开的窗口,我想把distform.dbgrideh1.Columns中的distform换成变量,从那个窗口打开,我就取那个窗口的名称感 谢大家
      

  5.   

    procedure Tattribform.ComboBox1Select(Sender: TObject);
    procedure Tattribform.Button1Click(Sender: TObject);
    我还有上面二个事件,都是根据源窗口的名称来的,最好能设个全局变量,
    谢谢大家
      

  6.   


    设置个全局变量也可以啊比如设置全局变量 var Own: String;
    从FORM1打开,在Form1中的打开窗口事件中,Own:= 'Form1';窗口中的label.Caption:= Own;
      

  7.   


    大哥,变量类型如果是字符串型的也就好搞点,我想在的类型是Tform类型的,请在帮忙给个方法吧