FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Iniciar un TThread en un Form crear en runtime
Hola amigos:
Tengo un problema que no consigo resolver, ni encontró información en Internet. Tengo un programa principal, que ha modo de menú general, abre diferentes formularios con el procedimiento:
Esto, me funciona perfectamente hasta que en un formulario abierto en tiempo de ejecución, intento crear un nuevo hilo. El programa es una prueba de programa multi hilo, que me baje de Internet.
Cuando lo ejecuto se ejecuta synchronize y pasa a ejecutar ActualizarTexto me da el siguiente error: 'Access violation at address 00A16CD2 in module 'MenuAplicacion'.Read of address '00000390'. En cambio si lo ejecuto como programa principal, funciona perfectamente y no da ningún error. Agradeceré cualquier ayuda |
#2
|
||||
|
||||
No parece que en ese código exista ningún problema, pero habría que ver el código completo de la llamada y del Thread.
La mayoría de los problemas con hilos llegan por intentar acceder a elementos que no están definidos en el thread (sin sincronizar). Con esto que pones es difícil....
__________________
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. |
#3
|
|||
|
|||
Lo curioso es que si arranco directamente el programa que ejecuta el TThread, funciona correctamente.
El error lo da si genero el formulario en runTime |
#4
|
||||
|
||||
joseprad,
Cita:
1- ¿El formulario Form8 esta instanciado al momento de la falla? 2- ¿Puedes colocar el código es cuestión para analizar el problema? Espero sea útil Nelson. |
#5
|
|||
|
|||
Hola Nelson.
Te adjunto el código completo del Form8
Este programa que no es mas que un contador, funciona perfectamente. Pero si lo arranco desde otro programa con:
entonces me da el error. Saludos |
#6
|
|||
|
|||
Cita:
Hola. Si te fijas en el código en rojo estas utilizando la variable Form8 que hace referencia a la clase TForm8, a la cual no le estas asignando ningún valor por lo que tiene un valor nil o nulo y si intentas hacer referencia a esta (invocar métodos o acceder a sus propiedades) Delphi te devolverá un error "Acces Violation". Una solución para tu caso es asignarle la referencia del formulario creado para que puedas acceder a él.
try..finally |
#7
|
|||
|
|||
Muchas gracias amigo.
Como dicen en mi tierra siempre ven mas cuatro ojos que dos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
crear varios form al iniciar la aplicacion | FGarcia | Varios | 5 | 06-10-2008 17:11:50 |
Crear columnas en runtime | Pedro-Juan | OOP | 8 | 09-02-2007 13:38:18 |
crear instalador, ejecutar al iniciar i crear desinstalador | vivamotos | C++ Builder | 1 | 25-08-2006 15:13:01 |
Iniciar una aplicacion sin mostrar ningun form | rob1 | Varios | 5 | 11-12-2005 18:14:18 |
Crear índice en runtime | Gabriel2 | Tablas planas | 2 | 17-11-2005 23:19:00 |
|