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/)
-   -   Delphi "Stay-On-Top" Formulare und die Behandlung von Shortcuts (https://www.delphipraxis.net/69137-stay-top-formulare-und-die-behandlung-von-shortcuts.html)

mirage228 10. Mai 2006 17:51


"Stay-On-Top" Formulare und die Behandlung von Sho
 
Hi,

Ich hab folgendes "kleine" Problem.

Ich habe ein Hauptformular, auf dem ein anderes Formular mit der Einstellung FormStyle = fsStayOnTop angezeigt wird.
Das Hauptform besitzt eine ActionList, wo Actions wie z.B. "Einfügen" (Strg+V) oder "Kopieren" (Strg+C) abgefangen und verarbeitet werden.

Das Problem zeigt sich nun, wenn das andere Form "on-top" angezeigt wird und ich auf diesem ein Edit-Feld fokusiere und dort mit Strg+V einen Text in das Edit-Feld einfügen möchte.
Nämlich bekommt das nicht das "on-top"-Form die Benachrichtigung über den Shortcut, sondern das Hauptformular, was dazu führt, dass mein Text im Hauptform eingefügt wird und nicht im "on-top"-Form.

Ich kann jetzt natürlich die Behandlungsroutine im Hauptformular abändern und abfragen, ob das andere Fenster angezeigt wird und die Eingabe dort an das Active Editfeld weiterleiten, aber das ist dann doch etwas unschön und umständlich.

Ich habe auch keine Eigenschaft gefunden, um Delphi dazu zubewegen, die Tastendrücke erst an das "on-top"-Formular zu senden...

Weiss jemand, wie ich das besser hinbekomme (es geht lediglich um die Edit-üblichen Shortcuts wie Strg+A, Strg+C, Strg+X und Strg+V)?

mfG
mirage228

mirage228 5. Jun 2006 18:59

Re: "Stay-On-Top" Formulare und die Behandlung von
 
Ich erlaube mir mal ein leises *PUSH* :)

mfG
mirage228

marabu 6. Jun 2006 09:04

Re: "Stay-On-Top" Formulare und die Behandlung von
 
Hallo David,

wenn du eine ActionList verwendest, dann werden Tastatureingaben zuerst von der ActionList geprüft. Du musst den Enabled-Status deiner Actions ständig aktualisieren, damit das von dir gewünschte Verhalten möglich wird. Im Ereignis OnUpdate deiner clipboard actions probiere das aus:

Delphi-Quellcode:
with Sender as TAction do
  Enabled := self.Focused;
Oft reicht auch das class menu völlig aus um die Clipboard Befehle zugänglich zu machen.

Grüße vom marabu

mirage228 6. Jun 2006 10:05

Re: "Stay-On-Top" Formulare und die Behandlung von
 
Delphi-Quellcode:
with Sender as TAction do
  Enabled := self.Focused;
Hi marabu,

Super, vielen Dank, so gehts :)

mfG
mirage228

David Martens 19. Jan 2012 17:30

AW: "Stay-On-Top" Formulare und die Behandlung von Shortcuts
 
Ich habe genau das gegenteilige Problem.

Grundsätzlich habe ich zwei verschiedene Formulare, Verwaltungsmasken zur Eingabe von Daten und Analsysformulare für die Auswertung. Für die Analysen ist eine Action zum Kopieren im Hauptmenü. Die Updatefunktion der Action fragt das ab.

In den Verwaltungsmasken sind u.a. Eingabefelder, bei "Stay-On-Top" Masken funktioniert Strg+C wunderbar, aber bei den anderen geht es nicht. Logischer weisen, da hier die Action aus dem Menü greift. Kann ich denn die Kopier-/Einfüge-anweisung an das aktive Control weiterleiten ohne jedes unterschiedliche berücksichtigen zu müssen?

Danke David


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 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