Hallo,
ich habe eine MDI-Anwendung, in der fast alle Fenster als MDI-Child definiert sind. Ein Fenster kann ich aber nicht als MDI-Child-Fenster einrichten, weil es größer als das Hauptfenster ist. Hier soll den Kunden eine Artikelauswahl angezeigt werden, und deshalb erstreckt sich dieses Fenster auch noch auf den 2. Monitor. Vom Hauptfenster rufe ich dieses Fenster mit dem folgenden Code auf:
Delphi-Quelltext
1: 2:
| FArtikel2 := TFArtikel2.Create(self); FArtikel2.Show; |
Das funktioniert auch, aber wenn das Fenster bereits geöffnet ist, soll es bei einem erneuten Aufruf nur in den Vordergrund geholt, anstatt immer wieder neu erzeugt zu werden. Und das ist mein Problem.
Zuerst dachte ich, ich kann das Fenster mit ShowModal anzeigen (das wäre mir eigentlich am liebsten), aber da kommt eine Zugriffsverletzung. Warum eigentlich? Dann habe ich versucht, abzufragen, ob das Fenster schon geöffnet ist ( if TFArtikel2.showing ), aber da kommt auch eine Zugriffsverletzung.
Im Forum habe ich seitenlange Anleitungen gefunden, wie man sämtliche geöffneten Fenster in irgendwelche Stringlisten eintragen und komplette Fensterverwaltungen erstellen kann, aber hier, wo der Name des in Frage kommenden Formulars bekannt ist, muß es doch eine einfache Abfrage geben, so in etwa: if Fenster.schongeöffnet then Fenster.bringtofront else erzeuge es.
Irgendwie habe ich da wohl einen Denkfehler.
Danke Ebi