![]() |
Objecte Speichern VirtualTreeView
Leider hat der Author den Lösungsansatz zum speicher der Objekte verschwiegen. Wäre es vielleicht möglich diesen noch zu ergänzen sitze seit Stunden genau vor demselben Problem. Ich wäre dafür sehr sehr mit aller grösstem Danke verpflichtet.
Cu Brazo98 |
Re: Objecte Speichern VirtualTreeView
Hallo,
bei einem virtuellen Control speicherst du selbst die Daten und übergibst dem Control auf dessen Nachfrage einen Zeiger auf deine Daten. Hast du dir mal das ![]() Freundliche Grüße |
Re: Objecte Speichern VirtualTreeView
Hi,
ich verwende den VT fast ausschließlich mit Objekten. Dazu ein wenig Beispielcode:
Delphi-Quellcode:
Mein LogItem (das Objekt) ist so aufgebaut:
procedure TfrmMain.AddNode( LogItem: TLogItem;
vst: TVirtualStringTree ); var _LogItem: TLogItem; begin if ( ( Assigned( LogItem ) ) AND ( Assigned( vst ) ) ) then begin vst.NodeDataSize := SizeOf( TLogItem ); vst.AddChild( nil, LogItem ); end; end;
Delphi-Quellcode:
Und nun möchte ich natürlich, dass auch im Tree die Daten angezeigt werden:
TLogItem = class(TObject)
private FLogLevel: ELogLevel; FLogStyle: ELogStyle; FText: WideString; FDateTime: TDateTime; public constructor Create( DateTime: TDateTime; LogLevel: ELogLevel; LogStyle: ELogStyle; Text: WideString ); destructor Destroy(); override; published property LogLevel: ELogLevel read FLogLevel write FLogLevel; property LogStyle: ELogStyle read FLogStyle write FLogStyle; property Text: WideString read FText write FText; property DateTime: TDateTime read FDateTime write FDateTime; end;
Delphi-Quellcode:
Ich verwalte alle meine Objekte wiederrum in einer "TObjectList", die bei Löschung eines Objekts auch dessen Speicher freigibt.
procedure TfrmMain.vst_logGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); var Data: TLogItem; begin Data := TLogItem( Sender.GetNodeData( Node )^ ); case Column of 1: CellText := FormatDateTime( ShortDateFormat + ' ' + LongTimeFormat + '.zzz', Data.DateTime ); 2: CellText := Data.Text; end; end; Viele Grüße. |
Re: Objecte Speichern VirtualTreeView
EDIT: Sorry. Doppelpost. Ich liebe unseren Proxy... :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz