Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

Wenn ich ein leeres Formular habe, funktioneren die Shortcuts, Alt+D, etc. um die Hauptmenüs anzeigen zu lassen.

Sobald ich aber ein in einem Tabcontrol neue andere Formen einbette, funktionieren die genannten Shortcuts nicht mehr.

Woran kann das liegen und wie kann ich das beheben?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von fliegermichl »

Sind die ShortCuts nur durch das "&" in der Caption definiert oder explizit in der Property ShortCut?

Meinst du mit "andere Formen einbetten" Frames oder tatsächlich Formulare, die du erzeugst und einen TabSheet als Parent zuweist? In dem Fall kann es daran liegen, daß das Formular nicht aktiv ist.

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

Ja, die "Shortcuts" sind nur durch das "&Datei" (also das &-Zeichen) definiert.

Solange ich noch keine andere Datei geladen habe, funktionieren die auch alle.

Wenn ich aber eine neue Form erzeuge (darin liegen die Synedits), und in das Pagecontrol einbinde (die einzelnen Seiten sind dann jeweils Parent der Form) dann funktionieren sie nicht mehr.

SynEdit hat auch keine eigenen Shortcuts, die z.B. Alt+D schlucken würden.

Hier mal verbildlicht, was ich meine :
Dateianhänge
no.jpg
no.jpg (139.42 KiB) 2923 mal betrachtet
yes.jpg
yes.jpg (80.17 KiB) 2923 mal betrachtet
Zuletzt geändert von harrybonn am Sa 2. Mai 2020, 16:16, insgesamt 3-mal geändert.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von wp_xyz »

Hastasoft Pascal Editor? Wo gehen die Shortcuts nicht? In Lazarus? Oder in diesem (deinem?) Editor? In letzeren Fall: Liegen Konflikte mit mehrfach verwendeten Shortcuts vor? Wenn nicht, versuche ein kleines Beispielprogramm zu erstellen und das hochzuladen.

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

Lazarus selber arbeitet da einwandfrei.

Ich habe mal weiter getestet, nur wenn Synedit den Fokus hat, funktioniert es nicht (dann ertönt nur ein beepton).

Im SynEdit selber kommt auch Alt+D an, wird aber nicht behandelt, daher der Beepton. M.E. müsste Synedit die &Datei-Shortcuts (die heißen irgendwie anders, komme nicht auf den Namen) ignorieren.

Aktiviere ich ein anderes Element im Hauptfenster, funktionieren die Menü-"Shortcuts."

Mehrfach verwendete Shortcuts ist nicht der Fall, habe ich überprüft (in allen Menüs habe ich nur Ctrl+X oder Shift+Ctrl+X oder Funktionstasten im Einsatz, nirgendwo shortcuts mit Alt+X). "X" steht hier für einen beliebigen Buchstaben.

Was ich aber gerade mit Erstaunen feststelle: Wenn ich nur die Alt taste drücke und wieder loslasse, dann wird das Hauptmenü aktiviert (wie bei F10) und dann kann man wie sonst üblich den gewünschten Buchstaben eintippen (z.B. "d") und das Dateimenü klappt auf.

So ginge es zur Not auch, aber schöner wäre natürlich, es ginge wie normalerweise erwartet....

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von wp_xyz »

Ich habe mir hier ein kleines Projekt zusammengeklickt, um den Fehler zu reproduzieren. Auf dem Formular ist ein Button mit Beschriftung '&Datei', d.h. er reagiert auf den Hotkey ALT+D und zeigt dann eine Meldungsbox ans. Wenn ich dich richtig verstehe, muss auf dem Formular ein SynEdit sein, das, wenn fokussiert, den Hotkey verschlucken soll. Allerdings kommt die Messagebox auch, wenn das SynEdit fokussiert ist und ALT+D gedrückt wird. Um auch den Fall zu haben, dass SynEdit nicht fokussiert ist, befindet sich auf dem Formular auch noch ein TEdit. Egal, was in dem Testprogramm fokussiert ist, ALT+D bewirkt immer die Anzeige der Messagebox.

Du kannst ja mal versuchen, das Programm so zu erweitern, dass dein Fehlerfall auftritt.
Dateianhänge
SynEdit_HotKey.zip
(3.35 KiB) 103-mal heruntergeladen

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

OK, danke habe ich gemacht.

Compiliere das Programm. Alt+D funktioniert (Hauptmenü geht auf).

Drücke auf Schalter "Create Synedit". Ein Formular mit Synedit wird erzeugt und in Tabsheet1 eingefügt.

Drücke erneut Alt+D: Funktioniert nicht mehr.
Dateianhänge
syntest.zip
(5.7 KiB) 106-mal heruntergeladen

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

Zur Info: Wenn ich alternativ keine Form für das SynEdit verwende, sondern ein TFrame, dann funktioniert das Hauptmenü!

Allerdings müsste ich dann einiges umstricken (bestimmte Events gibt es ja nicht beim TFrame), wenn es eine einfache andere Lösung gäbe, wäre das nice (z.B. kann ich ja Alt+D, etc, im SynEdit abfangen, wenn es eine Programmgesteuerte Lösung gäbe, daraufhin das Hauptmenü aufpoppen zu lassen, wäre es mir recht, habe da aber nichts gefunden).

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von wp_xyz »

Ich habe dein Test-Programm etwas modifiziert:

(1) Ich füge in Form2 neben dem SynEdit1 ein TMemo ein. In Form1 ändere ich den ButtonClick-Code so ab, dass Memo1 den Fokus erhält, nicht mehr SynEdit1. --> Hot key funktioniert auch nicht.

(2) Waagemutig geworden, lösche gleich das fanze SynEdit1 aus dem Form2, so dass nur noch das Memo1 vorhanden ist, Ich lösche auch "synedit" aus der Uses-Zeile, so dass das Formular nichts mehr von SynEdit weiß --> weiterhin funktioniert der HotKey nicht.

(3) Ich füge im ButtonClick das SynEdit direkt ins TabSheet1 ein, nicht über den Parent Form2. --> Hotkey funktioniert.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TMemo.Create(self) do
  begin
    Parent := Tabsheet1;
    Align := alclient;
    SetFocus;
  end;
end;
Daraus schließe ich: Es ist kein Problem des SynEdit, sondern liegt daran, dass ein Formular eingefügt wird. Offenbar wird der Tastendruck von Form2 nicht an Form1 weitergeben.

Daraufhin habe ich das zip nochmals ausgepackt und die Dateien so umgeschrieben, dass sie von Delphi akzeptiert werden (und, da die Standard-Delphi-Konfiguration kein SynEdit enthätl, das TSynEdit durch ein TMemo ersetzt). In diesem Fall funkioniert der Hotkey (im Gegensatz zu Fall 1 bzw 2).

Daraus würde ich schließen, dass hier ein Fehler in der LCL-Ereignisbehandlung liegt. Möglicherweise rechnet ein Formular nicht damit, dass es als Child in ein weiteres Control eingebettet sein kann und reicht ein nicht behandeltes Ereignis nicht an den Parent weiter. Du solltest einen Bugreport einreichen und dabei das Testprogramm anfügen.

P.S.
Mit dem Frame bist du mir zuvor gekommen.

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

Kann ich gerne machen.

Wo reiche ich das ein?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von wp_xyz »

https://bugs.freepascal.org/view_all_bu ... oject_id=1; steht in der linken Randspalte des englischen Forums unter "bugtracker". Du musst dich anmelden und kannst dann unter "Report issue" den Sachverhalt beschreiben (auf Englisch).

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Hauptmenü-Shortcuts (Alt+D für &Datei, Al+X für E&xtras) funktionieren nicht

Beitrag von harrybonn »

OK, hier ist der Report: https://bugs.freepascal.org/view.php?id=37007

Mein Problem konnte ich nun lösen, indem ich alle Controls in der bisherigen (externen) Form in ein extra Panel legte.

Wenn ich dann für die Form das TTabsheet als Parent setze, setze ich auch für das Panel das TTabsheet als Parent und sorge dafür, dass es über der Form liegt.

Dann funktioniert alles einwandfrei...

Antworten