Gültigkeitsbereich und Qualifizierer

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Das Delegationsmodell verwenden - Index

Der Gültigkeitsbereich steuert den Zugriff auf die Felder, Eigenschaften und Methoden eines Objekts. Alle in einer Klasse deklarierten Elemente sind für diese Klasse und, wie nachfolgend erläutert wird, häufig auch für deren Nachfahren verfügbar. Obwohl der Implementierungscode für eine Methode außerhalb der Klassendeklaration steht, liegt die Methode im Gültigkeitsbereich der Klasse, weil sie innerhalb der Klassendeklaration deklariert ist.

Wenn Sie Code zur Implementierung einer Methode schreiben, der auf Eigenschaften, Methoden oder Felder der Klasse Bezug nimmt, in der die Methode deklariert ist, müssen Sie den einzelnen Bezeichnern nicht den Namen der Klasse vorausstellen. Wenn Sie beispielsweise auf einem neuen Formular eine Schaltfläche anlegen, könnten Sie für das Ereignis OnClick der Schaltfläche die folgende Ereignisbehandlungsroutine schreiben:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Color := clFuchsia;
  Button1.Color := clLime;
end;

Die erste Anweisung entspricht der folgenden Zeile:

Form1.Color := clFuchsia

Sie brauchen Color nicht durch Form1 zu qualifizieren, weil die Methode Button1Click Teil von TForm1 ist; Bezeichner im Methodenrumpf liegen deshalb im Gültigkeitsbereich der TForm1-Instanz, in der die Methode aufgerufen wird. Die zweite Anweisung dagegen bezieht sich auf die Farbe des Schaltflächenobjekts (nicht auf das Formular, in dem die Ereignisbehandlungsroutine deklariert ist); deshalb ist eine Qualifizierung erforderlich.

Die IDE erzeugt für jedes Formular eine separate Unit-Datei (Quellcode). Wenn Sie auf die Komponenten eines Formulars von der Unit-Datei eines anderen Formulars aus zugreifen wollen, müssen Sie die Komponentennamen angeben, etwa wie folgt:

Form2.Edit1.Color := clLime;

Auf dieselbe Weise greifen Sie von einem anderen Formular aus auf die Methoden einer Komponente zu; Beispiel:

Form2.Edit1.Clear;

Um von der Unit-Datei von Form1 aus auf die Komponenten von Form2 zuzugreifen, müssen Sie die Unit von Form2 in der uses-Klausel der Unit von Form1 angeben.

Der Gültigkeitsbereich einer Klasse schließt auch deren Nachfahren ein. Innerhalb einer abgeleiteten Klasse können jedoch Felder, Eigenschaften oder Methoden neu deklariert werden. Diese Neudeklarationen verbergen oder überschreiben das geerbte Element.

Siehe auch