![]() |
AW: Variante Records, Strings und 32 bzw. 64 Bit
Auch wenns jetzt eigentlich in eine andere Richtung geht: Über das Thema Helper-Konstrukte bin ich gestern das erste Mal gestolpert in Form von TGuidHelper. Dann gabs aber Compilergemecker dass man den nicht direkt verwenden könnte.
Meister Google hat aber zum Thema "Delphi Record Helper" gestern Abend nur Bullshit ausgespuckt. Heute früh hier im Büro liefert er mit dem selben Suchbegriff aber gleich das richtige Emba-Wiki. Schon seltsam dieser Gockel und echt launisch ist er geworden ;-) |
AW: Variante Records, Strings und 32 bzw. 64 Bit
In ganz neuen Delphis kann man jetzt scheinbar auch Helper direkt an die generischen Typen (Integer, String, Variant, ...) hängen.
Ich glaub in XE5 hatte ist jetzt sowas gesehn:
Delphi-Quellcode:
var
i: Integer; i := 5; ShowMessage(i.ToString); |
AW: Variante Records, Strings und 32 bzw. 64 Bit
Lach, das ist ja bald wie in JavaScript :-D Wann baut Emba die strenge Typisierung dann ganz aus? ;-)
|
AW: Variante Records, Strings und 32 bzw. 64 Bit
Im Prinzip hatte ich mir diese Technik schon so gewünscht.
Also daß man Record-Helper auch an normale Typen bauen kann. Jetzt kann ich meine Array-Helper-Klasse direkt an die Arrays hängen. Bis jetzt ist die ja noch extern
Delphi-Quellcode:
und nun bräuchte ich nur einen generischen Array-Helper definieren und schon hängt der an dem gewünschten Array. (falls die Generics auch bei HelperKlassen nutzbar sind).
TArrayHelper<Integer>.Delete(a, 1);
Delphi-Quellcode:
Ja, das könnte man auch mit Objekten erreichen, wobei man das Objekt auch noch in ein Interface packen muß, um von der automatischen Speicherbehandlung profitieren zu können.
var
a: array of Integer; // oder TArray<Integer> a.Length := 13; a[1] := 123; a.Insert(4, 456); a.Delete(1); // um die [1] rauszubekommen müßte man erstmal alle dahinterliegenden Einträge um 1 vorkopieren und dann SetLength(a, Length(a) - 1) machen Jetzt fehlt nur noch, daß man endlich mal die defekte Referenz-Behandlung bei den dynamischen Arrays repariert. (bei Strings funktioniert die ja auch) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz