Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: ShowModal im Hintergrund vs. Show mit Rückgabewerten

  Alt 7. Dez 2009, 17:52
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
Alex Winzer
  Mit Zitat antworten Zitat