sistema congelado!

16/03/2006

0

como evito que meu sistema congele durante um processo que pode levar de 2 a 10 minutos


eu já tentei Application.ProcessMessages

e THREAD não achei uma pessoa que me ajude a montar um pois nunca trabalehi com ele...


Crcam

Crcam

Responder

Posts

17/03/2006

Aroldo Zanela

Colega,

O método [b:81d15e968e]Application.ProcessMessages[/b:81d15e968e] ´funciona´ dentro de uma estrutura de laço, entretanto, dependendo de que esteja sendo processado, realmente nenhum resultado esperadom será obtido.
Se puder, coloque um fragmento do código (comentado) para avaliarmos uma solução.


Responder

17/03/2006

Martins

como evito que meu sistema congele durante um processo que pode levar de 2 a 10 minutos eu já tentei Application.ProcessMessages e THREAD não achei uma pessoa que me ajude a montar um pois nunca trabalehi com ele...


Nobre amigo Carlos, passei um e-mail para vc com um exemplo básico de Thread, quanto ao Application.Processmessage, procede o q[b:2357344e9b] Aroldo Zanela[/b:2357344e9b] já ressaltou, mas ainda assim, coloque o código q deseja q seja colocado em uma thread.

Boa sorte!


Responder

18/03/2006

Crcam

// copia public
procedure TForm1.BkpPublic(Sender: TObject);
var
DirPublicOrig,DirPublicDest:pchar;
a:integer;
begin

DirPublicOrig:=pchar(PublicOr);

DirPublicDest:=pchar(PublicDe);

for a:=0 to FileListBox_public.Items.Count do
begin
FileListBox_public.itemindex:=a;
Gauge_public.progress:=(a*100) div FileListBox_public.Items.Count;
copyfile(pchar(DirPublicOrig+´\´+ExtractFilename(FileListBox_public.FileName)),pchar(DirPublicDest+´\´+ExtractFilename(FileListBox_public.FileName)),true);
end;


// hora fim
Hora_final:=(Time);
lbl_hora_final.Caption:=timetostr(Hora_final);
lbl_temp.Caption :=TimeToStr(Hora_Inicial - Hora_final);
// fim hora fim
end;
// fim copia public


// limpeza
procedure TForm1.LimpaArq(Sender: TObject);
var
SR: TSearchRec;
copan, publi: integer;
begin

begin
copan := FindFirst(CopanDe+´\*.*´, faAnyFile, SR);
while copan = 0 do begin
if (SR.Attr and faDirectory) <> faDirectory then
if not DeleteFile(CopanDe+´\´ + SR.Name) then
ShowMessage(´Não Foi Possível Limpar´ +CopanDe+´\´+SR.Name);
copan := FindNext(SR);
end;
end;

begin
publi := FindFirst(PublicDe+´\*.*´, faAnyFile, SR);
while publi = 0 do begin
if (SR.Attr and faDirectory) <> faDirectory then
if not DeleteFile(PublicDe+´\´ + SR.Name) then
ShowMessage(´Não Foi Possível Limpar´ +PublicDe+´\´+SR.Name);
publi := FindNext(SR);

end;
end;

end;
// fim limpeza

são essas funções basicas copia e limpeza


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar