Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi fsStayOnTop funktioniert nicht (https://www.delphipraxis.net/84285-fsstayontop-funktioniert-nicht.html)

DevilsCamp 14. Jan 2007 19:57


fsStayOnTop funktioniert nicht
 
Ich habe ein Programm, bei dem ich per Checkbox ein weiteres Fenster (Form2) anzeigen lassen kann. Dabei ist
Delphi-Quellcode:
  Form2.FormStyle := fsStayOnTop;
(im OI eingetragen)


Die OnClick-Methode der Checkbox hat folgenden Code:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
  begin
    Application.CreateForm(TForm2, Form2);
    Form2.Show;
  end
  else
  begin
    Form2.Close;
    Form2.Free;
  end;
end;
Doch leider wird dieses zweite Fenster NICHT fsStayOnTop. D.h. wenn ich ein anderes Programm aktiviere, bleibt Form2 leider nicht im Vordergrund.
Ich habe auch schon den Versuch unternommen und Form2 direkt bei Programmstart laden zu lassen. Ebenfalls ohne Erfolg. Habe ich irgendwas übersehen?

mkinzler 14. Jan 2007 20:02

Re: fsStayOnTop funktioniert nicht
 
Die Eigenschaft wirkt m.W. nur für Fenster der selben Anwendung

DevilsCamp 14. Jan 2007 20:07

Re: fsStayOnTop funktioniert nicht
 
Gibt es eine Möglichkeit, dies Systemweit zu machen?

DGL-luke 14. Jan 2007 21:48

Re: fsStayOnTop funktioniert nicht
 
MSDN-Library durchsuchenSetWindowPos.

Allerdings steht überall dabei, dass man sich nicht 100%ig drauf verlassen kann.

Delphi Star 15. Jan 2007 05:03

Re: fsStayOnTop funktioniert nicht
 
fsStayOnTop wirkt nur auf alle Fenster, wenn es im Hauptformular eingestellt ist.
Delphi-Quellcode:
form2.BringToFront;
Damit kann man das Formular in den Vordergrund bringen. Man muss es nur immer wieder wiederholen.

DevilsCamp 15. Jan 2007 07:21

Re: fsStayOnTop funktioniert nicht
 
Zitat:

Zitat von Delphi Star
fsStayOnTop wirkt nur auf alle Fenster, wenn es im Hauptformular eingestellt ist.
Delphi-Quellcode:
form2.BringToFront;
Damit kann man das Formular in den Vordergrund bringen. Man muss es nur immer wieder wiederholen.

Ist das nicht ein bisschen umständlich? Es funktioniert zwar, aber trotzdem sollte es doch einfacher gehen...

Reinhard Kern 15. Jan 2007 10:00

Re: fsStayOnTop funktioniert nicht
 
Zitat:

Zitat von DevilsCamp
Zitat:

Zitat von Delphi Star
fsStayOnTop wirkt nur auf alle Fenster, wenn es im Hauptformular eingestellt ist.
Delphi-Quellcode:
form2.BringToFront;
Damit kann man das Formular in den Vordergrund bringen. Man muss es nur immer wieder wiederholen.

Ist das nicht ein bisschen umständlich? Es funktioniert zwar, aber trotzdem sollte es doch einfacher gehen...

Hallo,

du must dir nur vor Augen halten, dass andere Programmierer ihr Fenster auch als Top-Fenster sehen wollen und dazu auch das gleiche tun können - es kann aber nur eines geben. Das ist dann wie beim Einkaufen, wer sich am brutalsten nach vorne drängelt, hat Erfolg.

Egal welche Funktion angewandt wird, ein Konkurrent könnte ja das Gleiche tun. Dann ist das letzte nach vorne gebrachte Fenster vorne, weil das logisch gesehen die einzig sinnvolle Konsequenz aus der Patt-Situation ist.

Gruss Reinhard

DevilsCamp 15. Jan 2007 10:11

Re: fsStayOnTop funktioniert nicht
 
Das verstehe ich ja. Aber wie kommt es, dass ein Topmost Fenster von Nicht-Topmost Fenstern überlagert wird. DAS ist es, was mich wundert.

DGL-luke 15. Jan 2007 10:13

Re: fsStayOnTop funktioniert nicht
 
Danke für das konsequente ignorieren meiner posts.

Zitat:

Zitat von DGL-luke
MSDN-Library durchsuchenSetWindowPos.

Allerdings steht überall dabei, dass man sich nicht 100%ig drauf verlassen kann.


Reinhard Kern 15. Jan 2007 14:12

Re: fsStayOnTop funktioniert nicht
 
Zitat:

Zitat von DGL-luke
Danke für das konsequente ignorieren meiner posts.
...

Hallo Luke,

das Aneinander-Vorbei-Posten ist halt fester Bestandteil der Internet-Kultur. Betrachte es einfach als Vorbereitung für eine Politiker-Karriere.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Seite 1 von 2  1 2      

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