Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#10

AW: Dynamisches Array als Klasse

  Alt 23. Jan 2014, 12:13
Die Aufspaltung in mehrere Integertypen halte ich insofern für entbehlich, als daß die Größenbeschränkung der Integervariablen, wie überhaupt alle Beschränkungen des Computers i.d.R. eher restriktiv und hinderlich sind. Der Pointer agiert wie der größte Integertyp (Integer, der bis 2^31-1 ohne Vorzeichenumschaltung funktioniert) und umfaßt damit gewissermaßen alle Integertypen.

Solang man bei Arrayelementen mit gleichem bzw. konstantem Speicherbedarf bleibt, funktioniert die Unit bestens. Auch ein Record of Integer (benötige ich in meinem Sortierkino) und der Datentyp string[255] funktionieren einwandfrei. Nicht hinbekommen habe ich bisher die Implementierung der dynamischen Datenstruktur "string", aber daran werde ich mich nicht festbeißen.

Erstellt man typabhängig eigene Klassen (dabei kann man sich die Klassenableitung zunutze machen) und man definiert nur die eine typabhängige "property" als "default", entfällt die Adressierung ".Items" der einzelnen Arrayelemente, außerdem entfällt der ^-Operator. Diese Datenstruktur, auch wenn sie auf TList basiert, ist tatsächlich wie ein (dynamisches!) Array benutzbar.

Was Delphi 3 recht ist, ist Delphi 2 billig. Im Anhang ist mein Delphi-2-Projekt, das die Verwendung der verschiedenen Datentypen demonstrieren soll.

Es wundert mich, daß bisher noch keine Mosereinwände á la "Was soll das, Delphi kann das ab Version 4.0 von Hause aus" kamen (Edit: Doch, himitsu äußerte sich). Mich interessierte das, und delphi2004 beschäftigte sich auf meine vorsichtige Anfrage noch einmal damit. Nunmehr funktioniert es für eindimensionale Arrays (mit der genannten Einschränkung) perfekt, und dafür danke ich ihm auch an dieser Stelle noch einmal herzlich! Nicht zuletzt lernt man ja auch bei solchen Experimentalprojekten hinzu.
Angehängte Dateien
Dateityp: zip DynArrays.zip (96,4 KB, 9x aufgerufen)

Geändert von Delphi-Laie (23. Jan 2014 um 21:00 Uhr)
  Mit Zitat antworten Zitat