![]() |
Treeview-Aktualisierung beim Befüllen deaktivieren!?
Hallo Leute!
Ich befülle einen Treeview dynamisch in einer Schleife mit Einträgen. Mein Problem ist, dass dieser Vorgang zu lange dauert. Ein Kollege aus der VB-Scene riet mir die Aktualisierung des Treeviews, wenn möglich, abzuschalten. Wenn ich das richtig verstehe, wird ja das Treeview bei jedem AddChild neu gezeichnet...? Wenn ich dass unterbrechen könnte und für den letzten Eintrag wieder aktivieren könnte, wäre mir zeittechnisch vielleicht schon etwas geholfen. Treeview1.Enable:=false hat leider nix geholfen... Wie könnte es klappen??? |
Re: Treeview-Aktualisierung beim Befüllen deaktivieren!?
:) Hi,
sollte eigentlich einfach sein:
Delphi-Quellcode:
Gruss
Treeview.Beginupdate;
// Hier wird manipuliert an den Items Treeview.Endupdate; Treeview.Update; P.S.: Falls ich falsch liege, bitte nicht schlagen :) |
Re: Treeview-Aktualisierung beim Befüllen deaktivieren!?
Zitat:
Die Befehle heissen
Delphi-Quellcode:
bzw.
TreeView1.Items.BeginUpdate;
Delphi-Quellcode:
;)
TreeView1.Items.EndUpdate;
Ausserdem wird bei EndUpdate automatisch aktualisiert. Greetz alcaeus |
Re: Treeview-Aktualisierung beim Befüllen deaktivieren!?
mille gracie!!!
|
Re: Treeview-Aktualisierung beim Befüllen deaktivieren!?
Noch ein Hinweise BeginUpdate / EndUpdate immer paarweise aufrufen. Intern wird dies als Zähler veraltet (0=Anzeige aktiviert). Es gib aber keinen "Unterlaufschutz". Wenn also mal ein EndUpdate zuviel aufgerufen wurde, zählt dieser munter ins Minus und die 0 wird danach an unvorhergesehen Stellen erreicht. Leider kann man den UpdateCounter nicht direkt abfragen. Hier hilft der "Privat field hack":
Type THackTreeNodes = class(TPersistent) //"Privat Field Hack" private //anders kommen wir nicht an FUpDateCount heran FOwner: TCustomTreeView; FUpdateCount: Integer; FNodeCache: TNodeCache; FReading: Boolean; end; Function TreeViewUpdateCount(aTreeView: TTreeView):Integer; //UpdateCount lässt sich nur mit einem Hack auslesen Begin Result := THackTreeNodes(aTreeView.Items).FUpdateCount; end; Gruß PMM |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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