![]() |
Thread y Form
Hola, me gustaría saber si es posible realizar lo siguiente:
Estando en un Thread, ¿como puedo crear un Form, sin que continue ejecutandose el Thread? Código:
procedure Hilo_Cliente.Execute; Muchas gracias de antemano... |
Mirate los metodos de la clase TThread (Suspend, Resume, Terminate) en la ayuda del Delphi.
Creo que con el nombre ya pagan. Saludos, |
Tony, la cosa es que si el form que creo es dinámico, vamos sin usar ningun form ya hecho, no hay ningun problema, va perfectamente. Pero si quiero usar un form que lo tenga definido en un dfm no hay forma...
Lo que me interesa, es crear el form dinámicamente, pero pudiendo modificar el Form desde el propio delphi... Un ejemplo para que me entiendas mejor: Código:
procedure Hilo_Cliente.Execute; Pero lo que me interesa, es hacer lo mismo, pero envez de tenerle que meterer los datos manualmente: Código:
Ventana.Name := 'Prueba'; Código:
procedure Hilo_Cliente.Execute; Código:
Canvas does not allow drawing |
Synchronize ();
Hola progmaq, todos los objetos de la biblioteca de componentes visuales creados en tiempo de diseño pertenecen al programa principal, por lo que no es posible que desde el método execute de un hilo pueda accederse de forma directa a sus propiedades o realizar llamadas a sus métodos. En estos casos es necesario utilizar el procedimiento synchronize () al que pasaremos como parámetro un método definido por nosotros. Dicho esto prueba lo siguiente (en la parte private declaras el procedimiento):
luego haces en él lo que querías y lo llamas desde Execute a través de Synchronize: Espero que así se solucionen trus problemas.Saludos. |
S.M.S muchísimas gracias por la ayuda ofrecida, me lleve horas buscando por google, buscando en este foro y buscando en la ayuda de los form y los thread... y si no llegas a ser por ti, no lo hubiera conseguido nunca.
Solo decirte que soy el programador de DuRiE, (no pongo la WEB por si a los moderadores les importa) y nada, que en la proxima versión, pondre que si no llega a ser por ti, la Activacion de los servidores WALLA no hubiera sido posible... Pues nada, un saludo y "Eres un CRACK" ;) PD: Muy bien explicado |
La franja horaria es GMT +2. Ahora son las 02:24:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi