请教大家,运态生成后的按钮在下次运行时,上次生成的按钮能够在这次运行显示出来.  

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      aButton: TButton;
      MS: TMemoryStream;
    begin
      aButton := TButton.Create(self);
      aButton.Parent := Form1;
      aButton.Caption := 'test';
      Ms := TMemoryStream.Create;
      Ms.WriteComponent(aButton);
      Ms.SaveToFile('save.file');
      Ms.Free;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      aButton: TButton;
      MS: TMemoryStream;
    begin
      Ms := TMemoryStream.Create;
      Ms.LoadFromFile('save.file');
      Ms.Position := 0;
      aButton := TButton.Create(self);
      aButton.Parent := Form1;
      aButton := Ms.ReadComponent(aButton) as TButton;
      Ms.Free;
    end;
      

  2.   

    Stream流模式保存下,然后再取出即可。
      

  3.   

    看看d的RTTI和对象持久化资料
      

  4.   

    VCL inside 有持久化的内容。
    还有那本出名的《Delphi5 指南》。
      

  5.   

    1楼的方法很新颖,不过如果要写多个控件,在多次应用WriteComponent时,要记住流位置。对吧?主要是以为后的读取考虑。其实楼主如果不理解,可以用最简单的办法,就是将按扭各属性保存到ini中,每次读取ini都自动创建一遍。
      

  6.   

    1、不用保存,下次运行时,也先这样自动创建一次,不就行了
    2、保存各个按钮的left/top/width/height/caption到ini文件,下次运行时,先读入这些再自动设置