__automated

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Schlüsselwort-Erweiterungen

Syntax

_automated: <declarations>

Beschreibung

Die Regeln für die Sichtbarkeit von automated-Elementen sind identisch mit denen der public-Elemente. Der einzige Unterschied zwischen automated- und public-Elementen ist, dass OLE-Automatisierungsinformation für Elementfunktionen und Eigenschaften generiert wird, die in automated-Abschnitten deklariert werden. Diese OLE-Automatisierungs-Typinformation macht es möglich, OLE-Automatisierungsserver zu erzeugen.

  • Für eine Elementfunktion müssen die Typen aller Parameter der Elementfunktion und alle Funktionsergebnisse (wenn vorhanden) automatisierbar sein. Ähnlich müssen für eine Eigenschaft der Eigenschaftstyp und die Typen einer Array-Eigenschaftsparameter automatisierbar sein. Die automatisierbaren Typen sind: Currency, OleVariant, DelphiInterface, double, int, float, short, String, TDateTime, Variant und unsigned short. Die Deklaration von Elementfunktionen oder Eigenschaften in __automated-Abschnitten, die nicht-automatisierbar sind, führen zu einen Compilierzeitfehler.
  • Deklarationen von Elementfunktionen müssen die Aufrufkonvention __fastcall verwenden.
  • Elementfunktionen können virtual sein.
  • Elementfunktionen können __dispid(konstanter int ausdruck) nach der schließenden Klammer der Parameterliste hinzufügen.
  • Eigenschaftsdeklarationen können nur Zugriffsspezifizierer (__dispid, read und write) enthalten. Andere Spezifizierer (index, stored, default, nodefault) sind nicht erlaubt.
  • Eigenschafts-Zugriffsspezifizierer müssen einen Elementfunktionsbezeichner enthalten. Datenelement-Bezeichner sind nicht erlaubt.
  • Eigenschaftzugriffs-Elementfunktionen müssen die Aufrufkonvention __fastcall verwenden.
  • Eigenschaftsdeklarationen die den Eigenschaftstyp nicht enthalten, sind nicht erlaubt.

Beispiel

class Test : public System::TObject
{
__automated:
  int __fastcall getI(void) __dispid(4);
  __property int I = {read=getI, dispid=3};
};

Siehe auch