Hallo zusammen,
ich versuche gerade onCloseQuery einer von TForm abgeleiteten Klasse zu überschreiben, aber irgendwie klappt das nicht so richtig:
Delphi-Quellcode:
function CloseQuery(Sender: TObject; var CanClose: Boolean):boolean; override;
=> "Deklaration von CloseQuery" unterscheidet sich von vorheriger Deklaration"
Das nimmt mir der Compiler zwar ab, funktioniert aber auch nicht, da dieses onCloseQuery nie angesprungen wird:
Delphi-Quellcode:
function CloseQuery(Sender: TObject; var CanClose: Boolean):boolean; reintroduce;
function TModularForm.CloseQuery(Sender: TObject;
var CanClose: Boolean): boolean;
begin
If Sender is TModularForm then
begin
SHowMessage('OK');
end;
end;
In der Anwendung werden mittels TModularForm
MDI-Children erstellt. Ich möchte in diesem Ereignis abprüfen, ob ich eine Leiste mit den TModularForm-
MDI-Children ein-oder ausblende. Gibt es kein
MDI-Child von TModularForm mehr, soll die Leiste weg.
Bisher hatte ich in meiner abgeleiteten Klasse folgendes:
Delphi-Quellcode:
function CloseQuery: Boolean; Override;
function TModularForm.CloseQuery: Boolean;
begin
if xForm.MDIChildCount = 1 then
begin
xForm.TBXDock3.Visible:=false;
xForm.TBXItem18.Visible:=false;
end
else
begin
xForm.TBXDock3.Visible:=true;
xForm.TBXItem18.Visible:=true;
end;
result:=true;
end;
Das Problem hierbei ist, dass dieses Ereignis auch Dialogen angesprochen wird, die ebenfalls von der Klasse TModularForm sind. Ich brauche also den Sender um zu überprüfen, ob "Sender = MDIChild", damit dieses Event nur angesprochen wird, wenn ein
MDI-Child geschlossen wird.
Viele Grüße
Igotcha