Einzelnen Beitrag anzeigen

günni0
(Gast)

n/a Beiträge
 
#15

AW: VirtualStringTree und Klasseninstanzen - Node Data finden

  Alt 17. Apr 2018, 10:26
TiGü schriebe, dass es schlechtes Design wäre sich eine Referenz auf Node zu halten.

Ich habe eine Funktion die sieht so aus
Delphi-Quellcode:
function FindUserNodeByIndex(iIndex: Integer): PVirtualNode;
var
 i: Integer;
begin
 Result := nil;
 for i := 0 to aVSTDataClasses.Count - 1 do
  if aVSTDataClasses[i].Index = iIndex then
   begin
    Result := aVSTDataClasses[i].aNode;
    Break;
   end;
end;
Ist von sowas dann abzuraten?

Die markierte Zeile unten kann dann vermutlich auch weg
Delphi-Quellcode:
procedure TForm2.VSTInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
begin
 Node.SetData<TVSTData>(aVSTDataClasses[Node.Index]);
 aVSTDataClasses[Node.Index].aNode := Node; // ----------------------------------------------
end;
So würde ich dann beispielsweise den Text eines Properties ändern ohne die Node-Referenz
Delphi-Quellcode:
 aVSTDataClasses[5].sUserName := 'XXXXXXXXXXXXXX';

 VST.Invalidate; // InvalidateNode(aVSTDataClasses[5].aNode);
  Mit Zitat antworten Zitat