Code: Alles auswählen
Type
Tmyobject=class(Tcomponent)
arr : array of integer;
end;
Tmy2=class (TForm)
procedure irgendwas;
end;
....
implementation
var objarr:Array of Tmyobject;
procedure Tmy2.irgendwas;
var i:integer;
begin
Setlength(Tobjarr):=5;
For i:=0 to 4 do begin
Tobjarr[i]:=Tmyobject.Create(self);
// so und hier soll nun das setlength für Tobjarr[i].arr rein
//geht nicht: Setlength(objarr[i].arr , 3);
//geht auch nicht wird aber vorgeschlagen: objarr[i].setlength(arr, 3); (=2. Version)
// es geht:
with objarr[i] do
setlength(arr, 3);
end;
end;
So nun mit diesem with bin ich mir etwas unsicher. Vor allem weil die 2. Versionen nicht geht.
Mir kommts eher so vor wie wenn das mit with eher zufällig funktioniert, als dass es wirklich die richtige Lösung ist.
Nach dem motto kommt ein Setlength geflogen was nie da war ....
Von welcher Klasse könnte man denn ableiten, dass die 2. Version funktioniert?