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.