Announcement

Collapse
No announcement yet.

Fenster maximieren und minimieren zur Laufzeit sperren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fenster maximieren und minimieren zur Laufzeit sperren

    Hallo,
    Wie kann ich zur Laufzeit das Maximieren und Minimieren eine offenen Child-Fenster (fsMDIChild) verhindern.

    Ich erstelle mittels Application.CreateForm(FormClass, Result) meine Childfenster. Das Minimieren und Maximieren ist erlaubt.
    Nun möchte ich zur Laufzeit (Abhängig von diversen Eingaben) dies verhindern oder wieder freigeben.

    kann mir jemand weiterhelfen

    Danke Oswald

  • #2
    procedure TFrmRechner.Button1Click(Sender: TObject);
    begin
      if Self.BorderIcons=[biSystemMenu,biMinimize,biMaximize] then
        Self.BorderIcons:=[biSystemMenu]
      else
        Self.BorderIcons:=[biSystemMenu,biMinimize,biMaximize];
    end;

    Das sollte eigentlich gehen

    Comment


    • #3
      Hallo Jens,

      Es funktioniert bis auf eine Sache.
      Jedesmal wenn BorderIcons zur Laufzeit verändert wird, werden die Event FormActivate + FormShow... erneut aufgerufen.

      Ich diesen Ereignissen habe ich diverse Voreinstellungen wie das Fenster aufgebaut wird. (Art der Eingabe, Länge, Farbe, Ausrichtung, Font, usw...)

      Ich könnte eine Variable verwenden und eine Sperre einbauen, aber es sind 50-60 Fenster.

      Gibt es hier eine andere Möglichkeit (Mittels API eventuell)

      Danke Oswal

      Comment


      • #4
        Ich verhindere das mit OnActivate := nil;

        Beispiel :

        procedure TForm1.FormActivate(Sender: TObject);
        begin
        try

        ... tue was...

        Form1.OnActivate := nil;

        Except
        Raise;
        End;
        end

        Comment


        • #5
          Hallo
          nun klappts wunderbar.

          procedure TFrmRechner.Button1Click(Sender: TObject);
          begin
          // ---------------------
          self.OnActivate := nil;
          self.OnShow := nil;
          // ---------------------
          if Self.BorderIcons=[biSystemMenu,biMinimize,biMaximize] then
          Self.BorderIcons:=[biSystemMenu]
          else
          Self.BorderIcons:=[biSystemMenu,biMinimize,biMaximize];
          end;

          Schönen Dank
          Oswal

          Comment

          Working...
          X