プロジェクトを D6 から D-XE3 に移行しようとしています。VirtualStringTree のバージョン 5.10 を使用して、OnSaveNode および OnLoadEvents でツリー データを保存およびロードすると、ガベージが発生します。私はおそらく Unicode を正しく処理していませんが、私の側に他の無知がある可能性があります。
procedure TfMain.vstGridSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
Data: PStkData;
begin
Data := Sender.GetNodeData(Node);
// Owned: boolean;
Stream.Write(Data.Owned, SizeOf(boolean) );
// Symbol: string;
Stream.Write(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));
// AvgTarget: currency;
//Stream.Write(Data.AvgTarget, SizeOf(currency));
// PE: double;
Stream.Write(Data.PE, SizeOf(double));
end;
procedure TfMain.vstGridLoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
Data: PStkData;
begin
Data := Sender.GetNodeData(Node);
//Owned: boolean;
Stream.Read(Data.Owned, SizeOf(boolean));
//Symbol: string;
Stream.Read(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));
//AvgTarget: currency;
Stream.Read(Data.AvgTarget, SizeOf(currency));
//PE: double;
Stream.Read(Data.PE, SizeOf(double));
end;
助けてくれてありがとう。