在一个窗体上的Panel上的,动态地创建了一些控件, 将所有控件属性值保存下来当下次运行程序的时候程序会根把上次保存的文件,自动加载panel的属性和上面的控件

解决方案 »

  1.   

    用ini文件保存,
    这个是国标做法。
      

  2.   

    如果保存成像dfm文件那样的格式,直接可以通过TMemoryStream读取并生成form,我以前写个的类似代码如下:
    var
      rTemp: TReader;
      strDfm: string;
      cmpTemp: TComponent;
      msString, msBinary: TMemoryStream;     msString := TMemoryStream.Create;
        msBinary := TMemoryStream.Create;
        try
          //load the DFM file as a text file
          with TStringList.Create do
            try
              LoadFromFile(‘文件名’);
              //to judge if the form in inherited from others
              Text := StringReplace(Text,'inherited','object',[rfReplaceAll]);
              SaveToStream(msString);
            finally
              Free;
            end;
          //msString.LoadFromFile(strForm);
          msString.Write(strDfm[1], Length(strDfm));
          msString.Position := 0;
          ObjectTextToBinary(msString, msBinary);      msBinary.Position := 0;
          rTemp := TReader.Create(msBinary, 4096);
          rTemp.Parent := nil;
          rTemp.Owner := nil;      //set the method to the TReader
          rTemp.OnSetName := setNameEvent;
          rTemp.OnCreateComponent := CreateComponentEvent;
          rTemp.OnFindMethod := FindMethodEvent;
          //end      //create the preview form
          cmpTemp := rTemp.ReadRootComponent(TForm.Create(nil));
          TForm(cmpTemp).Show;
        finally
          FreeAndNil(msString);
          FreeAndNil(msBinary);
        end;
      end;你可以用一个dfm文件试试~