Delphi - hilos en delphi???

 
Vista:

hilos en delphi???

Publicado por paco (2 intervenciones) el 16/12/2004 18:09:52
hola a todos. Tengo el siguiente problema. Tengo un form y un boton. Cuando pulso click quiero que el boton empieze a cambiar entre el rojo y el azul hasta que vuelva a pulsar click, momento en el que el boton se quedara como estubiese. Dentro del onclick coloco el bucle que cambia de color el boton, salir del bucle cuando se pulse nuevamente onclick ya que el programa se ha quedado ahi y no escucha eventos. Tendria que usar hilos?????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:hilos en delphi???

Publicado por beosman (163 intervenciones) el 16/12/2004 18:18:33
Pues no, lo mejor que puedes usar es un TTimer, lo activas al hacer click y desactivas al hacerlo de nuevo. En el evento OnTimer pones el botón en rojo o normal. Con los hilos también lo podrías hacer, por supuesto, pero es mucho más fácil haciéndolo así.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hilos en delphi???

Publicado por Dr Juzam (821 intervenciones) el 16/12/2004 20:08:53
Beosman tiene razón, pero otra cosa que puedes hacer dentro de un bucle que puede dejar colgada la aplicación es poner la sentencia Application.ProcessMessage. Elige la opción que mejor te venga.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hilos en delphi???

Publicado por paco (1 intervención) el 17/12/2004 11:21:08
muchas gracias a los dos, el problema se resuelve más facil de lo que pensaba, de nuevo gracias. De todas formas no entinedo la opcion Aplication.ProcessMessage, esta llamada donde iria?, dentro del bucle para forzarlo a salir?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hilos en delphi???

Publicado por Dr Juzam (821 intervenciones) el 17/12/2004 13:22:25
Application.ProcessMessages no sale del bucle, sino que lo interrumpe temporalmente para que la aplicación procese los mensajes que hay en la cola.

Por ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
Cambiar:= not Cambiar; {Cambiar el Bool. Me dice si cambio de color}
while Cambiar=true do begin
if Rojo=true then {Rojo es Bool. Me dice si el Form es rojo o verde}
Form1.Color:=clRed
else
Form1.Color:=clGreen;
Rojo:= not Rojo;
Application.ProcessMessages;
end;
end;

Sin Application.ProcessMessages la aplicación se cuelga. De todas maneras, acabo de probar este código y no queda muy bien el efecto: ¡Va demasiado rápido! Sin embargo, por ejemplo, para ciertos bucles, ProcessMessages te puede echar una mano (por ejemplo, contar una determinada palabra en un texto con 2000000 de palabras)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar