![]() |
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 ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 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