如何实现如下的功能?
在窗体上动态的创建一个控件TEdit,关闭程序后,下一次运行程序的时候,动态创建的TEdit仍然在窗体上?分数不够可以再加,请各位大侠给予指导,谢谢!
在窗体上动态的创建一个控件TEdit,关闭程序后,下一次运行程序的时候,动态创建的TEdit仍然在窗体上?分数不够可以再加,请各位大侠给予指导,谢谢!
解决方案 »
- session保持会话的问题
- 求LISTVIEW在FRSTREPORT中打印代码
- 为什么子类对象不可以传递给父类的变量?
- 只要你做了,就有分了,谢谢大家帮忙了
- stringgrid的一个问题
- 我的if语句错在哪里?真是搞不懂
- 关于:怎样将我的程序制作成Install程序?
- 动态数组用SetLength后是否其原先内容都被清楚了?
- 关于李维先生的《分布式多层应用--电子商务篇》的问题
- ImageEn中使用ImageEnVect1.MouseInteract := [miSelect];怎样得到选择区域的高,宽,及起始x、y
- 关于第三方控件DevExpress print system 的问题!!在线等待
- 关于dll的问题!!!
日本人的控件,也还可以。
可以把窗口上的所有控件都保存起来。
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;
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.
谢谢