如何实现如下的功能?
在窗体上动态的创建一个控件TEdit,关闭程序后,下一次运行程序的时候,动态创建的TEdit仍然在窗体上?分数不够可以再加,请各位大侠给予指导,谢谢!

解决方案 »

  1.   

    同样楼上的方法。或者可以用DSN控件实现。
    日本人的控件,也还可以。
    可以把窗口上的所有控件都保存起来。
      

  2.   

    zhoutian618(周天) :DSN控件从哪里下载,能否告诉我?
      

  3.   

    netwolfds(Good Good Study!) :如果用文件和数据库保存,性能会如何?
      

  4.   

    //用这个函数将TEdit或Tform保存到文件中
    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;
    //用这个函数将TEdit或Tform从文件中读出
    function StringToComponent(Value: string;Instance: TComponent): 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(Instance);
        finally
          BinStream.Free;
        end;
      finally
        StrStream.Free;
      end;
    end;
      

  5.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      i,j:word;
      sl,sl_tmp:TSTringList;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      edit:TEdit;
    begin
      edit:=TEdit.Create(self);
      edit.Left:=18;
      edit.Top:=18+22*i;
      edit.Parent:=self;
      inc(i);
      sl_tmp.Add(intToStr(edit.Left)+' '+intToStr(edit.Top));
    end;procedure TForm1.FormCreate(Sender: TObject);begin
      sl:=tstringlist.Create;
      sl_tmp:=Tstringlist.Create;
      if fileExists('goomoo.dat') then
      begin
      sl.LoadFromFile('goomoo.dat');
      for j:=0 to sl.Count-1 do
      begin
        button1click(nil);
      end;
      end;end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      sl_tmp.SaveToFile('goomoo.dat');
    end;end.
      

  6.   

    zhoutian618(周天) :我的Email,[email protected]
    谢谢