复制对象
delphi中怎么复制一个对象啊?而不共用地址。。。
如:CoolTrayIcon1: TCoolTrayIcon;
CoolTrayIcon2: TCoolTrayIcon;
CoolTrayIcon1 := CoolTrayIcon2;
这样两对实例共用了同一个内存,CoolTrayIcon1.Free 后,CoolTrayIcon2也释放了,怎么解决?!谢谢
[解决办法]
CoolTrayIcon1.Assing(CoolTrayIcon2);
[解决办法]
如果没提供assign那么 只有重写这个方法,
或者copymemory()讲内存复制下。同一个进程下应该没问题把
[解决办法]
那就是没提供这个方法,你可以重写这个方法比较复杂。
[解决办法]
CopyMemory(CoolTrayIcon1, CoolTrayIcon2, T2.InstanceSize);
[解决办法]
var
SS:PPoint;
SL:TStringList;
begin
SS:=GetMemory(Sl.InstanceSize);
Sl:=TStringlist.Create;
Sl.Text:='dafadsfadsfasdf';
CopyMemory(SS,Sl,Sl.InstanceSize);
ShowMessage(TStringList(SS).Text);
[解决办法]
类似写法,都是对象,内存复制 还原
[解决办法]
假设 CoolTrayIcon已经创建,现在 你要复制到CoolTrayIcon2var FS : TMemoryStream; CoolTrayIcon2: TCoolTrayIcon;begin FS := TMemoryStream.Create; CoolTrayIcon2 := TCoolTrayIcon.Create; FS.WriteComponent(CoolTrayIcon1); FS.Seek(0,2); FS.ReadComponent(CoolTrayIcon2); FS.Free;end;