Einzelnen Beitrag anzeigen

Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Wie mache ich ein dyn. Array eines Objects

  Alt 28. Jan 2009, 10:34
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
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat