Einzelnen Beitrag anzeigen

günni0
(Gast)

n/a Beiträge
 
#5

AW: VirtualStringTree und Klasseninstanzen - Node Data finden

  Alt 17. Apr 2018, 09:53
Delphi-Quellcode:
 iUserNameID := FindUserNameIDByName('Peter Wurst'); // // Helferfunktion, um den Index der Klasseninstanz für den Nutzer zu finden (um doppelten Code zu vermeiden)
 if iUserNameID > -1 then
  begin
   _UserDataClasses[iUserNameID].sUserName := 'Peter Lustig';

   _VST.InvalidateNode(_UserDataClasses[iUserNameID ].aNode); // ?
  end;
Danke für den Hinweis. Wie lade ich im obigen Beispiel denn dann einen Node neu, nachdem ich ihn geändert habe? Ohne InvalidateNode müsste ich erst die Maus über das VST bewegen, damit es neugezeichnet wird. Oder zeichnet man einfach das ganze VST mit _VST.Invalidate; neu?

Und das hier funktioniert dann ja auch nicht mehr
Delphi-Quellcode:
function FindUserIDByIndex(iIndex: Integer): PVirtualNode;
var
 i: Integer;
begin
 Result := nil;
 for i := 0 to _UserDataClasses.Count - 1 do
  if _UserDataClasses[i].Index = iIndex then
   begin
    Result := _UserDataClasses[i].aNode; // <=
    Break;
   end;
 // Result := _VST.GetFirst(True);
 // while Assigned(Result) and (_VST.AbsoluteIndex(Result) <> Cardinal(iIndex)) do
 // Result := _VST.GetNext(Result, True);
end;

Geändert von günni0 (17. Apr 2018 um 09:55 Uhr)
  Mit Zitat antworten Zitat