Einzelnen Beitrag anzeigen

Benutzerbild von bigg
bigg

Registriert seit: 1. Jul 2007
155 Beiträge
 
#2

Re: MDI-App, Hauptmenüeinträge enablen/disablen

  Alt 31. Dez 2008, 11:04
Hallo Warp,

hierfür eignet sich die Methode OnIdle, die zwar häufig aufgerufen wird und für CPU-Lastige Funktionalitäten nicht missbraucht werden sollte, aber in deinem Fall die optimale Lösung darstellen sollte:

Delphi-Quellcode:

//------------------------------------------------------------------------------
// OnIdle:
//------------------------------------------------------------------------------

procedure TMainForm.OnIdle(Sender: TObject; var Done: Boolean);
var b: Boolean;
begin
  //geht auch kürzer
  b := (Self.MDiChildCount > 0);

  actnFileSave.Enabled := b;
  actnFileSaveAs.Enabled := b;
  actnFilePrintPreview.Enabled := b;
  actnFilePrintSettings.Enabled := b;
  actnEditUndo.Enabled := b;
  actnEditRedo.Enabled := b;
end;

//------------------------------------------------------------------------------
// OnIdleInit: Einmal im OnCreate bzw. Konstruktur aufrufen
//------------------------------------------------------------------------------

procedure TMainForm.SetApplicationIdleProc;
var Done: Boolean;
begin
  Application.OnIdle := OnIdle;
  Done := True;
  OnIdle(Self, Done);
end;
PS: Code ist ungetestet.
Ich bin ja quasi die perfekte Mischung aus jung, aber sehr erfahren.
  Mit Zitat antworten Zitat