Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#3

Re: fsStayOnTop funzt bei zweiten Fenster nicht

  Alt 3. Aug 2005, 12:46
Zitat von Luckie:
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.
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...
  Mit Zitat antworten Zitat