Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
Problemas con hilos y remobjects Pascal Script.

Buenas,

Estoy tratando de hacer un programa en delphi. El programa consiste en un editor de script realizado con Pascal Script, el usuario debe programar su codigo en el editor de script que posteriormente será ejecutado.

Hasta ahí todo correcto, programa funcionando y ejecutandose correctamente.

El problema surge cuando trato de dotar al programa de cierta multitarea. La idea es que el programa lanze dos scripts de programación y que ambos se ejecuten simultaneamente.

Según la poca idea que tengo de delphi, en un principio no es multitarea y por tanto no se soluciona el problema simplemente crando instancias del editor. Al probarlo, un script se ejecuta mientras que el otro esta parado hasta que el primero de ellos termina su ejecución, momento en el que continua la ejecución del otro script.

He probado también con la clase TThread pero tampoco consigo que funcione. Creo que programo correctamente los thread porque funcionan para tareas sencillas (por ejemplo, escribir en un cuadro de mensajes).

El thread lo creo con una variable de tipo TPSScript que relaciono con el TPSScript del formulario. Con el thread trato de ejecutar procedimientos del formulario del tipo. tform.ejecutarinstruccion.

¿Es posible conseguir lo que quiero con la clase TThread?

¿Es posible conseguir lo que pretendo con otras librerias parecidas a las de remobjects Pascalscript y que tengan posibilidad de ejecutarse simultaneamente?

¿Es viable lo que pretendo en Delphi? Si la respuesta es afirmativa ¿como lo puedo conseguir?

Un saludo y gracias.
Responder Con Cita
  #2  
Antiguo 12-09-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por J.Slann Ver Mensaje
¿Es posible conseguir lo que quiero con la clase TThread?
Sí.

Cita:
Empezado por J.Slann Ver Mensaje
¿Es posible conseguir lo que pretendo con otras librerias parecidas a las de remobjects Pascalscript y que tengan posibilidad de ejecutarse simultaneamente?
Sí.

Cita:
Empezado por J.Slann Ver Mensaje
¿Es viable lo que pretendo en Delphi? Si la respuesta es afirmativa ¿como lo puedo conseguir?
Sí.

Simplemente crea dos hilos, uno por cada guión que quieras ejecutar. Ahora bien, si necesitas intercambiar información entre ambos guiones deberás diseñar cómo hacerlo. Nunca he usado PascalScript, pero supongo que en el peor de los casos puedes añadirles métodos/procedimientos/funciones que deberá llamar el guión cuando quiera enviar o recibir datos hacia y desde el otro guión. Estos métodos deberán usar propiedades "de hilo seguro" para acceder a estos datos.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 14-10-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
Hola,

He estado probando con hilos y sigo sin conseguir lo que quiero. Como me decías utilizo un hilo para cada guión, el problema viene cuando trato de ejecutar los dos a la vez. Empiezo a ejecutar el script a través del hilo, pero una vez lanzado el script este se apodera por completo de la aplicación y no consigo la simultaneidad.

Una de las cosas que se me ocurren es que: aunque se desencadene todo el proceso desde un hilo, como la clase que utilizo tiene diferentes eventos en el formulario, es que una vez que empiezan a ejecutarse esos eventos no se devuelva el control al hilo hasta que estos terminen, ¿podría ser?

¿Se puede de alguna forma meter eventos dentro de hilos de ejecución?
Responder Con Cita
  #4  
Antiguo 17-10-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por J.Slann Ver Mensaje
Hola,

He estado probando con hilos y sigo sin conseguir lo que quiero. Como me decías utilizo un hilo para cada guión, el problema viene cuando trato de ejecutar los dos a la vez. Empiezo a ejecutar el script a través del hilo, pero una vez lanzado el script este se apodera por completo de la aplicación y no consigo la simultaneidad.
Pues algo estás haciendo mal. ¿Puedes poner el código en el que creas cada hilo y lo inicias?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 19-11-2011
J.Slann J.Slann is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 18
Poder: 0
J.Slann Va por buen camino
Efectivamente era un error mio, que no hacía las cosas como se debería.

Ya he conseguido la simultaneidad.

Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error en RemObjects Pascal Script cmm07 Varios 8 26-03-2009 18:46:11
Pascal Script o similares Ñuño Martínez Varios 2 24-10-2007 20:53:58
Problemas con acceso telefonico a redes e hilos ospaco69 OOP 0 08-08-2007 01:02:36
problemas con hilos (Thead) jmlifi Varios 2 20-03-2007 18:56:53
problemas con Hilos (Thread) jmlifi Varios 2 26-02-2007 16:29:21


La franja horaria es GMT +2. Ahora son las 11:28:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi