Como adicionar um texto armazenado em uma propriedade
O exemplo descrito na seção intitulada Como criar uma caixa de mensagem "Aguarde…" condicional exibe uma caixa de diálogo com o texto "Aguarde enquanto a avaliação de custo do espaço em disco é concluída". Faça isso apenas colocando um controle Text na caixa de diálogo e inserindo a cadeia de texto na coluna Text da tabela Control. Nesse caso, as informações sobre o estilo da fonte precisam ser inseridas na cadeia de caracteres. O autor precisa definir a fonte e o estilo da fonte acrescentando o prefixo {\style} à cadeia de caracteres. Sendo que style é um identificador de estilo de fonte listado na coluna TextStyle da tabela TextStyle. Esse método de adição de texto é ilustrado várias vezes em Um exemplo de instalação.
Um autor de uma interface do usuário também pode armazenar o texto em uma propriedade. O exemplo a seguir ilustra isso e mostra como ControlEvents pode ser usado para exibir cadeias de texto alternativas.
O objetivo desse exemplo é novamente apresentar uma caixa de diálogo WaitForCosting enquanto uma tarefa em segundo plano está em execução. A diferença com o novo cenário é que, se o usuário cancelar a caixa de diálogo WaitForCosting e tentar ativar o controle antes da tarefa em segundo plano ser concluída uma segunda vez, a caixa WaitForCosting reaparecerá exibindo a mensagem alternativa "A avaliação de custo do espaço em disco ainda está em execução. Você pode continuar aguardando ou retornar à caixa de seleção principal para sair desta sequência".
Para exibir uma caixa de diálogo "Aguarde" que mostra mensagens alternativas
- Comece adicionando uma caixa de diálogo WaitForCosting condicional a uma caixa de diálogo Selection, conforme descrito em Como criar uma caixa de mensagem "Aguarde…" condicional.
- Coloque um controle Text na caixa de diálogo WaitForCosting criando um registro na tabela Control. Insira o identificador da caixa de diálogo WaitForCosting na coluna Dialog_. Insira o identificador do controle Text na coluna Control. Especifique o tipo de controle como Text na coluna Type.
- Especifique o atributo de controle Position para o controle de texto inserindo as coordenadas horizontal e vertical do canto superior esquerdo do controle nas colunas X e Y da tabela Control. Use pixels como unidades de distância.
- Especifique a largura e a altura do controle de texto inserindo essas dimensões nas colunas Width e Height da tabela Control. Use pixels como unidades de comprimento.
- As colunas Property e Control_Next da tabela Control não afetam os controles Text e podem ser deixadas em branco nesse caso.
- Especifique os atributos de controle para o controle Text associados aos sinalizadores de bits. Adicione os valores de bit individuais e insira o total na coluna Attributes da tabela Control. Estes são os atributos de controle Visible, Sunken, Enabled, Transparent, NoWrap e NoPrefix. A combinação de bits que exibe um controle de texto em uma tela de fundo opaca, com um texto de encapsulamento é 0, ou seja, insira 0 ou deixe a coluna Attributes em branco.
- A coluna Text da tabela Control pode ser deixada em branco. O controle Text exibe a cadeia de texto que é o valor do atributo de controle Text. O método usado para definir esse atributo é descrito nas etapas seguintes deste procedimento.
- Adicione um registro à tabela Property para definir a propriedade da mensagem FirstMessage. Essa propriedade é uma cadeia de caracteres que contém o estilo da fonte e o texto da primeira mensagem. Insira o nome FirstMessage na coluna Property. Na coluna Value, insira a cadeia de caracteres: "{\WaitStyle}Aguarde enquanto a avaliação de custo do espaço em disco é concluída". Sendo que WaitStyle é um identificador para um dos estilos de fontes listados na coluna TextStyle da tabela TextStyle.
- Adicione um registro à tabela Property para definir a propriedade da mensagem SecondMessage. Essa propriedade é uma cadeia de caracteres que contém o estilo da fonte e o texto da segunda mensagem. Insira o nome SecondMessage na coluna Property. Na coluna Value, insira a cadeia de caracteres: "{\WaitStyle}A avaliação de custo do espaço em disco ainda está em execução. Você pode continuar aguardando ou retornar à caixa de seleção principal para sair desta sequência".
- Adicione um registro à tabela Property para definir a propriedade da mensagem WaitMessage. Essa propriedade é uma cadeia de caracteres que contém o estilo da fonte e o texto da mensagem exibida na caixa de diálogo WaitForCosting caso o usuário tente ativar um botão de ação antes da avaliação de custo ser concluído. Insira o nome WaitMessage na coluna Property. Na coluna Value da tabela Property, insira FirstMessage.
- Adicione um SetProperty ControlEvent à tabela ControlEvent que inicializa WaitMessage em FirstMessage sempre que uma caixa de diálogo New Selection é aberta. Insira na coluna Dialog_ o identificador da caixa de diálogo que antecede a caixa de diálogo Selection na sequência de caixas de diálogo. Insira na coluna Control_ o identificador do controle nessa caixa de diálogo usada para abrir a caixa de diálogo Selection. Insira [WaitMessage] na coluna Event. Insira [FirstMessage] na coluna Argument. Insira 1 na coluna Condition e deixe a coluna Ordering em branco.
- Adicione um SetProperty ControlEvent à tabela ControlEvent que define WaitMessage como SecondMessage se o usuário fechar a caixa de diálogo WaitForCosting antes da avaliação de custo do espaço em disco ser concluída. Insira o identificador da caixa de diálogo WaitForCosting na coluna Dialog_. Insira o identificador do controle Text na coluna Control_. Insira [WaitMessage] na coluna Event. Insira [SecondMessage] na coluna Argument. Insira NOT CostingComplete na coluna Condition e deixe a coluna Ordering em branco.
- A etapa a seguir vincula o atributo de controle Text ao ControlEvent que gera a caixa de diálogo WaitForCosting. Isso faz com que o instalador transmita o valor da propriedade WaitMessage para o atributo de controle Text sempre que o usuário abrir uma caixa de diálogo WaitForCosting.
- Assine o atributo de controle Text do controle Text para o SpawnWaitDialog ControlEvent que abre a caixa de diálogo WaitForCosting adicionando um registro à tabela EventMapping. Insira o identificador da caixa de diálogo WaitForCosting na coluna Dialog_. Insira o identificador do controle Text na coluna Control_. Insira SpawnWaitDialog na coluna Event. Insira Text, o identificador do atributo de controle Text, na coluna Attribute da tabela EventMapping.