Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Klasse in einer TList wird immer überschrieben

  Alt 16. Mär 2007, 08:50
Wenn dein LCustomerTerminal von TList ist, kannst du keinen einfachen record übergeben. Denn du übergibst nur den Pointer an die stelle, wo der Record gerade ist. Wenn der Record in einer Klasse existiert, dann steht er immer an derselben Stelle, weswegen du immer den selben Pointer übergibst. Und je nachdem, was du gerade als letztes in den Record eingetragen hast, steht dies auch an allen Stellen in der Liste.

Mir fehlen jetzt deine RecordDeklarationen, aber ich versuchs mal:
Delphi-Quellcode:
procedure TSoftwarePaket.Add_Cust_Terminal(TMNA1: String; TMID, VSID, Syst, Knot: Integer; Schnittst, IP, Firmenbez, Firmware, TermProg, KartTyp, Zubehoer: String);
var PcustomerTerminal:^TcustmerTerminal;
begin
 with CustomerTerminal do
   begin
      TMNA := TMNA1;
      TEID := TEID;
      ...
      Zubehoer := Zubehoer;
   end;
   new(PcustomerTerminal);
   PCustomerterminal^:=Customerterminal;
   LCustomerTerminal.Add(PCustomerTerminal);
   ...
End;
Und beim Löschen, das Dispose nicht vergessen.
(Du hast ja den ganzen QuellCode, da kannst du dies bisschen besser anpassen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat