Tela congelada
21/11/2005
0
Segue uma duvida:
Tenho uma aplicação que executa um processo longo.
Ao executar, este processo inicia normalmente. Acontece que se eu mudar para qualquer outra janela que estiver aberta, quando retorno para a janela da aplicação ela está congelada.
O processo executa perfeitamente até o final mas com a tela congelada, inclusive o progressbar.
Outra dúvida: como colocar um botão para o usuário cancelar o processo, caso queira.
Grato,
Pan7
Tenho uma aplicação que executa um processo longo.
Ao executar, este processo inicia normalmente. Acontece que se eu mudar para qualquer outra janela que estiver aberta, quando retorno para a janela da aplicação ela está congelada.
O processo executa perfeitamente até o final mas com a tela congelada, inclusive o progressbar.
Outra dúvida: como colocar um botão para o usuário cancelar o processo, caso queira.
Grato,
Pan7
Pan7
Curtir tópico
+ 0
Responder
Posts
21/11/2005
Emerson Nascimento
para não ter esse efeito de tela congelada, utilize Application.ProcessMessages na iteração do seu laço (supondo que esse ´processo lento´ se dê por conta de um loop)
seria algo assim:
essa variável lCancela deverá ser uma variável private do tipo boleana para controle do cancelamento do processo.
daí vc coloca um botão cancelar no seu form e, no onclick desse botão, põe o seguinte código:
seria algo assim:
lCancela := False; while not tabela.eof and not lCancela do begin {faz alguma coisa} tabela.next; {incrementa a barra de progresso} application.processmessages; end; if lCancela then ShowMessage(´Processo cancelado pelo usuário´);
essa variável lCancela deverá ser uma variável private do tipo boleana para controle do cancelamento do processo.
daí vc coloca um botão cancelar no seu form e, no onclick desse botão, põe o seguinte código:
lCancela := Application.MessageBox(´Deseja realmente cancelar o processo´,´Cancelar´,MB_TASKMODAL + MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = mrYes;
Responder
21/11/2005
Pan7
Valeu Emerson
Vou testar ! (Assim que a bendita terminar de rodar !!!)
Um abraço,
Pan7
Vou testar ! (Assim que a bendita terminar de rodar !!!)
Um abraço,
Pan7
Responder
Clique aqui para fazer login e interagir na Comunidade :)