Das sind "Attribute".
Such einfach mal in der
Unit RTTI nach "Attribute" oder schau dich beim DataSnap um (aktuelles Beispiel in der Nutzung)
Auch wenn ich dieses vollkommen krank finde, denn wer sollte schon auf die blöde Idee kommen Gruppen und Passwörter Hardgecodes im Queltext anzulegen, wo doch alle mehr mit dynamischen Strukturen arbeitet, wie z.B. Datenbanken. Oder kommt das wirklich so cool, wenn man die Anwendung neu kompilieren soll, nur um eine neue Rolle anzulegen oder ein Passwort zu ändern?
http://docwiki.embarcadero.com/RADSt..._Autorisierung
Dort kann man also zusätzliche Infos zu Funktionen/Prozeduren, Klassen/Typen, Methoden, Propertys und Variablen hinterlegen, welche sich dann via
RTTI auslesen lassen.
Das wurde auch an ein/zwei Stellen in den Delphi-Quellcodes angewendet. (aber ich weiß nicht mehr wo ich das gesehn hatte und Aufgrund der Syntax läßt es sich nicht grade leicht suchen)
Delphi-Quellcode:
type
TMyAttribute = class(TCustomAttribute)
constructor Create(S: string);
end;
[TMyAttribute('7')]
TMySet = set of TMyEnum;
['direkt als Text']
TMyEnum = type TMyEnum;
[TMyAttribute('1')]
TMyClass = class
[TMyAttribute('8')]
FMyField: Integer;
[TMyAttribute('2')]
[TMyAttribute('3')]
procedure MyMethod2;
[TMyAttribute('2'), TMyAttribute('3')]
function MyMethod: Boolean;
[TMyAttribute('4')]
property MyProperty: Boolean read MyMethod;
end;
var
[TMyAttribute('5')]
MyVar: Integer;
[TMyAttribute('6')]
procedure MyProcdure;
Und nun kann man sich die Klassen und eventuelle Parameter via
RTTI auslesen/verarbeiten.