Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mal wieder StayOnTop (https://www.delphipraxis.net/52345-mal-wieder-stayontop.html)

tinibeenie 28. Aug 2005 14:10


mal wieder StayOnTop
 
Hallöchen!

In meinem Programm soll Form2 immer im Vordergrund bleiben. Bis jetzt hat es nicht funktioniert, folgende Wege habe ich schon probiert:
  • nur bei Form2 FormStyle auf fsStayOnTop gestellt,
  • bei Form1 und Form2 den FormStyle auf fsStayOnTop gestellt,
  • am besten funktioniert es mit
    Delphi-Quellcode:
    procedure TForm2.FormShow(Sender: TObject);
    begin
    SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
    SetWindowLong(Handle, GWL_HWNDPARENT, 0);
    end;
    allerdings erscheint dann Form2 extra in der Taskbar, das ganze Programm sollte insgesamt aber nur 1x in der Taskbar erscheinen.

Hat jemand eine Idee, wie man das machen könnte? Meine Forms haben alle BorderStyle bsNone, auf Form2 ist ein jvTransparentForm (macht aber glaub ich eh keinen Unterschied) und das ganze soll unter XP laufen.

phXql 28. Aug 2005 14:18

Re: mal wieder StayOnTop
 
wenn du mal die zeile mit dem SetWindowLong rausnimmst?

tinibeenie 28. Aug 2005 14:30

Re: mal wieder StayOnTop
 
Zitat:

Zitat von phXql
wenn du mal die zeile mit dem SetWindowLong rausnimmst?

Hab ich auch schon ausprobiert, es erscheint dann zwar kein neuer Eintrag in der Taskbar, aber ich bekomm eine Fehlermeldung (Zugriffsverletzung in Adresse...) oder es funktioniert gar nicht (je nachdem, bei welchem Form ich fsStayOnTop auf true setze).

Armageddon 28. Aug 2005 14:38

Re: mal wieder StayOnTop
 
Ich wollte mal das selbe machen wie Du aber hat auch nicht so hingehauen wie ich wollte. Habe es halt dann mit einem Timer gemacht.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Application.BringToFront;
end;
Ist zwar nicht grad die feine Art aber wollte mir kein Kopf mehr mit den anderen Methoden machen. Stehe sowieso grad mit Delphi auf dem Kiegsfuß. *grrrrr*

tinibeenie 28. Aug 2005 14:52

Re: mal wieder StayOnTop
 
Hab's grad mal ausprobiert. Es funktionierte auch, aber das Problem ist, dass ich dann mit anderen Programmen nicht weiterarbeiten kann (es ist nämlich nur so ein kleines Form, was dann unten rechts in der Ecke dauerhaft zu sehen sein soll, man soll inzwischen aber was anderes machen können). Außerdem fing das Programm in der Taskbar ab und zu an zu blinken, so als hätte man es gerade erst geöffnet.
Hast du da vielleicht irgendwelche Bedingungen gesetzt, wann der Timer anfangen soll zu laufen?

phXql 29. Aug 2005 19:26

Re: mal wieder StayOnTop
 
stay on top heisst ja auch nur, dass das formular von den fenstern der EIGENEN anwendung ist. andere anwendungen sind davon nicht betroffen. normalerweise geht das aber auch ohne SetWindowLong...

holliesoft 12. Sep 2005 16:01

Re: mal wieder StayOnTop
 
Hallo,

schau hier einmal hier:

http://groups.google.de/group/borlan...360bcb446012af

und hier:

http://groups.google.de/group/borlan...9fda46db846ee1


Hatte das Problem auch gehabt...

Gruß
Patrick

n0b0dy 18. Okt 2005 21:17

Re: mal wieder StayOnTop
 
hi,

habe das gleiche problem. möchte eine Form immer im Vordergrund haben. Leider habe ich auch diesen zweiten Taskbareintrag, den ich nicht haben will. Kann mir jemand helfen. Konnte hier keine Lösung "rauslesen" :gruebel:

himitsu 19. Okt 2005 00:22

Re: mal wieder StayOnTop
 
Der zweite Taskbareintrag kommt durch dieses
Delphi-Quellcode:
SetWindowLong(Handle, GWL_HWNDPARENT, 0);
Hast du es mal ohne diese Änderung des Parentwindoweintrags versucht?


Es gibt aber auch noch die Möglichkeit den Taskbareintrag der Anwendung zu entfernen,
dieses könntest du ja mal auf den Eintrag der Form anwenden?

n0b0dy 19. Okt 2005 00:29

Re: mal wieder StayOnTop
 
wenn man das weg lässt, ist es nicht wirklich immer im vordergrund. mache ich den tasbareintrag weg, auch nicht mehr....


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.
Seite 1 von 2  1 2      

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