如题,怎样实现frm的动态加载,并且实现窗体里面的事件不要丢掉。
frm保存成txt可以直接看到窗体脚本,但是事件好像加载不了,不知道怎么实现。请各位帮忙看看,谢谢!

解决方案 »

  1.   


    var
      frm:TForm1
    begin
      frm := TForm1.Create(Application);
      frm.Show;
    end;
      

  2.   


    //在Form1中增加事件处理函数,比如OnCreate事件
    procedure TForm1.OnFormCreate(Sender:TObject);
    begin
       //事件处理过程
    end;//假如动态创建的窗体的TForm2,那么在TForm1中创建TForm2with TForm2.Create(self) do
    begin
      OnCreate:=OnFormCreate;
      Show;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      WriteComponentResFile('c:\frm.res', Form1);
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      frm: TForm1;
    begin
      frm:= TForm1.CreateNew(Application);
      ReadComponentResFile('c:\frm.res, frm);
    end;要這個效果?
      

  4.   

    只用.dfm文件加载肯定不行的,事件代码在pas文件里呢,窗体里面只是一个属性
      

  5.   

    看看下面的函数,查询有关delphi持久化的内容:function ComponentToString(Component: TComponent): string;var
      BinStream:TMemoryStream;
      StrStream: TStringStream;
      s: string;
    begin
      BinStream := TMemoryStream.Create;
      try
        StrStream := TStringStream.Create(s);
        try
          BinStream.WriteComponent(Component);
          BinStream.Seek(0, soFromBeginning);
          ObjectBinaryToText(BinStream, StrStream);
          StrStream.Seek(0, soFromBeginning);
          Result:= StrStream.DataString;
        finally
          StrStream.Free;    end;
      finally
        BinStream.Free
      end;
    end;function StringToComponent(Value: string): TComponent;
    var
      StrStream:TStringStream;
      BinStream: TMemoryStream;
    begin
      StrStream := TStringStream.Create(Value);
      try
        BinStream := TMemoryStream.Create;
        try
          ObjectTextToBinary(StrStream, BinStream);
          BinStream.Seek(0, soFromBeginning);
          Result := BinStream.ReadComponent(nil);    finally
          BinStream.Free;
        end;
      finally
        StrStream.Free;
      end;
    end;
      

  6.   


    这样是没问题,我试过是可以,就是不知道怎么加事件,如果里面有个button事件,我该怎么加呢
      

  7.   

    如果不把事件去掉 StringToComponent过程会出错