FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Crear TForm en Runtime
Hola amigos del foro.
Tengo una pregunta para ustedes. Estoi haciendo una aplicacion que es un chat, con el cual se puede escribir en un canal abierto y lo pueden ver todos los usuarios conectados. Ahora bien, quiero tener la posibilidad de tener una conversacion privada (como un messenger), en donde al apretar el boton de mensaje privado, me abra una ventana por cada usuario (tal cual como es messenger) El asunto es que no puedo tener miles de form creados e ir poniendolos visibles. Mi idea es crear form en runtime, con este código.
aparte del form necesito crear un TEdit y un TMemo, el problema es que en la propiedad parent, no se como hacer referencia al TForm recien creado, porque si lo dejo como SELF, lo crea en el form en donde aprete en boton de mensaje privado. Otra cosa, al apretar el boton de mensaje provado, y crea el componente TForm, antes de crear debiese comprobar si es que existe o no, sino me arroja un error de que ya existe un componente con ese nombre... como se hace para saber si existe o no algun componente? Bueno, espero que me puedan ayudar. Saludos y muchas gracias |
#2
|
||||
|
||||
Para referenciar al formulario recién creado necesitas asignarlo a una variable al momento de crearlo:
Pero por otra parte, no veo la necesidad de construir cada componente del formulario. Crea un formulario TVentanaPrivada (en tiempo de diseño) al que le pones todos los controles que necesites para ese formulario, lo quitas del AutoCreate y al moento de necesitar un privado creas tu formulario:
// Saludos |
#3
|
|||
|
|||
me parece una buena idea, pero de esa manera solo podre tener un solo privado a la vez.
siguiendo con la idea original, tengo un codigo que esta algo asi:
a donde quiero llegar con todo esto, el asunto es que como tengo varios form de mensajeria privada, necesito identificar en donde escribir lo que estoi mandando... es decir en cual TForm creado escribo lo que acabo de mandar al usuario en particular. el codigo expuesto, no tira error al compilar, pero si al ejecutar el procedimiento. espero me puedan ayudar. Gracias |
#4
|
||||
|
||||
Cita:
Y yo lo que haría es llevar una lista (TList, TObjectList e incluso TStringList) de las ventanas privadas. // Saludos |
#5
|
|||
|
|||
Cita:
Por ultimo mjj, tengo que confesarte que tu razonamiento esta del todo equivocado, creo que te faltan ciertas bases necesarias para que puedas continuar programando tu aplicacion, y esa base se llama POO. Última edición por Cheerpipe fecha: 15-04-2009 a las 03:50:00. |
#6
|
||||
|
||||
Cita:
En lo que si tal vez se podría llegar a discutir si es viable el uso de tener la lista.... La lista está hecha... en SCreen.Forms Saludos, |
#7
|
||||
|
||||
¡Ah! Esto sí estuvo gracioso
Un TForm es una clase, un TVentanaPrivada es una clase (que hereda de TForm), un TList es una clase. Delphius: Screen.Forms es una lista de todas las ventanas creadas, pero yo usaría una lista específica puesto que en ScreenForms puede haber muchas otras formas que no interesan. // Saludos |
#8
|
|||
|
|||
seguramente me falta muchisimo que aprender, pero de apoco es la cosa...
porque no me echan una mano con este problemita... como debiera quedar mi codigo pa que funcione... |
#9
|
|||
|
|||
Cita:
Mjj esta usando un enfoque esteucturado, y POO . Insito en que el amigo Mjj, podria partir por instruirse que es POO, con eso se le ará mas facil comprender el ejemplo de Roman, ya que es justamente, un enfoque muy correcto, digo muy correcto, porque siempre hay mas de 1 forma de solucionar un problema . |
#10
|
||||
|
||||
Cita:
Tal vez sea mucho más directo disponer de esa lista... pero con tal de evitarme estar haciendola yo me digo: "Va, que más da... si ya hay una usarla e ignorar las forms que no van" Cita:
Cita:
Si me das un tiempo a que los cables se conecten y funcionen tal vez pueda ver el tema con mayor atención. Saludos, |
#11
|
||||
|
||||
Cita:
Cita:
Además eso te permite tener controlados los form que creas y tienes creados y realizar operaciones con ellos. Como bien te ha dicho Román no hace falta que crees el form en ejecución. Creo que lo más sencillo es un ejemplo; Aquí te adjunto uno, además puedes controlar al tenerlos en la lista cosas como que la ventana privada ya esté abierta. Échale un vistazo a ver si te sirve.
__________________
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear un Shape en Runtime | David78 | Gráficos | 4 | 28-04-2010 23:03:54 |
Crear imagen en runtime | salvica | Gráficos | 1 | 03-01-2008 18:58:16 |
Crear columnas en runtime | Pedro-Juan | OOP | 8 | 09-02-2007 13:38:18 |
Crear índice en runtime | Gabriel2 | Tablas planas | 2 | 17-11-2005 23:19:00 |
Crear QuickRep en RunTime | MLePuff | Impresión | 2 | 18-10-2005 06:32:23 |
|