![]() |
Re: mal wieder StayOnTop
das, das fenster dann nicht im Vordergrund liegt hängt höchstwahrscheinlich damit zusammen das, das fenster nochmal neu creiert wird (RecreateWnd). Man sollte also sicherstellen das solche Sachen wie "FormStyle", "Position" etc. des Formulars auf Standard stehen damit eben sowas nicht passiert. Oder eben diese Anweisungen erst dann ausführen wenn all diese Sachen abgearbeitet wurden (also frühestens nach dem ersten OnShow)
|
Re: mal wieder StayOnTop
das ist ein fenster, was je nach wunsch angezeigt werden kann. es wird mit .Hide versteckt und mit .Show wieder angezeigt...
|
Re: mal wieder StayOnTop
Liste der Anhänge anzeigen (Anzahl: 1)
also bin bald am verzweifeln :?
habe mal ein bspprog angehängt. die form1 hat keinen taskbareintrag. ruft man Form2.Show auf, hat ist es zwar "Immer im Vordergrund", aber hat einen Taskbareintrag. dieser taskbareintrag soll jedoch auch nicht vorhanden sein. Kann mir jemand helfen? |
Re: mal wieder StayOnTop
Von meinen
![]()
Delphi-Quellcode:
Da das aber mein erster richtiges Projekt mit direkter WinAPI-Nutzung war, bin ich mir nicht sicher, ob ich dieser damit nicht irgendwie ans virtuelle Schienbein trete :stupid: .
procedure TBlobForm.FormShow(Sender: TObject);
begin // Setzt Fenster an die vorderste Front SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); // Setzt Parent auf den Desktop SetWindowLong(Handle, GWL_HWNDPARENT, 0); // Versteckt das Fenster in der Taskleiste SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); end; Funktionieren tut es aber. |
Re: mal wieder StayOnTop
hm. habs versucht aber genau das gleiche prob.... :(
[Edit] Die Viecher sind genial :D |
Re: mal wieder StayOnTop
Hallo,
liest denn keiner mein Posting oben dazu? Ich hatte 2 Links gepostet... :roll: Zitat von dem einen Link: You may try adding Application->RestoreTopMosts(); to the OnDeactivate event handler. Also, bei TApplication.OnDeactivate sollte ein Application.RestoreTopMosts ausgeführt werden. Dann reicht auch
Delphi-Quellcode:
bei der Form2 und es gibt keinen Eintrag in der Taskbar. Hab das so bei meinem Programm
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); ![]() Gruß Patrick |
Re: mal wieder StayOnTop
naja,
das funktioniert innerhalb der Anwendung aber nicht überall. mit diesem Code ist Form2 innerhalb der Anwendung StayonTop und das auch ohne Taskbareintrag, aber damit ist nicht das forumlar für windows "Immer im Vordergrund".... habs eben getestet |
Re: mal wieder StayOnTop
Hi n0b0dy,
hast Du denn beim
Delphi-Quellcode:
ein
TApplication.OnDeactivate
Delphi-Quellcode:
ausgeführt?
Application.RestoreTopMosts
|
Re: mal wieder StayOnTop
ja hab ich. will trotzdem net. ich habe die befürchtung dass meine style komponente (sry, vergessen zu erwähnen) das irgendwie verändert...
ich mach den style mal weg und teste es nochmal. |
Re: mal wieder StayOnTop
also, habs nochmal probiert und holliesoft's lösung funzt einwandfrei.
das lag an meinem style, der das wieder rückgängig gemacht hat. also einfach im OnShow folgendes ausführen ...
Delphi-Quellcode:
... und im Application.OnDeactivate das hier ausführen:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Delphi-Quellcode:
Application.RestoreTopMosts
Ciao |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 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