我需要做一个公用的窗体,会处理一些数据,处理结束后返回一个值给调用他的窗体,但是因为是公用的,所以需要确定调用它的窗体的名字,我该如何做呢?

解决方案 »

  1.   

    重载构造函数:
    type
      TForm1 = class(TForm)
      private
        CallerForm: TForm;
      public
        constructor Create(AOwner: TComponent; CallerForm: TForm);overload;
      end;constructor TForm1.Create(AOwner: TComponent; CallerForm: TForm);
    begin
      inherited Create(AOwner);
      Self.CallerForm := CallerForm;
    end;创建它的时候使用重载后而不是原来的构造函数。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    比如A为公用窗口,B,C,D,E等更多的窗体都可以调用它,每一个调用A的窗体都有一个相同名字的过程procedure SetValue, 那我在A中怎么才能调用到SetValue这个过程呢?请大侠指教!
      

  3.   

    从今天写的代码中COPY出来的。
    var
      frmStockRT: TfrmStockRT;function ShowStockRTForm():Boolean;implementationuses untDM, untDefine,untRealTimeInof;{$R *.dfm}function ShowStockRTForm():Boolean;
    begin
      if not Assigned(frmStockRT)then
        frmStockRT:=TfrmStockRT.Create(Application);  frmStockRT.WindowState :=wsMaximized;
      frmStockRT.ShowData();
      frmStockRT.Show();  frmStockRT.PC.ActivePageIndex :=0;  Result:=True;
    end;