Das ist mir schon klar.
Ich habe folgendes probiert:
Delphi-Quellcode:
Unit Unit1;
Interface
Uses
Forms, Controls, StdCtrls, Classes, ExtCtrls;
Type
TForm1 =
Class(TForm)
Timer1 : TTimer;
Button1 : TButton;
Procedure Button1Click(Sender: TObject);
Procedure Timer1Timer(Sender: TObject);
End;
Var
Form1 : TForm1;
Implementation
Uses
Unit2, Unit3;
{$R *.dfm}
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Form2.ShowModal;
End;
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Timer1.Enabled:=False;
Form3.ShowModal;
Timer1.Enabled:=True;
End;
End.
Wenn nun Fenster 3 kommt, kann ich nicht mehr auf den Button (zum Öffnen von 2) von Fenster 1 klicken. Das ist OK, weil Fenster 2 in meinem Programm vom Client.Socket geöffnet wird. Ist Fenster 2 aber schon offen, öffnet sich Fenster 3 und ich kann mit Fenster 2 ebenfalls nichts mehr anfangen.
Da stellt sich mir bloß am Rande auch die Frage: Obwohl beide Fenster mit ShowModal angezeigt werden. Warum schafft es Fenster 3 immer, sich "vorzudrängeln"?
Falls das nicht verständlich ist, muss ich wegen meines Problems wohl etwas weiter ausholen:
Mein Programm hat im Grunde
kein MainForm. Es wird nur im SystemTray angezeigt, hat ein Popup und je nach dem, welcher Menüeintrag gewählt wird, kommt das eine oder andere Fenster zum Vorschein. Die einzige Ausnahme soll das Fenster mit den Systemmitteilungen sein. Die Fenster sind daher quasi gleichrangig.
Gruß, Alex