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;