Entwickler-Ecke

Sonstiges (Delphi) - Wie kann man zwei Fenster bei Programmstart öffnen?


fbkreon - So 22.09.02 23:39
Titel: Wie kann man zwei Fenster bei Programmstart öffnen?
Ich möchte gerne neben dem Hauptfenster beim Programmstart ein kleines Fenster öffnen und fokussieren, um dort z.B. eine Passwortabfrage zu realisieren. Alle on..Events der MainForm bringen aber nur ne Fehlermeldung und ein einfaches "zweitfenster.show;" bringt den gleichen Effekt. Kann mir jemand einen Hinweis dafür geben?

Habt schon mal vielen Dank im Voraus.


LCS - Mo 23.09.02 06:22

Hi
wäre hilfreich wenn du mal deinen Code mit dem Aufruf und die Fehlermeldung posten würdest.

Gruss Lothar


fbkreon - Mo 23.09.02 10:17

also bisher habe ich der Form1 -> Hauptfenster folgendes mitgegeben:

Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormCreate(Sender: TObject);
begin
{.....}
zweitfenster.show;
end;

und habe es mit verschiedenen onEvents in den Properties versucht. Das erzeugt dynamische Adreßüberläufe. Das ist auch verständlich, denn wenn das Hauptfenster generiert wird, werden alle anderen Fenster erst danach generiert und deshalb sind sie nicht aufrufbar. Aber wie kann ich denn feststellen, ob ein Fester fertig ist und die application komplett läuft, um dann das zweitfenster aufzurufen?


wwerner - Mo 23.09.02 10:22

http://www.faqsen.de/delphi/faq.jsp?ID=485648534850495548505154


LCS - Mo 23.09.02 11:05

Hi
am besten nimmst du das Password-Formular aus der Liste er automatisch erstellten Formulare raus (Projektoptionen). Um das 2. Formular anzuzeigen, kannst du dann OnActivate verwenden

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.FormCreate(Sender: TObject)
begin
  bAnzeige := True;  //eine globale Variable
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  if bAnzeige then begin
    bAnzeige := False;
    Form2 := TForm2.Create(self);
    Form2.Show;
  end;
end;


In Formular 2:

Quelltext
1:
2:
3:
4:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;


Oder du machst es wie in dem Link von wwerner beschrieben in der DPR-Datei.

Gruss Lothar


fbkreon - Mo 23.09.02 11:25

Mir persönlich gefällt die zweite Variante besser, da die erste das Problem hat, daß wenn der Result False ist, die PasswortForm dennoch geschlossen wird. Bei der zweiten Variante öffnet sich zwar das Hauptfenster mit, aber das ist weniger das Problem.

vielen Dank für Eure große und schnelle Hilfe.