Tela de espera enquanto executa tarefas
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
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
Curtidas 0
Respostas
Araujojunior
12/07/2005
Faz o processamento com um ProgressBar q eh mais fácil ;)
GOSTEI 0
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
Alguém mais tem alguma idéia ae?
Obrigado,
Pablo
GOSTEI 0
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
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
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
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
12/07/2005
Panel1.Visible := True;
Application.ProcessMessages;
Tinha esse problema e dessa forma funciona legal ;)
Application.ProcessMessages;
Tinha esse problema e dessa forma funciona legal ;)
GOSTEI 0
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
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
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
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
12/07/2005
Tente isso após dar show no form:
Formulario.Update;
Formulario.Update;
GOSTEI 0