Ich konstruierte KlassensystemWie kann ich eine Array-Eigenschaft deklarieren?
TTableSpec=class(Tobject)
private
FName : string;
FDescription : string;
FCan_add : Boolean;
FCan_edit : Boolean;
FCan_delete : Boolean;
FFields : array[1..100] of TFieldSpec;
public
property Name: String read FName;
property Description: String read FDescription;
property Can_add : Boolean read FCan_add;
property Can_edit : Boolean read FCan_edit;
property Can_delete : Boolean read FCan_delete;
property Fields : array read FFields;
end;
So in TableSpec Eigenschaft Fields wird die Liste der Felder sein (I TFieldSpec Array verwendet). Wie die Liste der Felder organisieren (mit oder ohne einen Array) wie als Folge der Zusammenstellung erhalte ich einen Fehler
[Error] Objects.pas(97): Identifier expected but 'ARRAY' found
[Error] Objects.pas(97): READ or WRITE clause expected, but identifier 'FFields' found
[Error] Objects.pas(98): Type expected but 'END' found
[Hint] Objects.pas(90): Private symbol 'FFields' declared but never used
[Fatal Error] FirstTask.dpr(5): Could not compile used unit 'Objects.pas'
Wenn Sie sicher sind, dass Sie genau 100 Felder benötigen, würde ich einen Typ wie 'Typ TFields = Array von TFieldSpec' erstellen und geben Sie dann die Felder Attribut als' FFields: TFields'. –
Benannte den Titel um und entfernte irrelevanten Code. Wir müssen nicht die gesamte Einheit sehen, um das Problem hier zu lokalisieren. –
Sind Sie sicher, dass Sie eine Eigenschaft mit einem Array-Typ oder eher einem Indexer möchten? – CodesInChaos