Hallo zusammen,
ich stehe gerade vor einem seltsamen sprachlichen Problem, was ich nicht ganz nachvollziehen kann. Ich hoffe ihr könnt mir hier etwas Klarheit verschaffen. Und zwar geht es um folgenden Code:
Delphi-Quellcode:
type
TRttiPropertyInfoAttributeTypes = (
atMapping,
atVisible,
atNotNull
);
TRttiPropertyInfoAttributeTypesSet = Low(TRttiPropertyInfoAttributeTypes)..High(TRttiPropertyInfoAttributeTypes);
{ ... }
// folgendes lässt der Compiler zu
FAttributedProperties : array[TRttiPropertyInfoAttributeTypesSet] of TStringList;
// diese for-in-Schleife allerdings nicht
for AttributeType in TRttiPropertyInfoAttributeTypesSet do
begin
end;
Im Quelltext sind schon die wichtigen Stelle markiert. Ich verstehe nicht ganz, wieso ich diese Array-Definition machen darf, allerdings diese for-in-Schleife nicht funktioniert. Ich muss doch in beiden Fällen die gleiche Angabe machen, oder läuft das etwas anders?
Hier noch schnell die Fehlermeldung, die bei der for-in-Konstruktor erscheint:
Code:
[DCC Fehler] RttiPropertyInfo.pas(108): E2029 '(' erwartet, aber 'DO' gefunden
[DCC Fehler] RttiPropertyInfo.pas(109): E2066 Operator oder Semikolon fehlt
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)