Einzelnen Beitrag anzeigen

PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#5

Re: Treeview-Aktualisierung beim Befüllen deaktivieren!?

  Alt 18. Apr 2005, 16:32
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
  Mit Zitat antworten Zitat