Einzelnen Beitrag anzeigen

meggles
(Gast)

n/a Beiträge
 
#1

Wie kann ich einen Record "echt" kopieren...?

  Alt 12. Mär 2004, 09:49
Moin beisammen!
Mein Emailclient schafft mich noch ganz...
Eine Email wird durch folgenden Record beschrieben:

Delphi-Quellcode:
  TEmail = record
      id : integer;
      ordner_id : integer;
      von,
      replyto,
      an,
      cc,
      bcc : TIdEMailAddressList;
      betreff : string;
      Text : string;
      datum : TDateTime;
      prio : smallint;
      gelesen : Boolean;
      marke : boolean;
      beantwortet : boolean;
      eingang : boolean;
      schutz : boolean;
  end;
Die in der Listview angezeigten Emails enstprechend in einem Array:
  vEmailliste : array of TEmail; Wird eine Email doppelt angeklickt, wird das Detailfenster geöffnet. Dieses enthält, um mit der Email arbeiten zu können eine Variable ebenfalls vom Typ TEMail.
Delphi-Quellcode:
vfNeueEmail := TfEmail.Create(Application);
  vfNeueEmail.vEmail := vemailliste[listviewEmails.itemindex];
Und nun zum Problem: Beim Öffnen, Schließen und erneuten Öffnen derselben Mail bekomme ich eine Zugriffsverletzung. Ich vermute auch, zu wissen, wieso: nach der Zuweisung verweist vfNeueEmail.vEmail auf den selben Wert wie vemailliste[listviewEmails.itemindex]. Schließe ich die Detailansicht, wird auch vfNeueEmail.vEmail freigegeben - und somit ja der Wert, auf den vemailliste[listviewEmails.itemindex] verweist. Erneutes Öffnen der Email bedeutet also einen Zugriff auf einen Arraywert, den es nicht mehr gibt. Wie also kann ich vEmail eine "echte Kopie" geben?

Danke im Voraus - schönen stressfreien Tag

Simon
  Mit Zitat antworten Zitat