FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
TForm.Create Nombre dupplicados - Chat
hola amigos.
Estoy creando una mini aplicacion tipo live help o mini chat Ya tengo la coneccion con el servidor, y ahora lo que necesito es crear un form para mostrar nuevos mensages. Buscando en el foro encontre algunas soluciones, pero no logro: 1- Al crear al nuevo Form, que me detecte nombre duplicados. 2- Que se vea en la barra de tareas de windows el nombre del nuevo form creado. Para detectar ventanas duplicadas estoy intentando esto:
El problema es que me crea el form IdChatxx, pero no me deja cliquear al form1 o form padre. Aunque intento buscar el nobre, igual me crea al form y me lanza error de duplicate names Gracias por su ayuda amigos |
#2
|
||||
|
||||
Hola
Interesante seria ver el codigo completo. Saludos
__________________
Siempre Novato |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
Hola adonias.
Cita:
Y si la mostrás en forma modal no te va a dejar abandonar el creado. La forma típica de mostrar una ventana no modal es:
Llamada:
Si no es esto lo que estás buscando, como dice el amigo Caral arriba, especificá un poco más. Saludos. Última edición por ecfisa fecha: 21-08-2010 a las 22:37:56. |
#5
|
||||
|
||||
Ok.
logre resolver el problema 1, junto al de no poder cliquear el form padre asi:
No se si sera la mejor manera, pero me resulto. Ahora solo me falta mostrar el form IdChatxx, en la barra de windows |
#6
|
||||
|
||||
Encontre esto en el foro.
Supuestamente deberia aplicarce para todos los form que se generen, pero solo funciona para el form1
Alguna idea de lo que puede ser? |
#7
|
||||
|
||||
Hola adonias.
No, supuestamente se puede aplicar en la creación de un componente, en este caso un TForm, aunque bién podría ser cualquier TWinControl. Es decir que si sobreescribís el método CreateParams para el Form1, tenés que hacer lo propio para todos los Forms en los cuales desees alterar la creación por defecto de los mismos. Saludos. Última edición por ecfisa fecha: 23-08-2010 a las 08:04:32. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ventana en TForm | Builder 6.0 C++ | C++ Builder | 4 | 11-02-2009 16:02:53 |
TService y TForm | Softweb | API de Windows | 5 | 20-10-2008 17:41:01 |
como hacer una especie de chat(consulta chat) | bellleti | Conexión con bases de datos | 3 | 10-07-2007 13:30:01 |
Mostrar nombre de campos y filtar nombre de tablas .db en un combobox | Coco_jac | Varios | 1 | 24-06-2006 01:34:29 |
Refrescar mi tform.... | Kamikaze | OOP | 3 | 17-11-2004 22:09:25 |
|