Moin,
ja und zwar wollt ich mal fragen u.a. auch anlässlich der
https://www.delphipraxis.net/213266-...-new-post.html
an diser Stelle natürlich auch
mein Glückwunsch!
und
weil es mich immerschonmal interessiert hat:
Warum hat man bis vor 10 Jahren unter Delphi keine Liste für Integer gebraucht, gewünscht (nicht gekonnt?) bzw. wo hat man die Integer gelassen?
Nur in einem Array?
oder TFrickelliste?
Warum gab es zwar eine TStringlist, aber kein bequemes Pendant für immerhin die Integer (wenn auch Flieskommazahlen sicherlich schwerer zu speichern sind).
Gut, klar mit Tlist und Pointern kann ich mir da was zusammenmatschen. Muß aber selber vor dem PointerZuweisen dafür Speicher reservieren, adde das an die Liste, rufe es wieder ab und muß anschließend erst den Speicher für den Pointer wieder mit Dispose freigeben, bevor ich es von der Liste löschen kann (also den Pointer).
Das ist/war doch undurchsichtiges, fehlerträchtiges Gefrickel. (s.u.)
OKOK, an eine Tlist kann ich Daten aller Formate und Typen, sowie beliebiger Länge dranklatschen.
und - OK, ja, seit 2011 oder wann kann ich mir auch eine mit
List: TList<Integer>;
durch Generische Collections basteln.
Aber wie um Himmelswillen hat man das früher gemacht??
- und warum hat man sich das vor 2011 nicht einfacher gemacht???!!
1980 Nen visuellen Editor, Compiler und Linker in 80 kb (!!!) gepresst, später dann
die C++-Builder-
IDE mittels Delphi erstellt u. compiliert, damit man's einfacher hatte,
in den 20 Jahren aber keine Zeit für ne Titnegerlist gehabt???!
Boarland .... embargodero ... Menschenskinder ...
Delphi-Quellcode:
function bla(a: String);
var
tl : Tlist;
p : ^Integer;
begin
tl := Tlist.create;
new(p);
p^ := 2; // Zahl 2 zuweisen
tl.add( p);
p := tl[0];
self.Caption := inttostr((p^)); // z.B. Ausgabe / Bsp.-Weiterverarbeitung
dispose(p);
tl.Delete(0);
tl.free;
end; // Function
Kann sich da noch jemand dran erinnern, warum man das nicht eher gemacht hat?
OK, bei Integern bin ich da nicht auf Länge von 2147483648 oder Cardinal beschränkt.
mein Workaround war immer:
Delphi-Quellcode:
var ts: tStringlist;
begin
ts := tStringlist.Create;
ts.add(inttostr(2));
ts.add(inttostr(5));
ts.add(inttostr(7));
form1.zahl := strtoint(ts[1]) * 3); // gleich Sechs (als Zahl weiterverarbeiten)
ts.delete(ts.count-2);// die 5; od. einfach gleich alle drei löschen:
ts.delete(0);ts.delete(0);ts.delete(0); // optional
ts.free;
Ok, geht vielleicht auch als langjähriger Programmierer sicher eleganter)
Aber was hätte ich mich über eine einfache Lösung für Integer gefreut ...
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S +
Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-