VirtualStringTree node neu zeichnen (Invalidatenode ohne Fokus)

Rund um die LCL und andere Komponenten
Antworten
Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

VirtualStringTree node neu zeichnen (Invalidatenode ohne Fokus)

Beitrag von Nimral »

Hi,

ich update einen VirtualStringTree aus dem Hintergrund (über Netzwerk). Der Code:

Code: Alles auswählen

procedure TStudyFrame.onPatientUpdated(Sender: TObject; idx: integer);

var
  node: PVirtualNode;

begin
  node := GetNodeByIndex(VirtualStringTreePatients,idx);
  if assigned(node) then
     VirtualStringTreePatients.InvalidateNode(node);
end;
Das Signal bringt dann den VirtualStringTree dazu, später GetText des Nodes aufzurufen, und dann bekomme ich tatsächlich die neuen Daten angezeigt, aber das funktioniert augenscheinlich nur, wenn der VirtualStringTree das aktive Control auf dem Form ist. Sonst wird der Update nachgeholt, sobald der VirtualStringTree angeklickt wird.

Kann ich den Node (und nur den Node ... ich möchte nicht wie bei Repaint den ganzen Tree neu laden und zeichnen!) per Befehl irgendwie sofort neu zeichnen lassen?

Thnx, Armin.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: VirtualStringTree node neu zeichnen (Invalidatenode ohne Fokus)

Beitrag von six1 »

Probiere mal bitte "RepaintNode".
So habe ich das eingesetzt und so funktioniert es bei mir.
Gruß, Michael

Antworten