cAkk 看过来(0分)

  • 主题发起人 主题发起人 zensst
  • 开始时间 开始时间
Z

zensst

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=244027
满了,回答不了。

好象TStream有直接的方法,看看源码.
function ReadComponent(Instance: TComponent): TComponent;
function ReadComponentRes(Instance: TComponent): TComponent;
procedure WriteComponent(Instance: TComponent);
procedure WriteComponentRes(const ResName: string; Instance: TComponent);
procedure WriteDescendent(Instance, Ancestor: TComponent);
procedure WriteDescendentRes(const ResName: string; Instance, Ancestor: TComponent);
请原谅,我最近在全力完成作图的程序。具体没试过,但Delphi的代码中,
很多地方用到上面的方法。
另外一个办法就是:自己定义一种格式。先将每个Component分别存在在
TStream中,也可一个一个的来,用一个头数据块保存它们(TStream)的
大小,然后顺序写到一个Stream中。读的时候,根据头数据块来分开,一个
一个的还原。
比如:

TNCHead=record //每个Component
StreamState: DWORD; //在Stream中的状态,是否完成等
FPointer, FSize: Integer; //地址偏移和大小
end;

TNCListHead=record //Components List
HeadSize: Integer; //头数据块的大小
StreamState: DWORD;
FCount, FSize, FPointer: Integer; //保存Component的数据区信息
XCount, XSize, XPointer: Integer; //其它辅助信息
CheckSum: array[0..31] of Byte;
end;

这可是我的好东西中间的重点之一啊!
 
;另外,对于Event的处理:
在应用程序启动后,将需要公布的过程、函数的入口列入一个表,如TList,
便可以通过Name 或 ID 进行查找绑定。也可以在你定义你的动态窗口里,增加
一种动态调用DLL的方法,便可以绑定任意Event。
甚至可以做 DelphiScript。只是速度...
要写入Access数据库,可以用BLOB,与TStream配合很方便。我没用过Access。
 
咦,怎么没回音?
 
因为cAkk没有看过来 :)
 
是那个"程序变慢"的问题吗?

问题是你的TStream保存在什么地方呢? 我要求程序退出之后,其他程序
一样可以访问该数据.
----不能保存成文件.
 
抱歉,我可能看错题目了.

不过现在还不能证明是剪贴/拷贝的问题呀.
 
;问题解决了吗?
会不会是需要进行硬盘整理了。可以试试。
 
接受答案了.
 
后退
顶部