Und wieso alle offnen MDIChilds durchsuchen? Das
TForm.ActiveMDIChild sollte da doch genügen.
Man kann natürlich auch Funktionen über ein Interface zur Verfügung stellen:
Delphi-Quellcode:
IPrintable =
interface
[
{GUID}]
function CanPrint : Boolean;
procedure DoPrint;
end;
und dann ganz simpel abfragen
Delphi-Quellcode:
procedure TMainForm.PrintActionExecute(Sender:TObject);
var
LPrintable : IPrintable;
begin
if Supports( ActiveMDIChild, IPrintable, LPrintable ) then
LPrintable.DoPrint;
end;
procedure TMainForm.PrintActionExecute(Sender:TObject);
var
LPrintable : IPrintable;
begin
TAction( Sender ).Enabled := Supports( ActiveMDIChild, IPrintable, LPrintable ) and LPrintable.CanPrint;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)