Pessoal,
Por favor, me tirem uma dúvida básica:
Estou querendo fazer meu programa de instalação do sistema em HwGui (atualmente está em modo console). É um programinha bem básico: cria a pasta do sistema, baixa o arquivo compactado via FTP, descompacta os arquivos, cria atalho na área de trabalho etc. Tudo é feito automaticamente, sem necessidade de intervenção do usuário, que só precisa digitar a senha inicial. Tudo leva poucos minutos.
Enquanto a instalação é feita (depois da senha), o programa vai mostrando na tela algumas instruções iniciais para uso do sistema.
Minha dúvida é: para fazer a mesma coisa, com tela em HwGui, eu teria que criar uma nova tela para cada etapa da instalação?
Pergunto porque, se eu colocar todos os passos da instalação antes do ACTIVATE DIALOG, ele só vai mostrar a tela depois de encerrar toda a instalação, correto?
O ideal é que, depois da senha, ele mostre logo a tela, com uma barra de progresso (vi no tutorial um exemplo pra isso), e daí ele vá fazendo a instalação, avançando na barra de progresso, e mostrando as instruções, sem necessidade de qualquer intervenção do usuário. Mas, para isso, será necessário construir várias telas sucessivas?
Ainda não comecei efetivamente a fazer nada, só estou pensando em como vou fazer, antes de iniciar.
Podem apenas me tirar esta dúvida, por favor?
dúvida básica sobre telas
Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
dúvida básica sobre telas
Olá!
Não se esqueça que programação GUI é orientada a eventos.
- Crie uma main window.
- No evento ON INIT da main window, chame a sua tela para o usuário digitar a senha. Esta tela será uma dialog.
- Se o usuário digitar a senha correta,...
- Abra uma nova dialog onde vão aparecer as informações do progresso da instalação. Nesta tela poderá haver talvez um editbox ou richedit onde vai mostrando os passos executados. Poderá colocar nela a progress bar. Deverá ter dois botões. Um botão Cancelar e outro Instalar. No evento ON CLICK deste segundo botão, coloque a chamada da rotina que executa a instalação. Esta rotina deverá receber, entre outros possíveis parâmetros, a própria dialog da instalação. Desta forma, você terá acesso aos componentes dela e poderá atualizar o editbox/richedit e a progressbar. Para atualizar o editbox ou richedit, vá concatenando as linhas de mensagem acrescidas de CR+LF na propriedade do componente que guarda seu texto. A cada linha acrescida, execute o método refresh do componente.
Não se esqueça que as ações de cada janela são iniciadas com a execução do método ACTIVATE.
É apenas uma idéia inicial... boa sorte.
Não se esqueça que programação GUI é orientada a eventos.
- Crie uma main window.
- No evento ON INIT da main window, chame a sua tela para o usuário digitar a senha. Esta tela será uma dialog.
- Se o usuário digitar a senha correta,...
- Abra uma nova dialog onde vão aparecer as informações do progresso da instalação. Nesta tela poderá haver talvez um editbox ou richedit onde vai mostrando os passos executados. Poderá colocar nela a progress bar. Deverá ter dois botões. Um botão Cancelar e outro Instalar. No evento ON CLICK deste segundo botão, coloque a chamada da rotina que executa a instalação. Esta rotina deverá receber, entre outros possíveis parâmetros, a própria dialog da instalação. Desta forma, você terá acesso aos componentes dela e poderá atualizar o editbox/richedit e a progressbar. Para atualizar o editbox ou richedit, vá concatenando as linhas de mensagem acrescidas de CR+LF na propriedade do componente que guarda seu texto. A cada linha acrescida, execute o método refresh do componente.
Não se esqueça que as ações de cada janela são iniciadas com a execução do método ACTIVATE.
É apenas uma idéia inicial... boa sorte.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
dúvida básica sobre telas
Sim, não esqueci deste detalhe.
Entendi parcialmente tua sequência.
Vou começar a fazer e, tendo dúvida, volto a postar.
Obrigado por enquanto.
Entendi parcialmente tua sequência.
Vou começar a fazer e, tendo dúvida, volto a postar.
Obrigado por enquanto.
Inacio de Carvalho Neto
