![]() |
Formular nur 1 mal erstellen lassen
Hallo nochmal :),
folgende Frage. Bei einem Klick auf einen Butto wird ein formular erzeugt, dass als MDI Child direkt im Programm geöffnet wird. Jetzt zu meiner Frage. Ich möchte, dass bei einem erneuten klick nichts mehr passiert, d. h. es soll MAX. 1 Formular erzeugt werden (damit nicht 5 formulare hintereinanderliegen). Meine Idee ist, das ganze mit Variable zu lösen, d. h. z. B. beim OnCreate eine variable zu füllen und diese dann beim button wieder abzufragen usw. Das ganze find ich aber nicht wirklich schön und verursacht nur unnötigen quellcode. Gibt es eine Funktion oder ähnliches, wo ich schon abfragen kann, ob ein formular schon vorhanden ist? Dankeschön |
Re: Formular nur 1 mal erstellen lassen
Überprüfe, ob schon eine Instanz besteht:
Delphi-Quellcode:
if not Assigned( Form) then
|
Re: Formular nur 1 mal erstellen lassen
und wieder was dazugelernt :), werd ich mir mal genau anschauen das ganze danke :)
|
Re: Formular nur 1 mal erstellen lassen
Du müsstest Screen.Forms[] durchlaufen und prüfen, ob es schon ein Formular von deiner Klasse gibt.
Delphi-Quellcode:
Ich an deiner Stelle würde viele MDI-Childs zulassen und dafür sorgen, dass eine Änderung in einem MDI-Child sich in den anderen Formularen entsprechend durchschlägt.
for i:=0 to screen.FormsCount-1 do
begin if screen.Forms[i] is TMyMDIClient then .... PS: bei MDI-Forms darf man die globlen Formvariablen, die Delphi pro Unit anlegt nicht benützen. Ansonsten würde das MDI-Konzept ad absurdum geführt. |
Re: Formular nur 1 mal erstellen lassen
also der vorschlag von mkinzler ist shcon sehr gut, nur wenn ich ich dann das mdi child schließe (destroy), dann erstellt es mir beim erneuten klick auf den button kein neues child mehr, d. h. ich kanns nicht mehr aufrufen
mal schaun wie ich das umgehen kann |
Re: Formular nur 1 mal erstellen lassen
Zitat:
|
Re: Formular nur 1 mal erstellen lassen
jep das funktioniert auch,aber ich frag mich irgendwie immer, wie kommt IHR so schnell drauf ich such zwar auch in der delphi hilfe aber genau das zu finden dauert bei mir imemr sehr sehr lang (inkl. internet recherche^^)
wo findet ihr das alles bzw. wie erschließt ihr euch das ganze immer? |
Re: Formular nur 1 mal erstellen lassen
Erfahrung
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz