动态生成后的按钮如何保存 请教大家,运态生成后的按钮在下次运行时,上次生成的按钮能够在这次运行显示出来. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; Stream流模式保存下,然后再取出即可。 看看d的RTTI和对象持久化资料 VCL inside 有持久化的内容。还有那本出名的《Delphi5 指南》。 1楼的方法很新颖,不过如果要写多个控件,在多次应用WriteComponent时,要记住流位置。对吧?主要是以为后的读取考虑。其实楼主如果不理解,可以用最简单的办法,就是将按扭各属性保存到ini中,每次读取ini都自动创建一遍。 1、不用保存,下次运行时,也先这样自动创建一次,不就行了2、保存各个按钮的left/top/width/height/caption到ini文件,下次运行时,先读入这些再自动设置 求助导入Excel问题。 DBImage的问题 急求控件(图片显示控件) TreeView刷新问题? 请问Lostbox的每一行中怎样加换行回车符? 一个TreeView控件的问题 strtoint与integer 兄弟们,问一下软件价格。 如何获取系统是否有可以使用的外部红外设备 如何固定stringgrid的任意一行? 利用http代理发送邮件。 Listview中单击它的Checkbox会触发什么事件
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;
还有那本出名的《Delphi5 指南》。
2、保存各个按钮的left/top/width/height/caption到ini文件,下次运行时,先读入这些再自动设置