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 Fenster erzeugen und anzeigen ohne, dass es Fokus erhält (https://www.delphipraxis.net/151519-fenster-erzeugen-und-anzeigen-ohne-dass-es-fokus-erhaelt.html)

s.h.a.r.k 20. Mai 2010 23:29


Fenster erzeugen und anzeigen ohne, dass es Fokus erhält
 
Guten Abend,

im Threadtitle steht ja schon meine Frage ;) Und zwar will ich eine Form erzeugen, anzeigen, in den Vordergrund bringen, ohne dass es dabei den Fokus erhält. Dieser soll in einem Edit-Feld verbleiben, ohne dass dieses jemals den Fokus verliert. Änderungen im Edit-Feld triggern die Sichtbarkeit des Formulars.

mkinzler 21. Mai 2010 05:36

Re: Fenster erzeugen und anzeigen ohne, dass es Fokus erhält
 
Einfach danach den Fokus auf das Editcontrol zurücksetzen

himitsu 21. Mai 2010 07:28

Re: Fenster erzeugen und anzeigen ohne, dass es Fokus erhält
 
Da gibt es mehrere Wege und einer wäre MSDN-Library durchsuchenShowWindow inkl. SW_SHOWNOACTIVATE

[edit]
und falls das Fenster schon sichtbar ist, dann MSDN-Library durchsuchenSetWindowPos mit SWP_NOACTIVATE

s.h.a.r.k 21. Mai 2010 08:38

Re: Fenster erzeugen und anzeigen ohne, dass es Fokus erhält
 
Zitat:

Zitat von himitsu
Da gibt es mehrere Wege und einer wäre MSDN-Library durchsuchenShowWindow inkl. SW_SHOWNOACTIVATE

[edit]
und falls das Fenster schon sichtbar ist, dann MSDN-Library durchsuchenSetWindowPos mit SWP_NOACTIVATE

@himitsu: Danke, das ist glaub genau das was ich gesucht habe :thumb:

@mkinzler: Klar, das wäre eine Lösung, allerdings fange ich in einem Control die Nachrichten ab und führe eine Methode aus, wenn das Edit den Fokus verliert, ergo funktioniert das leider nicht ganz. Ich könnte hier zwar einen Timer einführen, aber das wäre eher eine unsaubere Lösung. Bisher habe ich auch Visible immer auf True gelassen und das Fenster über AlphaBlendValue aus- bzw. eingefadet (was ich dauerhaft beibehalten will), aber das ist halt auch nicht wirklich sauber.


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