Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fenster immer / nach Focusverlust in den Vordergrund (https://www.delphipraxis.net/45707-fenster-immer-nach-focusverlust-den-vordergrund.html)

EccoBravo 11. Mai 2005 08:47


Fenster immer / nach Focusverlust in den Vordergrund
 
Hallo, ich programmiere gerade eine Art Taschenrechner als 'Toolbox' für andere WINDOWS-Anwendungen.
Diesen Taschenrechner starte ich aus der TaskBar-NotificationArea heraus.
Dabei möchte ich diesen Taschenrechner - wenn ich nun in den anderen WINDOWS-Anwendungen bin - immer im Vordergrund sehen wie eine Toolbox.
Mit dem TForm-Ereignis 'OnDeactivate' oder der Form-Methode 'FormStyle:=fsStayOnTop' geht es nur innerhalb der Fenster einer eigenen Anwendung.
Meine Versuche mit in der FormCreate-Methode
Delphi-Quellcode:
TForm1.FormCreate(Sender:TObject);
begin
    Application.OnDeactivate
end;
bzw.
Delphi-Quellcode:
TForm1.FormCreate(Sender:TObject);
begin
    SetWindowPos(handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_ShowWindow)
end;
funktionieren nur in einem Demo-Programm mit einer sonst leeren FormCreate_Methode.
Kann mir jemand einen Tip geben ?

Gruss

E. B.

arbu man 11. Mai 2005 08:54

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
Regisriere die form einfach als appbar

EccoBravo 11. Mai 2005 09:55

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
Wie geht das ?

Danke

E. B.

Vjay 11. Mai 2005 12:23

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
Zitat:

Zitat von EccoBravo
Delphi-Quellcode:
TForm1.FormCreate(Sender:TObject);
begin
    SetWindowPos(handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_ShowWindow)
end;
funktionieren nur in einem Demo-Programm mit einer sonst leeren FormCreate_Methode.

Das kann eigentlich nicht sein, alternativ könntest du die WM_WINDOWPOSCHANGING abfangen und die Position manuell immer auf HWND_TOPMOST setzen.

arbu man 11. Mai 2005 12:51

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
Zitat:

Zitat von EccoBravo
Wie geht das ?

Danke

E. B.

hier en Turial dazu

antrophos 12. Mai 2005 15:45

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
ich stehe grad vor enem ähnlichen problem aber bin noch etwass neuling in delphi, ob jemand bitte mal die nötige prozedur posten könnte mit der man ein leeres form ontop bringt?

Vjay 13. Mai 2005 10:25

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
Also

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 setWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
 showmessage('hallo');
end;
funktioniert bei mir einwandfrei.

100nF 13. Mai 2005 13:34

Re: Fenster immer / nach Focusverlust in den Vordergrund
 
hallo,

vielleicht so?
Delphi-Quellcode:
with Self do
  SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
und das ganze in einen timer packen...


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