Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm ohne Focus in den Vordergrund (https://www.delphipraxis.net/53210-programm-ohne-focus-den-vordergrund.html)

5t0n3 12. Sep 2005 11:57


Programm ohne Focus in den Vordergrund
 
Hallo Leute,

ich habe ein Anrufprogramm geschrieben, welches eine Nachricht ausgibt, sobald jemand anruft.
d.h., dass sobald ein Anruf kommt, erscheint rechts unten ein kleines Fenster, welches die Rufnummer anzeigt.
Mein Problem ist jetzt aber, dass es automatisch in den Vordergrund kommt, aber die anderen Programme, die gerade laufen nicht beeinträchtigt. Das mit dem in den Vordergrund legen, habe ich schon geschafft. Aber wenn man ein anderes Programm am laufen hat und ein Anruf kommt, wechselt der Focus automatisch auf mein Programm, was ich nicht möchte. Man soll zwar die Nachricht sehen können, aber dadurch nicht beim arbeiten gestört werden.

Bin dankbar für jede Idee
Daniel

n0b0dy 12. Sep 2005 18:14

Re: Programm ohne Focus in den Vordergrund
 
hi,

ich würde das dann folgendermaßen machen:
1. Handle, was akutell den Fokus hat, bestimmen
2. Dein Programm anzeigen, StayOnTop setzen
3. Fokus an Handle geben

Das geht solange, wenn das andere Fenster nicht auch StayOnTop ist. Denn das Fenster, was StayOnTop ist UND den Fokus hat, ist über dem, was nur StayOnTop ist.


[EDIT]
weiß ja nicht genau was du vor hast, aber für solche alerts nehm ich immer das JvDesktopAlert von den Jedis. Ich finds genial. UND man kann es so einstellen, dass es beim erscheinen StayOnTop ist und den Fokus NICHT an sich "zieht"...
[/EDIT]
MfG

5t0n3 13. Sep 2005 09:23

Re: Programm ohne Focus in den Vordergrund
 
Hi N0b0dy,

wofür ist das JvDesktopAlert genau/ was kann man damit alles machen?
Ich hab mein Problem jetzt über ne nicht ganz elegante Variante gelöst:
Ich habe ein zweites Programm geschrieben, welches vom Hauptprogramm aufgerufen wird.
Sobald ein Anruf kommt, wird das zweite Prog mit FormStyle := fsStayOnTop in den Vordergrund geholt, ohne den Focus zu bekommen.

Gruß
Daniel

Robert Marquardt 13. Sep 2005 09:28

Re: Programm ohne Focus in den Vordergrund
 
Die korrekte Funktion dazu sollte SetWindowPos mit hWndInsertAfter = HWND_TOPMOST und uFlags = SWP_NOACTIVATE or SWP_NOSIZE or SWP_SHOWWINDOW sein.

n0b0dy 13. Sep 2005 09:32

Re: Programm ohne Focus in den Vordergrund
 
also dieses JvDesktopAlert ist ein vielseitig einsetzbares "Fesnter" was mit vielen Effekten eingblendet werden kann. u.A. ein sehr guter style!

ich würde ihn dir ja gerne zeigen, nur leider bekomme ich von dem teil keinen Screenshot, obwohl es ganz oben ist...irgendwas hat das teil ansich, dass es nicht den fokus "klaut" und auf keinem screenshot erscheint ;)

aber es gibt eine Demo Exe dazu.... (sourceforge.net)


Gruß
n0b0dy


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