Objektvariablen verwenden
Nach oben zu Das Delegationsmodell verwenden - Index
Sie können Objektvariablen anderen Objektvariablen zuweisen, falls die Variablen denselben Typ haben oder zuweisungskompatibel sind. Das heißt, Sie können eine Objektvariable einer anderen zuweisen, wenn der Typ der Variablen, der die Variable zugewiesen wird, ein Vorfahr des Typs der Variablen ist, die zugewiesen wird. Als Beispiel folgt unten die Typdeklaration von TSimpleForm und ein Abschnitt mit den beiden Variablendeklarationen für AForm und Simple:
type TSimpleForm = class(TForm) Button1: TButton; Edit1: TEdit; private { private-Deklarationen } public { public-Deklarationen } end; var AForm: TForm; SimpleForm: TSimpleForm;
AForm hat den Typ TForm, SimpleForm hat den Typ TSimpleForm. Weil TSimpleForm ein Nachkomme von TForm ist, ist die folgende Zuweisung erlaubt:
AForm := SimpleForm;
Angenommen, Sie schreiben die Ereignisbehandlungsroutine für das Ereignis OnClick einer Schaltfläche. Wird die Schaltfläche angeklickt, wird die Ereignisbehandlungsroutine für das Ereignis OnClick aufgerufen. Jede Ereignisbehandlungsroutine hat den Parameter Sender vom Typ TObject:
procedure TForm1.Button1Click(Sender: TObject); begin . . . end;
Weil Sender den Typ TObject hat, kann ihm jedes Objekt zugewiesen werden. Der Wert von Sender ist immer das Steuerelement oder die Komponente, die auf das Ereignis reagiert. Mithilfe des reservierten Worts is können Sie Sender abfragen, um den Typ der Komponente oder des Steuerelements zu ermitteln, die bzw. das die Ereignisbehandlungsroutine aufgerufen hat. Beispiel:
if Sender is TEdit then DoSomething else DoSomethingElse;