Ver Mensaje Individual
  #5  
Antiguo 07-09-2020
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola RobertPolson.

No he revisado tu código, porque no lo colocaste como indicó Casimiro Notevi en la primera respuesta, pero de todas formas no estoy seguro de que necesites crear un hilo para lo que deseas conseguir.

Creo que podrías usar un par de variables "bandera" (tipo Boolean). La primera para indicar si en ese momento se está ejecutando un cálculo, y la segunda para indicar si se ha presionado otro botón durante un proceso de cálculo que no ha terminado.

La clave está en que durante el proceso de cálculo llames a Application.ProcessMessages cada cierto tiempo o varias veces entre las instrucciones de tu cálculo para darle oportunidad al usuario de interactuar con la pantalla aunque no haya terminado de realizarse dicho cálculo. La acción de presionar un botón evaluaría la primera de las variables que te mencioné, que de ser True, pondría en True la otra de las variables y dejaría en "cola de espera" la tarea de ese botón. Mientras que el proceso de cálculo, después de cada llamada a ProcessMessages revisaría si esta segunda variable está en True y por lo tanto determinaría si debe abandonar el cálculo dependiendo de cuál botón se haya presionado durante el proceso.

Espero haberme dado a entender. Saludos.

Última edición por Al González fecha: 07-09-2020 a las 02:27:27.
Responder Con Cita