Hallo,
ich kann jetzt genau sagen,
wo der Fehler in meiner Objectliste auftritt,
weiss aber nicht genau, was ich falsch gemacht habe.
Schaut mal in mein Codefragment:
Delphi-Quellcode:
...
interface
...
type
TDCM = class(TObject)
private
FfeldA:integer;
FfeldB:single;
FfeldC:string;
function getfeldA:integer;
procedure setfeldA(value:integer);
function getfeldB:single;
procedure setfeldB(value):single;
function getfeldC:string;
procedure setfeldC(value:string);
published
property feldA:integer read getfeldA write setfeldA;
property feldB:single read getfeldB write setfeldB;
property feldC:string read getfeldC write setfeldC;
end;
TDCMlist = array of TDCM;
...
implementation
...
...
procedure TDCM.setfeldA(const value:integer);
begin
FfeldA := value; // ! hier tritt der Fehler auf !
// wenn aus dem Hauptprogramm ein Feld
// geschrieben werden soll
// Fehlermeldung folgt untenstehend
end;
...
...
Fehlermeldung des Debuggers:
Im Project P_DCM.exe ist eine
Exception der Klasse EAccessViolation mit der Meldung Zugriffsverletzung bei Adresse xxxxxxx in Modul P_DCM.exe 'Schreiben von Adresse yyyyyy' aufgetreten.
Ausgelöst wird der Fehler durch den Aufruf aus dem Hauptprogramm
DCMlist[i].feldA:=123;
mit i:=1,2,3...
Ich vermute, irgendwie fehlt dem ein Listenindex des beherbergenden Arrays TDCMlist in der obigen
procedure TDCM.setfeldA(const value:integer);
derart
Delphi-Quellcode:
procedure TDCM.setfeldA(const value:integer);
begin
TDCMlist[i].FfeldA := value;
end;
Da ich mit solchen Strukturen noch nie gearbeitet habe brauche ich Eure Hilfe.
Was habe ich falsch gemacht?
Danke und Grüße
EB