Zitat von
heiopei:
noch zu der case-variante:
hab ich mir auch schon überlegt, aber da kann ich ja nich mit indizehs
auf die einzelnen typen zugreifen.
weil: array mit variablen vom selben typ: dings: array [1..4] of Shortstring;
ich möchte jetzt allerdings auch per indizeh auf die einzelnen felder zugreifen können, was mit dem case record ja ihmo nicht mögl. ist!
Warum sollte das nicht gehen?
Um beim Beispiel von oben zu bleiben:
Delphi-Quellcode:
// Zugriff:
MyArray[0].EinInt := 10;
MyArray[0].RecType := tInteger;
MyArray[1].EinChar := 'x';
MyArray[1].RecType := tChar;
.
.
Wenn du es mit einem Array of Pointer machst, dann arbeitest du völlig ohne Netz und doppeltem Boden - d.h. all die Typsicherheit die dir Delphi bietet, mit all dem Komfort drumherum schießt du in den Wind. (Die o.g. Recordvariante ist diesbezüglich im Übrigen auch nicht der Weisheit letzter Schluss
.)
Wenn du es aber unbedingt so willst:
Delphi-Quellcode:
var
MyArray: array[0..N] of Pointer;
i: Integer;
x: Integer;
begin
MyArray[0] := @i;
x := MyArray[0]^; // => x=i
end;
Aber das ist unsicher, unschön da schwer lesbar, und eher unsauber. Mit einer vernünftigen Liste kommst du auf Dauer sicher besser weg.
Zitat von
heiopei:
2. nicht für strukturierte typen - aber das wäre dass, was ich brauche
Was meinst du damit? File of XXX, oder Records, oder Klassen?
Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel