Ich bin ziemlich neu in Delphi (ich benutze Version 10.1 Berlin), und ich versuche zu verstehen, wie Vererbung funktioniert.FormClose Vererbung
Angenommen, ich habe zwei Formulare, die beim Schließen dieselbe Aktion ausführen müssen. Um zu vermeiden, Code-Duplizierung, meine erste Idee, eine übergeordnete Klasse zu schaffen war, TFoobarForm
, die von TForm
erbt, und dann ein Verfahren FormClose
wie folgt zu erstellen:
procedure TFoobarForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{ Some code }
end;
Danach würde Ich mag 2 Formulare erstellen, lassen Sie uns sagen TFooForm
und TBarForm
, die von TFoobarForm
erben. Aber ich weiß nicht, ob es eine Möglichkeit gibt, diese neuen Formulare dazu zu bringen, die Aktion der Superklasse FormClose
auszuführen, ohne die Prozedur manuell von jeder Klasse aufrufen zu müssen, die von ihr erbt.
Am Ende für das, was ich suche, ist eine Möglichkeit, dies zu schreiben zu vermeiden:
procedure TFooForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited FormClose(Sender, Action);
end;
für jede Unterklasse von TFoobarForm
.