Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Rätselhaftes Konstrukt in Unit Dialogs

  Alt 29. Jan 2012, 23:56
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Jan 2012 um 00:15 Uhr)
  Mit Zitat antworten Zitat