Announcement

Collapse
No announcement yet.

TMainmenu hat Probleme mit ALT+S

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

  • TMainmenu hat Probleme mit ALT+S

    Versucht mal unter Delphi 4, ein Tmainmenu mit folgenden Items anzulegen:<p>&File und S&ettings.<P>Wenn dann bei laufendem Program die Tastenkombination <B>ALT + S</B> betätigt wird, dann aktiviert sich der Settings-Menupunkt, obwohl der Hotkey e ist? Jemand eine ide

  • #2
    Scheinbar ist Delphi hier zu fleißig.

    Alle ersten Buchstaben der Menüs können ebenfalls mittels <b>ALT</b> erreicht werden, solange sie nicht andersweitig benutzt werden!

    Ergänz mal dein Menü <b>Te&st</b>. Die Tastenkombination <b>ALT + S</b> wird jetzt richtig verbunden, jedoch ist dieser Menüpunkt auch mit <b>ALT + T</b> erreichbar

    Comment


    • #3
      versuch dann mal folgendes: füge einen button ein mit der caption T&esten. im's onclick-ereigniss kommt dann folgender code:<P>
      raise Exception.Create('Test');<P>compilieren und dann den knopf mit alt+e aktivieren. es wird dann eine exception ausgelößt. nach dieser exception müßte dann der menu-punkt s&ettings geöffet sein. das ist mein eigendliches problem. wenn's nicht auftritt, dann teste das ganze auserhalb der ide

      Comment


      • #4
        Ist es jetzt das Problem, wenn der Menupunkt s&ettings offen ist oder nicht?

        Bei mir ist der Menupunkt aufgeklappt! Und ich denke mal so paßt des auch. Nach Abarbeitung des Buttons wird der Hotkey für das Menü ausgeführt.<br>
        Oder willst Du ein anderes verhalten

        Comment


        • #5
          das problem ist, daß der menueintrag offen ist. tausche einfach das raise exception.create durch ein showmessage aus und der menupunkt öffnet sich nicht mehr. und wenn du den button mit der Caption &Settings und den menuitem mit S&ettings belegt und die exception auslöst, dann öffnet delphi dennoch nach der excpetion das menu. mir kommt der verdacht, daß durch das abbrechen des onclick-ereignisses, der hotkey irgendwie weiter ans mainmenu weitergegeben wird. wenn's so ist, wie kann ich das unterbinden

          Comment


          • #6
            Ob und wie man daß unterbinden kann, habe ich keine Idee mehr.<br>
            Jedoch sollte man es vermeiden einen Hotkey 2 mal in einem Formular für unterschiedliche Dinge zu verwenden. Dies könnte nicht nur die VCL verwirren, sondern auch den Bediener

            Comment


            • #7
              meine applicationen sehen so aus wie die ide von delphi. das hauptfenster mit mainmenu und alle weitren fenster werden mit hilfe von speedbuttons bedient. wenn ich jetzt einen speedbutton mit alt + s (&Speichern) aktivere und eine excption auslöse, dann springt mir das programm zurück zum hauptfenster und öffnet dort mein &Stammdaten-menu. deshalb ist dieser effekt so störend

              Comment


              • #8
                Ich würde für Speichern ich den Hotkey Strg + S verwenden (wie die Delphi-IDE) auch.<br>
                Arbeitest Du mit Action-Listen (Ab D4 vorhanden)

                Comment


                • #9
                  nein. da ich die projekte von delphi 3 auf 4 portiert habe. auserdem ist das nicht ganz windows standart. ich hab nämlich in allen forms die buttons &Neu, &Ändern, &Löschen, &Speichern, &Abbrechen, &Blättern (<- Übersicht). und die kunden sind diese logik jetzt gewohnt,darum wäre umstellen eine schlechte idee. auserdem ist das strg + s nicht so visuell wie alt + s (wenden der unterstreichung des hotkeys

                  Comment


                  • #10
                    Wieso?<br>
                    Im Internet Explorer, ... ist der ShortCut für Speichern auf Strg + S gelegt. Zusätzlich kann der Menüpunkt auch noch angewählt werden, wenn das Menu (Normalerweise Datei) aufgeklappt ist und die Taste S gedrückt wird (kein Alt + S).<br>
                    Da Du scheinbar jedoch alles mit Buttons macht, belegst du zusätzlich
                    zum eigentlichen Schortcut den Alt + Taste Kombination.

                    Die Umstellung auf Action-Listen ist zwar einiges an Klick-Arbeit, jedoch können mehrer Oberflächenelemente auf eine Action-Eintrag verweisen (Menüpunkt, Toolbutton, ...). Schau es Dir einfach mal an und probier es mal aus! Vielleicht lößen die Action-Listen dein Problem

                    Comment


                    • #11
                      ich kenne dir action-lists, da jedoch jeder button individuell ist, wäre das nur umständlicher. irgendwie müßte ich vor dem auslößen der exception das key-ereigniss killen, dann dürfte es funktionieren. ich hab aber keine ahnung wie das geht (zumindest nicht, wie es einfach geht...

                      Comment


                      • #12
                        Wennst Du für jede Aktion (Neu, Ändern, ...) jeweils nur einen 'Auslöser' hast, so mußt Du natürlich bei verwendung von Actionlisten ein bis zwei Klicks mehr machen. Aber sobald mehr Oberflächenelemente die gleiche Aktion auslösen, so sind doch TAction-Elemente einfacher zu handhaben (Icon zuweisen, Enable/Disable, Sichtbar, ...).

                        Wie man ein solche Key-Ereigniss killt, bin ich auch überfragt. Müßtest eventuell im SourceCode der VCL tracen

                        Comment

                        Working...
                        X