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 always on top? (https://www.delphipraxis.net/5438-always-top.html)

Mat 6. Jun 2003 03:25


always on top?
 
Hi,

ich moechte gern ein Formular meiner Anwendung always on top machen. Im Web hab ich ne Menge Code gefunden, z.B.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
end
aber die funktionierten alle nur auf dem Hauptformular, was mir nichts bringt.


Und dann ist mir noch was aufgefallen, wenn ich das Hauptfenster minimiere, verschwinden auch die anderen Fenster... kann man das unterbinden?


Danke

Mat

Specialwork 7. Jun 2003 00:30

Hallo Mat,

Suche mal in den Eigenschaften Deines Formulars, welches Du AlwaysOnTop haben möchtest nach dem Eintrag
Delphi-Quellcode:
FormStyle
, und setzte diesen auf
Delphi-Quellcode:
fsStayOnTop
.

Gruß, Tom

Mat 7. Jun 2003 00:35

danke Tom, aber das isses auch nich.

damit krieg ich das Formular nur vor allen anderen Formularen des Programms...

ich moechte es ja vor allen Windows-Programmen haben..


Mat

Specialwork 7. Jun 2003 00:39

Hallo Mat,

Tut mir leid, aber bei mir ist jenes Formular vor allen anderen Windows.
Vieleicht solltest Du die Funktion BringToFront mal ausprobieren.

Gruß, Tom

Mat 7. Jun 2003 00:51

echt, vor allen anwendungen?!

bei mir bewirkt das garnichts, weder bei der Hauptform, noch bei einer anderen... :(


Mat

Mat 7. Jun 2003 03:43

hmm.. hab jetzt die ganze zeit nach ner loesung gesucht..

zum einen hab ich gefunden, das FormStyle := fsAlwaysOnTop nicht mehr funktionieren soll (ich hab XP, evtl. geht's so nur bei aelteren windows versionen)


na jedenfalls hab ich noch nen bischen rumgespielt und nur zwei szenarien gefunden, in denen mein Code (erster Post) funktioniert:

1. es wird auf das Hauptformular angewandt
2. wenn es ein anderes Formular sein soll, muss es ein Modales (Form2.ShowModal;) sein..

beides ist fuer mich nicht akzeptierbar.. :(

hat jemand eine idee??


Mat

Mat 7. Jun 2003 23:50

ok, jetzt hab ich's

ich hab meinen code (setwindowpos ...) einfach in nen timer mit niedrigem intervall getan..


jetzt ist es immer oben, sogar ueber anderen 'always on top'-anwendungen :)



Danke nochmal

Mat

ps: ich hab das mit dem formstyle mal auf 98, ME, 2000 und XP ausprobiert, hat bei allen nichts bewirkt.. naja, egal, jetzt hab ich's ja

Stanlay Hanks 8. Jun 2003 07:36

Dann is irgendwas mit deinem Delphi...
Ich hab auch XP und da funzt das wunderbar.

Man liest sich, Stanlay 8)


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