![]() |
Form in den Vordergrund holen
![]() Ich habe dafür einen neuen Thread aufgemacht, da sie eigentlich nicht mehr in den alten gehörte. Meine Frage ist: Wie kann man die Form in den Vordergrund holen (ohne Form1.Show; zu verwenden...)? Mit Form1.BringToFront; wird sie vielleicht in den Vordergrund geholt aber noch nicht für mich ausreichen, da sie nicht vor Firefox etc. geschoben wird... Mfg Ghost |
Re: Form in den Vordergrund holen
Hi,
evtl. hilft dir SetForeGroundWindow weiter. mfg |
Re: Form in den Vordergrund holen
Also da ich nicht wusste was du damit meinst habe ich danach gesucht und hab etwas ähnliches gefunden:
Delphi-Quellcode:
Das klappt auch soweit nur einige meiner Keybefehle dafür nicht mehr...
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
zB.:
Delphi-Quellcode:
Hat da jemand ne Ahnung?
if Key = vk_f4 and ssAlt in Shift then
begin Key:= 0; Form1.Show; end; |
Re: Form in den Vordergrund holen
Möchtest du dass die Form dauerhaft im Vordergrund bleibt oder nur bei einem bestimmten Ereigniss? Das immer im Vordergrund geht so. Beim OnCreate oder so aufrufen:
Delphi-Quellcode:
Edit: Zu spät!
Application.NormalizeAllTopMosts;
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); |
Re: Form in den Vordergrund holen
Naja solange das dauerhafte "im Vordergrund sein" nicht meine anderen Befehle blockiert, ist mir das schon Recht ;).
Aber man könnte ja auch, wenn die Form nicht dauerhaft im Vordergrund ist, den Befehl in einen Timer setzen, oder? Edit: Vielleicht muss ich grundsätzlich erst nochmal hinzufügen: Ich arbeite mit 2 Formen. Die eine besitzt nur eine TImage Komponente und den Befehl (beim KeyDown-Ereignis)
Delphi-Quellcode:
Die andere Form soll immer aktiviert sein denn sie besitzt die Befehle:
if Key = vk_f4 and ssAlt in Shift then
begin Key:= 0; end;
Delphi-Quellcode:
Also Form 1 ist eigentlich nur ein Bild, Form 2 soll dieses auf Tastendruck hervorheben oder verschwinden lassen.
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (Key = vk_f4) and (ssAlt in shift) then begin Key := 0; end; if (Key = vk_f5) and (ssAlt in shift) then begin Form1.Hide; end; if (Key = vk_f3) and (ssAlt in shift) then begin Key := 0; Form1.Show; end; end; Nur wenn ich das Projekt starte klappt das alles nicht mehr wenn ich ein anderes Programm maximiere o.ä. Deshalb such ich einen Befehl um Form2 so in den Vordergrund zu bringen (per Timer o.ä.) das die Befehle auch noch funktionieren wenn ich ein anderes Programm starte... |
Re: Form in den Vordergrund holen
Hat niemand eine Idee wie ich das machen kann?
|
Re: Form in den Vordergrund holen
Ich denke das Thema kann geschlossen werden wenn keiner antwortet oder keiner eine Antwort weiß...;)
Mfg Ghost |
Re: Form in den Vordergrund holen
Zitat:
|
Re: Form in den Vordergrund holen
Wie meinst du das? Bei KeyDown hab ich schon Hotkeys definiert. Meinst du das - oder etwas anderes?
|
Re: Form in den Vordergrund holen
Du möchtest doch, dass F3 etc auch dann reagieren, wenn deine Form nicht den Fokus hat?
Dann such mal nach ![]() |
Re: Form in den Vordergrund holen
Damit beschäftigte ich mich jüngst auch ausführlich.
Fenster in den Vordergrund setzen: 1. Eine notwendige, jedoch nicht ausreichende Bedingung ist, den Formstyle des Formulares auf Stayontop zu setzen. Nur nützt das nichts gegenüber anderen Fenstern/Formularen, die dieses Attribut ebenfalls so gesetzt haben, z.B. beim Taskmanager, der verdeckt das trotzdem frech. Deshalb: 2. Bei jedem sich bietenden Ereignis (Verdecken gehört leider nicht dazu, aber Neuzeichnen, wenn man ein über-/verdeckendes Formular wieder ein wenig wegzieht) oder über einen Timer einen der drei Befehle verwenden: - BringToFront - BringWindowToTop(Handle) - SetForeGroundWindow(Handle) Viel Erfolg! |
Re: Form in den Vordergrund holen
Zitat:
Beim Taskmanager ist es aber trotzdem so, dass ich ein anderes Fenster, welches auch StayOnTop ist, nach vorne holen kann, nämlich indem ich ihm ganz einfach den Fokus gebe. mfg |
Re: Form in den Vordergrund holen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz