Hallo
Ich schon wieder mit einer Frage zum VST.
Es gibt bei den Virtual Nodes einen Byte-wert "Dummy",
kann ich diesen Wert für mich selber nutzen, so als eine art "Tag".
Ich brauche für ein VST unterschiedliche Datensätze, kommt immer auf den Node an.
Allerdings kann ich jetzt auch nicht einfach sagen, Nodes mit Level 0 haben Datanklasse A und Level 1 bekommt Datenklasse B,
da die Nodes in allen eben liegen können.
hubble
VST Node.Dummy
Re: VST Node.Dummy
Dummy scheint anscheinend ein Füllwert zu sein, um die Nodedatenrecords an der 32-bit Grenze auszurichten. Aber verlassen würde ich mich nicht darauf, dem Entwickler der Komponente kann jederzeit etwas einfallen, dass Dummy nicht mehr zur Verfügung steht.
Du nennst deine Daten in der Beschreibung oben eh schon "Datenklasse A" und "Datenklasse B". Warum steckst du sie dann nicht als class(TObject) in den Nodedatenrecord? Mit Hilfe des Operators "is" kannst du dann jederzeit feststellen, ob der Node Daten der Klasse A oder B enthält. Wichtig ist nur, dass der Datenrecord immer gleich groß ist, und das ist bei TObject der Fall (Größe eines Pointers).
Du nennst deine Daten in der Beschreibung oben eh schon "Datenklasse A" und "Datenklasse B". Warum steckst du sie dann nicht als class(TObject) in den Nodedatenrecord? Mit Hilfe des Operators "is" kannst du dann jederzeit feststellen, ob der Node Daten der Klasse A oder B enthält. Wichtig ist nur, dass der Datenrecord immer gleich groß ist, und das ist bei TObject der Fall (Größe eines Pointers).
Re: VST Node.Dummy
Danke für die Antwort.
Mich hat auch diese Erklärung "Füllwert" gestört.
Das Datenrecord wird wohl sowieso verwendet werden müssen, da ja die Datenklassen unterschiedlich "groß" sind, und dann gibts Probleme mit der NodeDataSize.
Ich überlege auch die Datenklassen separat in einer TObjectlist zu speichern und dann nur noch mittels des AbsolutIndex des Nodes darauf zugreife.
Mich hat auch diese Erklärung "Füllwert" gestört.
Das Datenrecord wird wohl sowieso verwendet werden müssen, da ja die Datenklassen unterschiedlich "groß" sind, und dann gibts Probleme mit der NodeDataSize.
Ich überlege auch die Datenklassen separat in einer TObjectlist zu speichern und dann nur noch mittels des AbsolutIndex des Nodes darauf zugreife.
Re: VST Node.Dummy
Wieso denn? TObject hat die Größe eines Pointers. Wieviel du in das Objekt reinpackst, spielt hier keine Rolle, denn im Node steht der Pointer, nicht das, worauf der Pointer zeigthubblec4 hat geschrieben:Das Datenrecord wird wohl sowieso verwendet werden müssen, da ja die Datenklassen unterschiedlich "groß" sind, und dann gibts Probleme mit der NodeDataSize.
Code: Alles auswählen
type
TDataA = class
Name: String;
Geburtsdatum: TDate;
Ort: String;
end;
TDataB = class
Firma: String;
Umsatz: Currency;
end;
type
TNodeData = record
Data: TObject; // wird einmal als TDataA, einmal als TDataB erzeugt
end;
// ich meine, es müsste auch so gehen:
//TNodeData = class;
Re: VST Node.Dummy
Ja so in der art müsste es dann aussehen. War mir nur nicht ganz sicher wegen der NodeDataSize, aber gut zu wissen das der Pointer als "Größe" genommen wird.
Da nun aber Daten, über mehere VST's verteilt angezeigt/bereitgestellt(änderbar) werden müssen(Auswahl des Nodes im Haupt-VST), denke ich könnte es besser sein eine unabhängige Datenklasse zu haben die nicht an ein VST (Node-Struktur) gebunden ist.
Das habe ich auch so umgesetzt, für einfachere VST's. Hatte mich dazu bissl belesen und fand das man als NodeData auch gleich eine Klasse verwenden kann, also kein Record mehr. Funktioniert auch wunderbar.// ich meine, es müsste auch so gehen:
//TNodeData = class;
Da nun aber Daten, über mehere VST's verteilt angezeigt/bereitgestellt(änderbar) werden müssen(Auswahl des Nodes im Haupt-VST), denke ich könnte es besser sein eine unabhängige Datenklasse zu haben die nicht an ein VST (Node-Struktur) gebunden ist.