Ver Mensaje Individual
  #3  
Antiguo 21-08-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Reputación: 16
LoPiTaL Va por buen camino
Hola. Así a bote pronto (como dice el amigo Caral, sería interesante ver más código para poder ayudarte mejor) veo varias cositas:

1) La búsqueda la haces mal. No puedes poner el if N=false then.... dentro del for, ya que este if te lo hará para todos los formularios en pantalla. Será siempre false hasta encontrar el formulario que realmente habías creado tú, por lo que te ejecutará muchas veces ese código. Debes sacarlo del for.

2) No te deja clickar en el form padre porque usas f.Showmodal. Para poder clickar sobre otro formulario debes usar F.Show.

3) Usando lo indicado en 1) y en 2) podrás crear un formulario sin errores, pero cuando crees un 2º formulario te dará error de nombre repetido. Es lógico, dado que estás nombrando de la misma forma los dos formularios con la instrucción f.name:='IdChatXX'. Para corregirlo deberías usar F.Name:='IdChat'+inttostr(FormCounter), donde FormCounter lo inicializas a 0 en el FormCreate del padre y lo incrementas con cada formulario nuevo que creas. Ahora el problema es que ya no puedes usar if Screen.Forms[i].name = 'IdChatxx' para comparar. Ahora deberías usar if AnsiStartsStr('IdChat',Screen.Forms[i].name) then.... para ver si el nombre empieza con 'IdChat', independientemente del índice que le hayas dado.

Espero te haya ayudado la respuesta.
Un saludo,
LoPiTaL
Responder Con Cita