TComponent-Zweig

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Objekte, Komponenten und Steuerelemente

Der TComponent-Zweig enthält Klassen, die von TComponent, nicht aber von TControl abstammen. Bei den Objekten in diesem Zweig handelt es sich um Komponenten, die Sie zur Entwurfszeit auf Formularen bearbeiten können, die zur Laufzeit aber für den Anwender nicht sichtbar sind. Es handelt sich dabei um persistente Objekte, die Folgendes können:

  • Erscheinen in der Tool-Palette und können im Formular-Designer geändert werden.
  • Andere Komponenten besitzen und verwalten.
  • Sich selbst laden und speichern.

Verschiedene Methoden in TComponent bestimmen, wie sich Komponenten während der Entwurfszeit verhalten und welche Informationen zusammen mit einer Komponente gespeichert werden. Das Streaming (das Speichern und Laden von Formulardateien, die Informationen über die Eigenschaftswerte der Objekte eines Formulars enthalten) wird in diesem Zweig eingeführt. Eigenschaften sind persistent, wenn sie published sind, und published-Eigenschaften werden automatisch gestreamt.

Der TComponent-Zweig führt außerdem das Konzept des Eigentums ein, das sich durch die gesamte Komponentenbibliothek fortpflanzt. Zwei Eigenschaften unterstützen dieses Konzept des Eigentums: Owner und Components. Jede Komponente hat die Eigenschaft Owner, die auf eine andere Komponente verweist, die ihr Eigentümer ist. Eine Komponente kann Eigentümer anderer Komponenten sein. In diesem Fall werden alle Komponenten, deren Eigentümer die Komponente ist, in ihrer Eigenschaft Components aufgelistet.

Jedem Komponentenkonstruktor wird ein Parameter übergeben, der den Eigentümer der neuen Komponente bezeichnet. Falls der übergebene Eigentümer existiert, wird die neue Komponente der Komponentenliste in der Eigenschaft Components des Eigentümers hinzugefügt. Neben der Verwendung der Komponentenliste als Verweis auf Komponenten, deren Eigentümer eine Komponente ist, erlaubt diese Eigenschaft auch das automatische Freigeben dieser Komponenten. Solange die Komponente einen Eigentümer hat, wird sie freigegeben, sobald der Eigentümer freigegeben wird. Weil beispielsweise TForm von TComponent abstammt, werden mit der Freigabe eines Formulars auch alle Komponenten und der diesen belegte Speicher freigegeben, die auf dem Formular angelegt wurden. (vorausgesetzt natürlich, dass die Komponenten entsprechend programmierte Destruktoren besitzen, werden sie damit korrekt freigegeben.)

Falls eine Eigenschaft zu einem Objekt vom Typ TComponent oder einem davon abgeleiteten Typ gehört, erstellt das Streaming-System eine Instanz davon, wenn es sie liest. Ist der Eigenschaftyp von TPersistent, aber nicht von TComponent abgeleitet, dann verwendet das Streaming-System die vorhandene Instanz, die durch die Eigenschaft verfügbar ist, und liest die Eigenschaftswerte dieser Instanz.

Der TComponent-Zweig enthält unter anderem die folgenden Klassen:

  • Die Klasse TActionList, die eine Liste von Aktionen verwaltet, die mit Komponenten und Steuerelementen, z.B. Menüeinträgen und Schaltflächen, verwendet werden kann.
  • Die Klasse TMainMenu, die eine Menüleiste und die entsprechenden Dropdown-Menüs für ein Formular bereitstellt.
  • Die Klassen TOpenDialog, TSaveDialog, TFontDialog, TFindDialog, TColorDialog usw., die häufig verwendete Dialogfelder bereitstellen.
  • Die Klasse TScreen, die verfolgt, welche Formulare und Datenmodule von der Anwendung instantiiert wurden, welches das aktive Formular ist und welches Steuerelement auf diesem Formular aktiv ist, welche Fenstergröße und Bildschirmauflösung gewählt wurde und welche Cursor und Schriften für die Anwendung zur Verfügung stehen.

Komponenten, die keine visuelle Oberfläche benötigen, können direkt von TComponent abgeleitet werden. Um ein Werkzeug wie beispielsweise ein TTimer-Objekt zu erstellen, können Sie eine Ableitung von TComponent erstellen. Dieser Komponententyp befindet sich in der Tool-Palette, führt aber interne Funktionen aus, auf die im Code zugegriffen wird und die zur Laufzeit nicht auf der Benutzeroberfläche erscheinen.

Nähere Informationen über die Zuweisung von Werten zu Eigenschaften, den Aufruf von Methoden und das Verwenden von Ereignissen mit Komponenten finden Sie unter Mit Komponenten arbeiten.

Siehe auch