Einzelnen Beitrag anzeigen

chruttli

Registriert seit: 20. Aug 2003
Ort: Oberdorf, CH
9 Beiträge
 
Delphi 7 Enterprise
 
#1

Array einem anderen Array zuweisen

  Alt 26. Okt 2003, 13:03
Hi @all

Ich habe folgendes Problem:

Ich übergebe mittels einer Funktion ein Array und möchte nun dieses Arry in einer lokalen Variable ablegen.
Leider erscheint bei mir immer die Fehlermeldung "Incompatible Types" *sniff*

Hier der relevante Code:

Der Adressen-Record (nur wegen der Vollständigkeit aufgeführt)
Delphi-Quellcode:
Tadresse = record
  id : integer;
  veranstalter : Tveranstalter;
  firma : string;
  name : string;
  vorname : string;
  strasse : string;
  ort : Tort;
  anrede : Tanrede;
  briefanrede : Tanrede;
  telefon : string;
  telefax : string;
  email : string;
  bemerkungen : string;
  merker : string;
  l_kontakt : TDateTime;
  ins_rg_adresse : boolean;
  mit_rg_adresse : boolean;
  probeabzug_adresse : boolean;
  erfassungsdatum : TDateTime;
  erfasser : Tuser;
  mutationsdatum : TDateTime;
  mutierer : Tuser;
end;
der Filter-Record
Delphi-Quellcode:
type
  TaddressFilter = record
    AddressArray : array of Tadresse;
    activeAddress : integer;
  end;
das Formular (mit der Funktion)
Delphi-Quellcode:
type
  TfrmAdressenFilter = class(TForm)
  private
    adressen : array of Tadresse;
  public
    function formularShow(all_adressen : array of Tadresse) : TaddressFilter;
  end;
die Funktion (mit dem eingentlichen Problem
Delphi-Quellcode:
function TfrmAdressenFilter.formularShow(all_adressen : array of Tadresse) : TaddressFilter;
begin
  SetLength(adressen, length(all_adressen));

  // Array übertragen...

  // Diese Lösung funktionierte, ist aber etwas langsam, aber eben sie funktionierte
  {
  for I := 0 to length(all_adressen)-1 do    // Iterate
    begin
      adressen[I] := all_adressen[I]
    end;    // for
  }


  // Mein neuer Lösungsansatz (Delphi-Hilfe macht es auch so)... wäre schneller, bringt aber eben
  // die Fehlermeldung "incompatible types"
  adressen := Copy(all_adressen);
end;
Was mache ich falsch???
  Mit Zitat antworten Zitat