Ver Mensaje Individual
  #3  
Antiguo 03-07-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Angel.Matilla Ver Mensaje
Tengo una aplicación en BCB6 en la que varios de los formularios están definidos como fsMDIChild. Lo que me está pasando, que no se me había ocurrido, es que se puede abrir cada uno de estos formularios más de una vez y no se me ocurre como evitarlo.
La duda (y que cambia la respuesta) es żcómo estás creando los formularios?

a) Si estás usando las variables globales para los formularios debería bastar con preguntar si la variable está asignada o no y al cerrar el formulario asegurarte de ponerla a nil.

b) Si no estás usando variables globales, sino que los creas "al vuelo", deberás detectarlo, por ejemplo por la clase. O puedes almacenar una lista con los formularios creados. O determinar el criterio para la no duplicidad; Por ejemplo, poder abrir 2 formularios de cliente, pero NO 2 del mismo cliente.
En estos casos puedes consultar la lista de formularios creados usando TScreen.FormCount y TScreen.Forms (https://docwiki.embarcadero.com/Libr...een_Properties) o llevar la lista tú mismo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita