AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array einem anderen Array zuweisen

Offene Frage von "chruttli"
Ein Thema von chruttli · begonnen am 26. Okt 2003 · letzter Beitrag vom 26. Okt 2003
Antwort Antwort
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, 14: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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Array einem anderen Array zuweisen

  Alt 26. Okt 2003, 14:25
Moin Chruttli,

mach Dir einfach zusätzlich einen Typ

Delphi-Quellcode:
type
  TaAdresse = array of TAdresse;
und verwende den statt array of TAdresse.

BTW:
Es wäre ganz sinnvoll, wenn Du Dir noch ein Kürzel (Präfix) ausdenkst, mit dem Du eigene neue Typenbezeichner deklarierst (gilt vor allem bei Klassenbezeichnern), um die Gefahr von Kollisionen mit Typen, z.B. aus Komponenten die Du Dir installierst, zu vermeiden.

Bei den Indys wäre das z.B. id, so dass die Typen alle mit Tid anfangen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
chruttli

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

Re: Array einem anderen Array zuweisen

  Alt 26. Okt 2003, 15:08
Hmmmm... cool... es funktioniert...

Vielen Dank für dein Tipp

Aber noch eine kleine Frage...
Wieso funktioniert es jetzt??? Was ist genau der Unterschied, den es ausmacht
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz