![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() Hola compañeros, llevo un tiempo desconectado del club por motivos personales y laborales, me guataria que me ayudaseis con el siguiente problema que tengo:
Tengo una Form padre y una serie de foms hijos, que creo según se solicita, no tengo problemas a la hora de crarlos, mediante
Ni al destruirlos mediante el siguiente codigo en el evento Onclose del Form
El problema es que no se como evitar que si e abierto el Form de clientes lo pueda abrir de nuevo .
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#2
|
||||
|
||||
Tienes varias formas de hacerlo, yo normalmente lo hago así:
Tengo una unit de funciones comunes y entre ellas está esta: Código:
function AbreForm (Cclase : TFormClass; bMostrar: boolean; var Fnombre) : boolean; (* bMostrar indica si el formulario se visualizará o no *) var F : TForm; begin result := true; F := Application.FindComponent (copy(cClase.ClassName,2,255)) as TForm; if assigned(F) and bMostrar then begin F.Show; end else begin try Application.CreateForm (Cclase, Fnombre); if bMostrar then (Application.FindComponent (copy(cClase.ClassName,2,255)) as TForm).Show; except if assigned(TForm(Fnombre)) then Error(3, TForm(Fnombre).name) else Error (3,''); result := false; end; end; end; Código:
AbreForm(TFentradaUsuario,False,FentradaUsuario); FentradaUsuario.ShowModal; También se puede hacer directamente; Código:
AbreForm(TFentradaUsuario,True,FentradaUsuario);
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Gracias por tu rápida respuesta Casimiro, me parase una idea genial lo de agregarla a un unit de funciones, lo probare a partir de mañana y te digo como me fue. Un día de estos tendrimaos que juntar las funciones que usamos en un único fichero de todos los miembros, nos ayudaría mucho.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#4
|
||||
|
||||
Creo que para esto se pueden usar las propiedades MDIChildCount y MDIChildren de TForm.
Por ejemplo para un form2 se puede preguntar si ya está entre los que están creados/abiertos.
Puedes colocarlo dentro de un procedimiento para automatizarlo...
__________________
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. |
#5
|
||||
|
||||
Todos los días se aprende algo
![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Personalmente me gusta la idea de trabajar con una funcion, pero también admito que es más lógico el método de Neftali para las MDI. De Todas maneras me da un error en la funcion Casimiro, imagino que por culpa de algún uses?, el error es Operator semi colon justo en
, si me podéis decir cual es el problema y como se podría, si es posible convertir el método proporcionado por Neftali a una funcion. Muchas Gracias
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#7
|
||||
|
||||
#8
|
||||
|
||||
Cita:
Código:
procedure Error (iNumError : integer; cTexto : string); var cE : string; begin case iNumError of 0 : cE := cTexto; 1 : cE := cTexto; 2 : cE := cTexto; 3 : cE := 'Error al crear el formulario ' + cTexto; 4 : cE := 'Error al cerrar el formulario ' + cTexto; ... ...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Olvídense de escribir más código
![]() Cita:
__________________
eLcHiCoTeMiDo - Rompecorazones profesional Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos? Salva a un nylon, usa prendas de piel de foca ![]() |
#10
|
||||
|
||||
Cita:
![]() ![]() ![]() ![]() ![]() Para pensárselo... ![]() ![]() ![]()
__________________
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. |
#11
|
||||
|
||||
Cita:
![]() // Saludos |
#12
|
||||
|
||||
Gracias a todos por vuestras respuestas, la verdad es que
![]() Esto de programar para no quedarme desfasado, me esta costando y no se si me merece la pena seguir, por que noto que cada vez tengo más conceptos a los que no doy pie con bola. Con lo Facil que ere programar con clipper y lo controladito que lo tenia. ![]()
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#13
|
||||
|
||||
Clipper era pequeñito en comparación con los sistemas actuales, no son comparables, aunque finalmente sirvan para lo mismo, para guardar y extraer información.
No debes rendirte, escoge la forma que te resulte más cómoda o más clara, o más simpática, o más simple, o más elegante, o más enrevesada... da igual, mientras funcione ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
Gracias Amigo, llevo años peleándome con delphi y no pienso abandonarlo, aunque me tienta cosmos y velneo, pero no dejando delphi.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#15
|
||||
|
||||
Yo uso esta función simplona que crea un formulario MDI o lo muestra si ya existe:
forma de Uso:
Y voilá...reconozco que esta medio chapuceron pero hasta ahora me ha funcionado bien y simple, si la ventana no existe la crea, si ya existe la muestra.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#16
|
|||
|
|||
Ya q todos estan colocando sus rutinas ponga la mia
![]() No modal
Modal
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Barra de ventanas abiertas | Vlady | OOP | 3 | 10-02-2009 10:40:12 |
Saber cuantas ventanas tengo abiertas | caifan_0883 | API de Windows | 0 | 22-10-2008 00:26:55 |
For a todas las ventanas abiertas. | rauros | Varios | 1 | 03-08-2008 22:07:59 |
Cantidad de VEntanas abiertas | Paradiso | Varios | 1 | 22-06-2006 02:42:51 |
Ventanas abiertas | Isaac | Varios | 3 | 11-02-2004 16:44:37 |
![]() |
|