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...