Tela de espera enquanto executa tarefas

Delphi

12/07/2005

Olá pessoal,

Meu aplicativo trabalha com MySQL e realiza algumas transações com o banco que, dependendo da disponibilidade do mesmo (local ou remota), demora alguns segundos.

Gostaria de alguma dica de como construir uma tela de espera para o usuário, para o usuário não pensar o ´sistema travou´. Uma tela simples como estamos acostumados ver por ai ´aguarde...´

Alguem já fez algo parecido e pode me ajudar?

Obrigado,

Pablo


Pablobr

Pablobr

Curtidas 0

Respostas

Araujojunior

Araujojunior

12/07/2005

Faz o processamento com um ProgressBar q eh mais fácil ;)


GOSTEI 0
Pablobr

Pablobr

12/07/2005

Valeu pela dica amigo, mas não ficaria bom, pois em alguns casos, por exemplo quando o aplicativo está testando a conexão com o banco, criando as tabelas etc, ficaria estranho 1 progressbar.

Alguém mais tem alguma idéia ae?

Obrigado,

Pablo


GOSTEI 0
Crashovewrite

Crashovewrite

12/07/2005

pablobr... agente aqui na empresa fazemos o seguinte:

1) Adicione um Panel e escreva algo tipo ´Processando..´ e deixe-o visible do Panel = False

2) quando chamares a algum processamento (num laço por exemplo) faça o componente Panel.Visible:= True e no Final do Processamento faça o visible do Panel receber novamente False. Esperimente fazer isso e poste no fórum para ver o que achou...



Um abraço CrashOvewrite


GOSTEI 0
Pablobr

Pablobr

12/07/2005

Boa idéia, mas não estou conseguindo por em prática.

O problema esta no seguinte:

No meu aplicativo o usuário informa os dados do banco e testa a conexão com o mesmo. Exemplo: nome do banco, ip do servidor, usuario e senha do banco. Aí tem um botão testar, onde com esses parametros eu tento realizar uma conexão com o banco.

Acontece que se o usuário especificar um ip errado, etc, o aplicativo fica um tempo ocioso. É nesse tempo ocioso que eu gostaria de mostrar um tela de espera.

Testando com o Panel ou com um Form com apenas um Label, o aplicativo nem chega a exibir direito esse Panel ou Form. Ele fica visível, mas o conteúdo do Panel ou Form nem aparece, então fica pior ainda.

Alguem tem mais alguma sugestão?

Estou tentando aqui, se conseguir posto aqui.

Obrigado,

Pablo


GOSTEI 0
Araujojunior

Araujojunior

12/07/2005

Panel1.Visible := True;
Application.ProcessMessages;

Tinha esse problema e dessa forma funciona legal ;)


GOSTEI 0
Pablobr

Pablobr

12/07/2005

Valeu pessoal pelas dicas,

Usei em vez de um Label um Form com botões e imagens, ficou bem legal, pois agora em caso de erro eu exibo a mensagem em um Memo nesse form.

Obrigado a todos,

Pablo


GOSTEI 0
Pablobr

Pablobr

12/07/2005

Somente uma coisa eu nao conseguir fazer, fazer com que um gif animado rode nesse novo form para o usuário perceber que o aplicativo está rodando.
O gif fica parado e depois que alguma mensagem é retornada (conectou ao banco ou deu erro) é que ele fica animado. Estranho.

Alguem tem alguma idéia?

Obrigado,

Pablo


GOSTEI 0
Fabio Nascimento

Fabio Nascimento

12/07/2005

Tente isso após dar show no form:

Formulario.Update;


GOSTEI 0
POSTAR