Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form auf fsStayOnTop setzen (https://www.delphipraxis.net/5338-form-auf-fsstayontop-setzen.html)

Tim.exe 2. Jun 2003 13:40


Form auf fsStayOnTop setzen
 
Hallo,

ich schaffe es irgendwie nicht eine Form auf 'fsStayOnTop' zu setzen.

Habe folgendes schon ausprobiert:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.FormStyle := fsStayOnTop;
Form2.ShowModal;
end;
Selbstverständlich ist im Objektinspektor von Form2 auch fsStayOnTop deklariert...aber es will nicht...

Tim.exe 2. Jun 2003 14:03

OK, habs schon:

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
Hab mich vorhin auch verschrieben gehabt, habe da ...NOTOPMOST... geschrieben, und dann funktionert es natürlich nicht :mrgreen:

roderich 2. Jun 2003 14:21

kapier ich nicht. Wenn Du Form2 modal anzeigst, ist es doch sowieso vor den anderen Formularen ?!?!?

Roderich

Stanlay Hanks 2. Jun 2003 14:26

Ich glaub Stay On Top is, dass das Form immer oben bleibt, auch wnn man zu ner anderen Anwedung wechselt.

Tim.exe 2. Jun 2003 14:28

Zitat:

Zitat von Stanlay Hanks
Ich glaub Stay On Top is, dass das Form immer oben bleibt, auch wnn man zu ner anderen Anwedung wechselt.

Ganz genau so is it :D

roderich 2. Jun 2003 15:32

Ich weiß nicht welche Delphi-Version ihr habt, aber bei 5 und 6 bedeutet fsStayOnTop, dass das Form vor anderen nicht-modalen Forms der gleichen Anwendung ist.

Also nix mit vor allen anderen Anwendungen.

Roderich

mschaefer 13. Jan 2004 16:50

Re: Form auf fsStayOnTop setzen
 
Moin, moin

Tja, bei mir funtkioniert das seltsamerweise überhaupt nicht.


Delphi-Quellcode:
 
   procedure TForm2.FormShow(Sender: TObject);
   begin
     SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   end;
Gibt es da noch einen Trick. Wenn ich die nächste Applikation starte setzt die sich dreisterweise hleich in den Vordergrund

[edit=Luckie]Smilies durch Delphi-Tags ersetzt. :roll: Mfg, Luckie[/edit]

Luckie 13. Jan 2004 17:00

Re: Form auf fsStayOnTop setzen
 
Man kann wohl nur das Hauptformular / Fenster auf "StayOnTop" setzen.

mschaefer 13. Jan 2004 17:39

Re: Form auf fsStayOnTop setzen
 
Danke Lcuckie,


auch für die Nachformatierung (mir ist der Browser abgestürtzt und da gingen die Skripte nicht mehr)
Ja ich wollte das Stay on Top mit einem Splash-Screen realisieren und da das eigentliche Programm
nur einen kleinen Teil des Bildschirms bedeckt, sollte das Splasch-Form sich auch nicht von anderen
Anwendungen währedn etwa vier Sekunden unterdrücken lassen. Tja nochmal drüber knoblen was ich da
nun mache :?


Grüße aus der Stadt an der "wässrigen Leine"

// Martin

mschaefer 13. Jan 2004 19:53

Re: Form auf fsStayOnTop setzen
 
Moin, nochmal,

:idea: :idea: :idea:
hatte gerade noch einen Zufallstreffer: Man kann auch Nicht-Hauptformulare auf StayOnTop bringen.

1. Hauptformular auf Stay-onTop setzen
2 Unterfomular auf StayOnTop setzen
3 Im Unterformular unseren WinApi aufruf durchführen

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
So habe ich jetzt auch meinen Splash-Screen auf StayOn top bis ich Ihn nach drei Sekunden
per Timer schließen lasse.

Schönen Anbend noch... // Martin

:P


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