Announcement

Collapse
No announcement yet.

verzweifel, verzweifel - BorderIcons einstellen, wie ich es brauche

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

  • verzweifel, verzweifel - BorderIcons einstellen, wie ich es brauche

    Hallo Leute,
    ich möchte das BorderIcon zum Schliessen des Formulares entweder ausblenden oder einfrieren (egal) aber über die Eigenschaft BorderIcons bzw. BorderStyle kriege ich das
    einfach nicht gebacken!
    Die BorderIcons [biMinimize, biMaximize] sollen aber funktionsfähig bleiben. Es handelt sich um MDI-Formulare.
    Danke Tatjana

  • #2
    Hallo Tatjana<BR>
    Ich habe gestern schon mal ein bischen darüber gestöbert, <BR>
    aber noch nichts brauchbares, auch in der API, gefunden.<BR>
    Wenn ich etwas herausgefunden habe, gebe ich dir ne Info.<BR>
    Gruß<BR>
    Matthias<BR&gt

    Comment


    • #3
      Hallo Tatjana,<br>
      versuch's doch mal damit<br>
      <pre>
      <font face="Verdana" size="1" color="#000000">procedure TForm1.FormCreate(Sender: TObject);
      var
      SysMenuHandle : THandle;
      begin
      SysMenuHandle:=GetSystemMenu(Handle,False);
      RemoveMenu(SysMenuHandle,6,MF_BYPOSITION); // Schließen entfernen
      RemoveMenu(SysMenuHandle,5,MF_BYPOSITION); // Trenner am Ende des Menüs entfernen
      end;</font>
      </pre>
      Jens Schumann<br&gt

      Comment


      • #4
        <pre>

        var
        sysmenu: hMenu;
        begin
        sysMenu := GetSystemMenu(Handle, false);
        EnableMenuItem(SysMenu, sc_Close, mf_ByCommand or mf_Disable);
        end;

        </pre&gt

        Comment


        • #5
          @Matthias
          Danke für Anstrengungen!

          @Jens
          Ich hab's ausprobiert, funktioniert prima!
          Das Icon wird eingefroren.
          Kann ich es auch ganz verschwinden lassen?

          @Hagen
          Dein Vorschlag hat bei mir leider nicht funktioniert.

          Vielen, vielen Dank an alle!

          Comment


          • #6
            Hm, bei mir wird der Schließen-Button grau dargstellt und im System-Menu das Schließen-Item hat keine funktion mehr. D.h. per Systemmenu oder dem Schließen Button kann das Fenster nicht mehr geschlossen werden. Achso: mf_Disable muß mf_Disabled heissen

            Comment


            • #7
              Hi,<br>
              Also ich hab's auch mal ausprobiert, funktioniert mit beiden Wegen ziemlich gut.<br>
              Ein Problem gibts doch da aber noch. Denn wenn ich das Systemmenü in der Taskleiste öffne, dann funktioniert dort das Schließen immernoch wunderbar obwohl es, wenn ich im Formular in die obere linke Ecke klicke, nicht funktioniert.<br>
              Ich hab's hier allerdings nur unter WindowsXP ausprobiert. Ist das nur da so? Gibts eine Möglichkeit, das Systemmenü in der Taskleiste auch auszuschalten?<br>
              Danke für Hinweise!<br>
              Tschüs

              Comment


              • #8
                Hallo Rene,<br>
                zu XP kann ich nix sagen. Ich habe nur Win2k.<br>
                Mit meiner Methode wird unter Win2k der Eintrag Schließen aus dem<br>
                Systemmenü entfernt. D.h. man kann es nicht anklicken, da es nicht existiert.<br>
                Jens Schumann<br&gt

                Comment


                • #9
                  Hallo Leute,

                  ich habe beide Varianten ausprobiert und sie funktionieren. Jedoch habe ich unter "Windows NT" das gleiche Problem wie Rene. In der Taskleiste ist das Programm sichtbar und beim Aktivieren des Systemmenüs über die rechte Maustaste ist der "Schließen"-Button (bzw. Alt+F4) weiterhin aktivierbar.

                  Wie läßt sich das verhindern ?

                  @ Jens:
                  Bei mir wird unter "Windows NT" der Schließen-Button nicht entfernt, sondern er ist grau hinterlegt im Programm. Er läßt aber, wie gewünscht, nicht aktivieren. In der Taskleiste ist die "Schließen"-Funktion des Programms jedoch aktivierbar.
                  <PRE>
                  RemoveMenu(SysMenuHandle,5,MF_BYPOSITION); // Trenner am Ende des Menüs entfernen
                  </PRE>
                  Bei mir stelle ich durch diese Zeile keine sichtbare Veränderung fest. Was meinst Du mit "Trenner am Ende des Menüs" ?

                  Grüsse,
                  Carste

                  Comment


                  • #10
                    @Jens:
                    Jetzt weiß ich, welcher Trenner des Menüs bei Deiner Methode entfernt wird. Es ist der Trenner, der im Systemmenü in der linken, oberen Ecke bei einem Klick darauf erscheint. Die Zeile ist wirklich sinnvoll.

                    @Hagen:
                    Bei Dir hat zwar die "Schließen"-Funktion im Systemmenü in der linken, oberen Ecke zwar keine Funktion mehr, sollte aber idealerweise ausgegraut werden. Ich würde daher, Hagen verzeih mir, Deinen Quellcode wie folgt abändern:

                    <PRE>
                    var
                    sysMenu: hMenu;
                    begin
                    sysMenu := GetSystemMenu(Handle, false);
                    EnableMenuItem(sysMenu, sc_Close, mf_ByCommand or mf_Disabled or mf_Grayed);
                    end;
                    </PRE&gt

                    Comment

                    Working...
                    X