Lio con Procedures!!!
Que tal foro... tengo un problemilla que sinceramente no se si se pueda corregir la verdad es que no estoy mu bien documentado al respecto, lo que deseo es llamar desde un procedmiento A a un procedimiento B, normalmente el procedimiento A espera a que termine el procedimiento B y ejecuta la siguiente linea del codigo. lo que quiero es que al realizar la llamada del procedimiento B el procedimiento A termine.
Gracias por su colaboracion. Salu2:cool: |
Código:
procedure ProcA; ¿¿Algo Asi?? |
Hola, gracias por tu respuesta... especifico un poco mas... estoy desarrollando un aplicacion con los Indy, en el evento Execute del TCPServer tengo un codigo que debe mostrar un form de acuerdo a lo que reciba. El problema es que al tratar de mostrar el nuevo form pues se descompone toda la aplicacion, pero si pongo el codigo en un timer funciona perfecto algo asi:
procedure TForm1.TCPServerExecute; begin // otro codigo if comando = 'nuevo' then timer1.enabled:= true; end; procedure TForm1.Timer1Timer; begin form2.show; end; obviamente cuando se habilita el timer el procedimiento del TCPServer continua y termina pero no espera hasta que el procedimiento del timer se ejecute. Espero que comprendas lo que trato de decir y me puedas dar una mano con esto problemilla. Gracias de nuevo. |
Eso es otra cosa... no estas llamando a un procedure dentro de otro, sino que estas activando un Timer que en otro hilo ejecuta tu procedure al mismo tiempo.
Porqué no trabajas con una variable Boolean, le asignas el Active a esta y cuando termina tu procedure lo activas/desactivas? Código:
procedure TForm1.TCPServerExecute; Saludos! |
volvamos al inicio...
procedure A; begin if comando = 'nuevo' then begin procedure B(Parametro); exit; { como ves hasta que no termine el procedimiento B no sale el procedimiento A, esto es lo que necesito, bien sea que el procedmiento A continue su ejecucion sin esperar al procedimiento B o que termine cuando llame al procedimiento B} end; end; procedure B(Parametro); begin form2.show; end; |
Ahora Si... (Eso espero :D)
Sin lugar a dudas vas a necesitar utilizar Theads, para crear un nuevo hilo de ejecución... Te recomiendo ver la ayuda del TThread! Saludos! |
Muy bien voy a probar lo que me dices...
Gracias por tu colaboracion. Salu2:cool: |
No entiendo.
El procedimiento B únicamente muestra un formulario y esta es una acción inmediata, es decir, el formulario se muestra y el programa continúa la ejecución normal: termina el procedimiento B y se regresa a A. Lá unica razón que veo para tener que lanzar B desde otro hilo es porque la creación del formulario sea inusitadamente larga. // Saludos |
bueno pues tienes razon roman, pero comentaba utilizo los Indy y estoy utilizan el hilo de la aplicacion mientras se ejecutan por esta razon cualquier otro cosa que se ejecute fuera del formulario donde se genera el codigo secillamente muere!!
|
La franja horaria es GMT +2. Ahora son las 13:54:14. |
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