Forum: Programmieren allgemein
by Codehunter,
19. Apr 2018
Im Wesentlichen packe ich die Nutzdaten als Payload gleich mit in den Record. Der Record wird mit New() und Dispose() bzw. Initialize() und Finalize() erstellt und zerstört. Seit man Records auch noch Prozeduren anfügen kann, implementiere ich die ganze Verknüpfungslogik direkt im Record. Wenn man es richtig anstellt, stupst man nur das Rootelement an und das Ganze schreibt sich z.B. selbst in...
Forum: Programmieren allgemein
by Codehunter,
19. Apr 2018
Wie schon gesagt, das ist immer fallspezifisch. Ich wüsste keine sinnvolle Methode, hierarchische Strukturen in einem Array abzubilden ohne genau das künstlich zu erzeugen, was man eigentlich dadurch vermeiden will: Wildes Gespringe im Speicher. Obendrein hast du bei Arrays nur sehr starre Strukturen. Willst da mittendrin ein Element einfügen, verschiebst du den halben Ozean um einen Eimer Wasser...
Forum: Programmieren allgemein
by Codehunter,
19. Apr 2018
Was genau willst denn wissen? Die Verkettung als solches ist ja einfach (Pointer-Element im Record, z.B. "ParentNode", "FirstChild", "NextSibling" - geht also über die Implementierung in TVirtualNode hinaus), die Verwendung von einmal reserviertem Speicher in mehreren VirtualTrees ist dann fallspezifisch. Beim oben erwähnten Projekt FMC sind die einzelnen Radiostationen eigentlich Childnodes im...
Forum: Programmieren allgemein
by Codehunter,
19. Apr 2018
Also ich arbeite recht oft mit verketteten Listen, wobei ich das eher verkettete Zeiger nennen würde. Das kommt in der Tat duch VirtualTreeView. Dort kann man, wenn man die Funktionsweise erst einmal kapiert hat, Baumstrukturen mit einer Million Knoten in Sekundenbruchteilen aufbauen. Mach das mal mit einem TTreeView 8-)
Aber auch die nachgelagerten Daten verkette ich ganz gerne über Zeiger...