Grundlegendes zu Besitzern und Eltern in Delphi-Anwendungen

Jedes Mal, wenn Sie ein Bedienfeld in ein Formular und eine Schaltfläche in diesem Bedienfeld einfügen, wird eine "unsichtbare" Verbindung hergestellt. Die Form wird zum Inhaber der Schaltfläche und das Bedienfeld wird auf die Schaltfläche eingestellt Elternteil.

Jede Delphi-Komponente hat eine Owner-Eigenschaft. Der Eigentümer sorgt dafür, dass die im Besitz befindlichen Komponenten freigegeben werden, wenn sie freigegeben werden.

Ähnlich, aber unterschiedlich, gibt die Parent-Eigenschaft die Komponente an, die die "child" -Komponente enthält.

Elternteil

Übergeordnet bezieht sich auf die Komponente, in der sich eine andere Komponente befindet, z. B. TForm, TGroupBox oder ein TPanel. Wenn ein Steuerelement (übergeordnetes Steuerelement) andere Steuerelemente enthält, sind die enthaltenen Steuerelemente untergeordnete Steuerelemente des übergeordneten Steuerelements.

Übergeordnet bestimmt, wie die Komponente angezeigt wird. Beispielsweise beziehen sich die Eigenschaften Left und Top alle auf das übergeordnete Element.

Die Parent-Eigenschaft kann zur Laufzeit zugewiesen und geändert werden.

Nicht alle Komponenten haben das übergeordnete Element. Viele Formulare haben keine Eltern. Bei Formularen, die direkt auf dem Windows-Desktop angezeigt werden, ist Parent beispielsweise auf Null festgelegt. Eine Komponente HasParent Methode gibt einen booleschen Wert zurück, der angibt, ob der Komponente ein übergeordnetes Element zugewiesen wurde.

Wir verwenden die Parent-Eigenschaft, um das übergeordnete Element eines Steuerelements abzurufen oder festzulegen. Platzieren Sie beispielsweise zwei Bereiche (Panel1, Panel2) in einem Formular und platzieren Sie eine Schaltfläche (Button1) im ersten Bereich (Panel1). Dadurch wird die Parent-Eigenschaft von Button auf Panel1 gesetzt.

 Button1.Parent: = Panel2; 

Wenn Sie den obigen Code in das OnClick-Ereignis für das zweite Panel einfügen und auf Panel2 klicken, springt die Schaltfläche von Panel1 zu Panel2: Panel1 ist nicht mehr das übergeordnete Element für die Schaltfläche.

Wenn Sie zur Laufzeit einen TButton erstellen möchten, ist es wichtig, dass Sie ein übergeordnetes Element zuweisen - das Steuerelement, das die Schaltfläche enthält. Damit eine Komponente sichtbar ist, muss sie muss ein übergeordnetes Element haben, in dem es angezeigt werden soll.

ParentThis und ParentThat

Wenn Sie zur Entwurfszeit eine Schaltfläche auswählen und sich den Objektinspektor ansehen, werden Sie mehrere übergeordnete Eigenschaften bemerken. Das ParentFont, Gibt beispielsweise an, ob die für die Beschriftung der Schaltfläche verwendete Schriftart mit der für die übergeordnete Schaltfläche verwendeten Schriftart übereinstimmt (im vorherigen Beispiel: Panel1). Wenn ParentFont für alle Schaltflächen in einem Bedienfeld auf True gesetzt ist und die Font-Eigenschaft des Bedienfelds in Fett geändert wird, verwendet die Beschriftung aller Schaltflächen im Bedienfeld diese (Fett-) Schrift.

Steuert die Eigenschaft

Alle Komponenten, die dasselbe übergeordnete Element verwenden, sind als Teil von verfügbar Kontrollen Eigentum dieses Elternteils. Zum Beispiel können Controls verwendet werden, um Iterieren Sie über alle untergeordneten Elemente der Fenstersteuerung.

Der nächste Code kann verwendet werden, um alle enthaltenen Komponenten in Panel1 auszublenden:

 zum ii: = 0 zu Panel1.ControlCount - 1 tun

   Panel1.Controls [ii] .Visible: = false;