Partilhar via


Criação de um controle ProgressBar

O Windows Installer contém funcionalidade para exibir um indicador de progresso em uma caixa de diálogo de exibição de ação. O controle ProgressBar representa graficamente a instalação de componentes individuais e relata o tempo total decorrido em relação ao tempo restante ou o tempo total aproximado restante até que a instalação seja concluída.

Para determinar o tempo total previsto para a instalação, o instalador acompanha os progressos totais previstos por cada ação durante a geração do script de execução. Quando a geração do script é concluída, o total de marcações de progresso é armazenado e a instalação começa.

As mensagens de progresso, detalhando o número de registros de progresso decorridos, são enviadas para o gestor de mensagens ativo enquanto cada ação do script é executada. Em cada mensagem de progresso, o instalador transmite um SetProgress ControlEvent para a caixa de diálogo ativa no momento. A sequência da interface do usuário deve ser criada para criar a caixa de diálogo de exibição de ação durante a execução do script para receber as mensagens SetProgress ControlEvent do instalador.

Quando a caixa de diálogo de exibição de ações recebe um evento de controle SetProgress, verifica a tabela de associação de eventos para quaisquer controlos que subscrevam o evento de controlo. O controlo ProgressBar na caixa de diálogo de visualização de ações está inscrito com o atributo do controlo Progress especificado na coluna Atributos. O atributo Progress Control especifica que o controlo ProgressBar receberá os valores "ticksSoFar" e "totalTicks" junto com o ControlEvent SetProgress. O controle da barra de progresso usa essas informações para avançar a barra gráfica da esquerda para a direita para uma instalação e da direita para a esquerda para uma operação de reversão.

Além disso, o instalador transmite um TimeRemaining ControlEvent em cada mensagem de progresso. O tempo total restante para a instalação é determinado pelo primeiro cálculo da taxa de execução, que é o número total de ticks decorridos dividido pelo tempo total desde o início da instalação. O número total de ticks restantes dividido pela taxa de execução dá o tempo aproximado restante.

Quando a caixa de diálogo de exibição de ação recebe o TimeRemaining ControlEvent, ela procura novamente na tabela EventMapping todos os controles que estão inscritos. Para exibir o tempo restante, um de controle Text deve ser inscrito no TimeRemaining ControlEvent com o atributo de controle TimeRemaining especificado na coluna Atributos.

O controlo de texto inscrito consulta a tabela UIText para uma string de modelo parametrizada chamada "TimeRemaining". Esta cadeia de caracteres tem dois parâmetros, [1] para minutos e [2] para segundos. O controle Text converte cada valor em minutos e segundos, avalia a cadeia de caracteres do modelo TimeRemaining e atualiza o controle de texto com as novas informações.

Se o nível de exibição da interface do usuário estiver definido como básico ou inferior, o instalador exibirá uma caixa de diálogo padrão contendo uma barra de progresso e um campo de texto TimeRemain. Para obter mais informações, consulte Níveis de interface do usuário.