Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form in den Vordergrund holen (https://www.delphipraxis.net/145686-form-den-vordergrund-holen.html)

Ghostleader 6. Jan 2010 11:07


Form in den Vordergrund holen
 
Hier wurde die Frage gestellt
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

patti 6. Jan 2010 11:10

Re: Form in den Vordergrund holen
 
Hi,

evtl. hilft dir SetForeGroundWindow weiter.

mfg

Ghostleader 6. Jan 2010 11:18

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:
 SetWindowPos(Handle, HWND_TOPMOST, 0, 0, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Das klappt auch soweit nur einige meiner Keybefehle dafür nicht mehr...
zB.:
Delphi-Quellcode:
if Key = vk_f4 and ssAlt in Shift then
begin
Key:= 0;
Form1.Show;
end;
Hat da jemand ne Ahnung?

Larsi 6. Jan 2010 11:19

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:
Application.NormalizeAllTopMosts;
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Edit: Zu spät!

Ghostleader 6. Jan 2010 11:20

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:
if Key = vk_f4 and ssAlt in Shift then
begin
Key:= 0;
end;
Die andere Form soll immer aktiviert sein denn sie besitzt die Befehle:
Delphi-Quellcode:
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;
Also Form 1 ist eigentlich nur ein Bild, Form 2 soll dieses auf Tastendruck hervorheben oder verschwinden lassen.
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...

Ghostleader 7. Jan 2010 14:05

Re: Form in den Vordergrund holen
 
Hat niemand eine Idee wie ich das machen kann?

Ghostleader 8. Jan 2010 19:51

Re: Form in den Vordergrund holen
 
Ich denke das Thema kann geschlossen werden wenn keiner antwortet oder keiner eine Antwort weiß...;)
Mfg Ghost

toms 8. Jan 2010 19:55

Re: Form in den Vordergrund holen
 
Zitat:

Zitat von Ghostleader
.
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...

Du könntest ja einen globalen Hotkey registrieren

Ghostleader 8. Jan 2010 21:15

Re: Form in den Vordergrund holen
 
Wie meinst du das? Bei KeyDown hab ich schon Hotkeys definiert. Meinst du das - oder etwas anderes?

toms 9. Jan 2010 08:07

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 Bei Google suchenglobaler Hotkey Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.
Seite 1 von 2  1 2      

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