Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entiendo demasiado de hilos pero siento que tu código está muy enredado.

¿Para qué pones al WaitForSingleObject dentro de un while? En principio, no se pasará de esa línea hasta que no se cumpla el tiempo especificado y si no quieres que termine después de ese tiempo pones INFINITE como timeout y sólo terminará hasta que se cumpla la condición (que termine la otra aplicación)

Y así mismo, no entiendo para qué usas un repeat en el método execute. Si el WaitForSingleObject esta en INFINITE, el método Execute no terminará hasta que no acabe la otra aplicación.

Por otra parte no estoy seguro de si realmente es necesario usar un thread aparte. Cuando uses la balanza podrías poner algo como:

Código Delphi [-]
EjecutarBalanza;

DeleteFile('archivo.txt');

repeat
  Application.ProcessMessages;
until FileExists('balanza.txt') or Application.Terminated;

ShowMessage('Ya terminó');

// Saludos
Responder Con Cita
  #2  
Antiguo 27-01-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Solo un par de detalles. No deberias de utilizar componentes de un formulario desde un Thread sin usar el metodo "Synchronize".

Segundo, como haces para cerrar y mostrar la ventana F_Balanza porque puede que el problema este ahi y no en el thread.

Por ultimo la solucion de Roman me parece sencilla y deberia de funcionar de maravilla. Aunque al escribirlo CREO que no lo hizo en el orden correcto, deberia de ser:

Código:
DeleteFile('balanza.txt');
EjecutarBalanza;
repeat
  Application.ProcessMessages;
until FileExists('balanza.txt') or Application.Terminated;
ShowMessage('Ya terminó');
Si me equivoco, perdoname ...
Responder Con Cita
  #3  
Antiguo 27-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por seoane
CREO que no lo hizo en el orden correcto, deberia de ser:
¡Claro!, Tienes toda la razón. Probé el resto de la solución pero no tenía una de esas balanzas a la mano . Gracias por la aclaración.

// Saludos
Responder Con Cita
Respuesta



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
Problemas MDI cerrar ventana rafadrover Varios 3 28-01-2006 13:30:44
Cerrar componente con ventana modal elcigarra OOP 7 12-10-2005 13:17:53
En mi aplicacion MDI quiero crear una ventana hija desde otra ventana hija Durbed Varios 8 05-07-2005 11:51:54
Llamada de procedimientos wallesis OOP 19 27-01-2004 18:39:15


La franja horaria es GMT +2. Ahora son las 18:52:57.


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