Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Strg-Shortcuts in Modalen Fenstern (in MDI-Anwendung) (https://www.delphipraxis.net/172669-strg-shortcuts-modalen-fenstern-mdi-anwendung.html)

Ralf Kaiser 16. Jan 2013 15:12

Strg-Shortcuts in Modalen Fenstern (in MDI-Anwendung)
 
Halli Hallo,

Ich hab d eine MDI-Anwendung in der modale Fenster aus einem MDI-Child heraus geöffnet werden. In diesen modalen Fenstern gibt es TActions mit Shortcuts die das modale Fenster schließen. Es paasiert nun folgendes:
  • Erstes MDI-Fenster anklicken
  • Zweites MDI-Fenster anklicken
  • Aus zweitem MDI-Fenster das modale Fenster öffnen
  • Im modalen Fenster den Schortcut betätigen (z.B. STRG-S)
  • Modales Fenster wird geschlossen
  • Es ist jetzt nicht mehr das zweite MDI-Fenster aktiv sondern das erste
Das seltsame ist, dass das nur dann passiert wenn der definierte Shortcut mit der STRG-Taste ausgelöst wird. Definiere ich einen anderen Shortcut (UMSCH z.B.) dann wird das erste Fenster nicht nach vorne geholt (lässt sich mit beliebig vielen Fenstern ausprobieren: es wird immer das nach vorne geholt das vor dem aktuellen MDI-Child aktiv war)

Auch scheint dieser Effekt nicht wirklich was mit Actions zu tun zu haben (ich habe mal in OnKeyUp STRG-ENTER abgefragt und dann das Formular geschlossen), es sieht so aus, dass der Effekt auftritt wenn beim schliessen des modalen Fensters die STRG-Taste gedrückt ist.

Hat jemand eine Idee, was das auslöst? :gruebel:

Danke schon mal,
Ralf

musicman56 16. Jan 2013 16:07

AW: Strg-Shortcuts in Modalen Fenstern (in MDI-Anwendung)
 
Hallo,

eine Idee für den Auslöser hab ich nicht, nur schon genügend Ärger mit Delphi und MDI in den letzten 14 Jahren. Man sollte ja eigentlich einen gr0ßen Bogen um MDI machen. Darum würde ich mir auch keine großen Gedanken über die Ursache machen, und das Problem ganz einfach fixen:

Delphi-Quellcode:
procedure TForm.BtnClick(Sender: TObject);
var
  Child: TForm;
begin
  Child := ActiveMDIChild;
  // modales Fenster anzeigen
  Child.SetFocus;
end;
Ganz abgesehen davon: MDI-Apps verhalten sich auf unterschiedlichen OS nicht immer gleich. Ist das Phänomen auf anderen PC's mit anderem OS nachvollziehbar? Denn auch das könnte ursächlich mit dem Problem im Zusammenhang stehen.

Ralf Kaiser 16. Jan 2013 17:47

AW: Strg-Shortcuts in Modalen Fenstern (in MDI-Anwendung)
 
Etwas ähnliches hatte ich schon erfolglos versucht (ein BringToFront mit dem vorher gesicherten Form). Allerdings ein SetFocus hatte ich nicht ausprobiert, Werde ich morgen mal ausprobieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz