Delphi-PRAXiS

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 funzt bei zweiten Fenster nicht (https://www.delphipraxis.net/50955-fsstayontop-funzt-bei-zweiten-fenster-nicht.html)

DevilsCamp 3. Aug 2005 10:51


fsStayOnTop funzt bei zweiten Fenster nicht
 
Ich habe ein Programm (Form: Form1), bei dem ich FormStyle auf fsStayOnTop gestellt habe. Das funktioniert einwandfrei, bis ich aus diesem Fenster heraus ein zweites Fenster (Form2) (ebenfalls fsStayOnTop) mit Form2.ShowModal öffne.

Dann funzt weder bei dem einen noch bei dem anderen Fenster fsStayOnTop nicht mehr. Schliesse ich allerdings Form2, dann funktioniert fsStayOnTop von Form1 wieder.

Hat jemand eine Idee, was das sein könnte?

Luckie 3. Aug 2005 10:59

Re: fsStayOnTop funzt bei zweiten Fenster nicht
 
Zitat:

Zitat von DevilsCamp
Dann funzt weder bei dem einen noch bei dem anderen Fenster fsStayOnTop nicht mehr.

Japp, sehr gute Beschreibung der Symptome, damit kann man immer was anfangen. :roll:

Zitat:

Hat jemand eine Idee, was das sein könnte?
Die Logik? Überleg dir doch mal, wie viele Fenster es als aller oberstes geben kann.

DevilsCamp 3. Aug 2005 12:46

Re: fsStayOnTop funzt bei zweiten Fenster nicht
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von DevilsCamp
Dann funzt weder bei dem einen noch bei dem anderen Fenster fsStayOnTop nicht mehr.

Japp, sehr gute Beschreibung der Symptome, damit kann man immer was anfangen. :roll:

Naja, es sollte eigentlich klar sein, dass ALLE Fenster verdeckt werden können.


Zitat:

Zitat:

Hat jemand eine Idee, was das sein könnte?
Die Logik? Überleg dir doch mal, wie viele Fenster es als aller oberstes geben kann.
Auch wenn ich Form1 auf fsNormal stelle, dann sollte Form2 OnTop bleiben. Das tut es leider auch nicht.



Ich habe aber den Fehler gefunden. Wer will, kann ihn wie folgt reproduzieren:

Hier der QuellCode von Form1 (alle Properties ausser Größe des Forms sind Standard):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);

  Form2.ShowModal;

  Form2.Free;
end;

end.
in Form2 habe ich keine weiteren Komponenten erstellt und FormStyle im Objektinspektor auf fsStayOnTop gestellt.
Bei Klick auf Button1 von Form1 öffnet sich Form2 und kann verdeckt werden.

Ändere ich den QuellCode wie folgt ab:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);

  Form2.FormStyle := fsStayOnTop;

  Form2.ShowModal;

  Form2.Free;
end;
und stelle den FormStyle von Form2 im Objektinspektor auf fsNormal, dann funktioniert das alles so, wie man es erwartet:
Form2 kann nicht mehr verdeckt werden...

brechi 3. Aug 2005 12:52

Re: fsStayOnTop funzt bei zweiten Fenster nicht
 
[quote="Luckie"]
Zitat:

Zitat von DevilsCamp
Dann funzt weder bei dem einen noch bei dem anderen Fenster fsStayOnTop nicht mehr.

Japp, sehr gute Beschreibung der Symptome, damit kann man immer was anfangen. :roll:

Jeder mit gesundem Menschenverstand weiß was DevilsCamp damit meint. Auch wenn er hier die doppelte verneinung benutzt und die einfache meint. Aber von dir kennt man das wirklich aus vielen Threads das du erst einen Kommentar abgibst wo eigentlich mit bischen denken schon klar wird was gemeint ist. Dann poste doch besser gar nicht mehr bei solchen Threads Luckie. Danke


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