Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Refresh (https://www.clubdelphi.com/foros/showthread.php?t=40579)

elguille 21-02-2007 12:24:47

Refresh
 
Estoy pasando registros de un fichero a otro por codigo del tipo
while not fichero.eof do
begin
regis:=regis+1;
edit3.Text:=IntToStr(regis);
edit3.Refresh;
inserta_en_fichero2;
fichero.next;
end;

fichero tiene muchos registros y todo lo hace bien excepto que si voy a otro programa mientras este se esta ejecutando al intentar volver a el, windows dice que no responde (noes cierto el programa sigue ejecutandose) y edit3 que sirve para ver por que registro va no se ve queda por el numero que hay cuando cambio de programa !!!???.
¿alguien se le ocurre pq? ¿alguien sabe como solucionarlo?

pd. con progressbar en ves de edit3 hace exactamente lo mismo

Gracias anticipadas

Neftali [Germán.Estévez] 21-02-2007 12:31:58

Coloca dentro del bucle la siguiente línea:

Código Delphi [-]
  Application.ProcessMessages;

elguille 21-02-2007 17:19:54

Gracias
 
Cita:

Empezado por Neftali
Coloca dentro del bucle la siguiente línea:

Código Delphi [-] Application.ProcessMessages;

A El que lucha y sale victorioso

ixMike 21-02-2007 20:13:53

Pero recuerda, elguille, que si mientras el proceso va leyendo los registros y pulsas la X (el botón de cerrar de la ventana) esta se cerrará, con el proceso a medio, así que tienes que poner un código para evitar eso.
Lo más fácil es crear una variable de tipo Boolean, llamada Trabajando, y que cuando empiece el proceso le asignes True y cuando acabe False, y en el evento OnCloseQuery del Form pones CanClose:=not Trabajando; (es decir, salir del programa si no está trabajando).

Salu2


La franja horaria es GMT +2. Ahora son las 20:27:03.

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