Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
27. Nov 2013
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 TArrayHelper<Integer>.Delete(a, 1); und nun bräuchte ich nur einen generischen Array-Helper definieren und schon hängt der an dem gewünschten Array. (falls die Generics...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
27. Nov 2013
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:
var
i: Integer;
i := 5;
ShowMessage(i.ToString);
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
26. Nov 2013
Bei einem Record hast du quasi direkt den Zugriff auf den internen Speicher. und man könnte es direkt in einen Stream/Datei speichern. (außer wenn gewisse gemanagte oder gepointerte Typen drin vorkommen)
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
26. Nov 2013
PS: Seit Delphi 2006 kann man auch Methoden und Property in den Records verbauen.
type
TVarStr = record
private
function ReadPart(StartLength: Integer): AnsiString;
public
Value: string; // es gibt eine Funktion mit dem Namen "Str" ... siehe "Val"
property P1: AnsiString index 0106 read ReadPart;
property P2: AnsiString index 0706 read ReadPart;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
26. Nov 2013
string ist intern so aufgebaut:
array of AnsiChar;
// bzw.
record
Length: Byte{AnsiChar};
array of AnsiChar;
end;