Einzelnen Beitrag anzeigen

enigma

Registriert seit: 15. Jun 2008
47 Beiträge
 
#1

Wertezuweisung an Array der Oberklasse klappt separat, aber nicht als Prozedur

  Alt 11. Jul 2024, 12:49
Hallo Delphi Community,
es kann sein, dass ich euch für euch einfache Fragen stelle, aber ich freue mich auf eure Tipps 😉

Eine kurze Frage zur Zuweisung von statischen an dynamische Arrays, die als Parameter in der Prozedur als TObject-Arrays deklariert sind.
Delphi-Quellcode:
cArray: Array[0..3] of TUnterklasse;
dynArray: array of TOberklasse;
Ich möchte an dynArray das statische cArray übergeben.
Wird die Wertzuweisung direkt in der Aufrufmethode durchgeführt, klappt es:
Delphi-Quellcode:
  SetLength(dynArray, Length(cArray));
  for i := 0 to High(cArray) do
    dynArray [i] := cArray [i];
In folgender Prozedur wird für aiArray = cArray „Inkompatible Typen“ gemeldet, obwohl der Parameter als Open Array von TObject deklariert ist.
Delphi-Quellcode:
setArrayObj(cArray, dynArray);

procedure setArrayObj(aiArray: array of TObject; var aoArray: TObjectArray); //2024-07-11
var i: Integer;
begin
  SetLength(aoArray, Length(aiArray));
  for i := 0 to High(aiArray) do
    aoArray[i] := aiArray[i];
end;
Vielen Dank für eure Hinweise 😉
  Mit Zitat antworten Zitat