如何存储我自己编的类!!!!!!(50分)

  • 主题发起人 主题发起人 linglingfa
  • 开始时间 开始时间
L

linglingfa

Unregistered / Unconfirmed
GUEST, unregistred user!
我编了一些图形类如:直线,椭圆,。。。。把它们放到一个Panel上,现在我想把它们存储到一个文件里
,以便下以次打开这个文件后,它们乃按存储前的位置放在Panel上。
希望大家提供宝贵的建议!!!!!!!!!!
 
选中你要保存的控件,
选择控件->生成控件模版.
输入保存后的控件名称,保存的PAGE(如TEMPLATE),更改图片.

则在TEPLATE页中就新增了你的控件.用法和其他可视化控件一样.
 
yunshang你再看看我的问题嘛!!!!!!!是不是我写的不明白!
 
你可以统计一下他们的属性,然后将其存入文件,LOAD时动态生成一个控件,然后从文件中
读取属性,赋予控件,你可以看看我的“软件工程结构化分析辅助设计”,里面的图形信息
我就是这么存贮的。
当然,如果你会VC的话,它的CArchive类可以把对象保存到文件,这点比DELPHI方便。
 
qf0421你的思想不错!但仍可继续讨论
 
1 生成一个基类,实现(封装)各种画图的方法。
2 申明一个指针变量,指向一个动态内存区,保存直线、圆等的参数。
3 申明一个图形类型变量,表明是直线、圆等图形。
4 保存成文件时,依次保存图形类型变量、图形参数。
5 读出文件时,依次创建对象实例,读入参数,画图。
6 OK。
 

procedure TfrmMain.SaveToFile(FileName: string);
var
i : Integer;
lControl : TControl;
lWriter : TWriter;
aMemoryStream: TMemoryStream;
begin

aMemoryStream := TMemoryStream.Create;

aMemoryStream.Clear;

lWriter := TWriter.Create(aMemoryStream, 1024);

try
lWriter.Root := FWorkSpace;

for i := 0 to FObjects - 1 do
begin
lControl := TControl(FObject);

lWriter.WriteSignature;
lWriter.WriteComponent(lControl);

end;

lWriter.WriteListEnd;
finally
lWriter.Free;
end;

aMemoryStream.SaveToFile(FileName);

aMemoryStream.Free;

end;

上面是我的实际用的程序,略微改一下就可以了
 
多人接受答案了。
 
后退
顶部