hab das eben mal in meinem Delphi getestet
Delphi-Quellcode:
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;
var
Form1: TForm1;
bla:TDCM;
implementation
{$R *.DFM}
procedure TDCM.setfeldA(value:integer);
begin
FfeldA := value; // ! hier tritt der Fehler auf !
// wenn aus dem Hauptprogramm ein Feld
// geschrieben werden soll
// Fehlermeldung folgt untenstehend
end;
function TDCM.getfeldA:integer;
begin
result:=FfeldA;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
bla:=TDCM.Create;
bla.setfelda(5);
showmessage(inttostr(bla.getfelda));
end;
also das geht bei mir relativ reibungslos.
Bei deinem Quelltext solltest du das const entweder in der Klasse mit in die Prozedur einbauen, oder unten bei der Definition weglassen.
was ich jetzt nicht weiß, ob
Zitat:
Delphi-Quellcode:
procedure TDCM.setfeldA(const value:integer);
begin
TDCMlist[i].FfeldA := value;
end;
funktioniert. Aber ich denke ehr nicht, aber die obige Prozedur sollte das ja übernehmen.
vllt solltest du um die letze Prozedur zu verwirklichen noch was an deiner Klasse TDCMlist machen, prozeduren-mässig.
hoffe das kannst du jetzt gebrauchen