|
Utilizando caixas de mensagens - parte II
Na edição anterior, apresentamos a você
as procedures Info_Box e Stop_Box. Nesta edição
você conhecerá as funções Confirm,
YesNo_Box e YesNoCancel_Box.
As procedures Info_Box e Stop_Box possuem apenas um botão
de OK e, portanto, não são usadas para solicitar
informações do usuário, mas apenas
para informá-lo de algo ocorrido. As funções
YesNo_Box, YesNoCancel_Box e Confirm possuem mais de uma
opção de escolha e servem para solicitar uma
informação do usuário.
Function Confirm
A function Confirm exibe uma caixa de mensagem com o título
"Confirme" e com dois botões: Sim e Não.
A sintaxe de chamada da function Confirm é muito
simples:
Get Confirm {Texto} To iRetorno
Em {Texto} você irá especificar o texto
que aparecerá na caixa de mensagem. Ele pode ser
especificado literalmente, através de uma variável,
expressão ou, até mesmo, ser o conteúdo
de um campo de arquivo.
iRetorno é uma variável inteira que
receberá a indicação de qual botão
o usuário pressionou. Os valores de retorno possíveis
para iRetorno são:
0: O botão "Sim" foi pressionado.
1: O botão "Não"
foi pressionado.
Exemplo:
Integer iRet
Get Confirm ;
"Você está excluindo um
cliente ativo! Deseja continuar?" To iRet
If (iRet) Send Request_Clear
Else Send Request_Delete

Function YesNo_Box
A function Yes_No_Box tem a mesma funcionalidade da função
Confirm, mas possui recursos para alterar o título
da caixa de mensagem e definir qual o botão padrão.
A sintaxe de chamada da Function YesNo_Box é muito
simples também:
Get YesNo_Box {Texto} [TítuloJanela
[BotãoPadrão]] To iRetorno
[TítuloJanela] é um argumento opcional
para definir qual será o texto do título da
caixa de mensagem. O valor padrão é "Pergunta".
[BotãoPadrão] é um argumento
opcional que especifica qual botão será o
botão padrão. Se não for especificado,
o primeiro botão (Sim) será o padrão.
Os valores válidos para este argumento são:
0 ou MB_DEFBUTTON1 (Sim)
1 ou MB_DEFBUTTON2 (Não)
Se você desejar especificar este parâmetro
e usar o valor padrão para o argumento [TítuloJanela],
passe "" no lugar de [TítuloJanela] seguido
da identificação do botão desejado.
Os valores de retorno possíveis para iRetorno são:
MBR_Yes: O botão "Sim"
foi pressionado.
MBR_No: O botão "Não"
foi pressionado.
Exemplos:
Integer iRet
Get YesNo_Box ;
"Você está excluindo um
cliente ativo! Deseja continuar?" To iRet
If (iRet = MBR_Yes) Send Request_Delete
Else Send Request_Clear

Integer iRet
Get YesNo_Box ;
"Você está excluindo um
cliente ativo! Deseja continuar?" ;
"Pergunta (RESPONDA COM ATENÇÃO)"
To iRet
If (iRet = MBR_Yes) Send Request_Delete
Else Send Request_Clear

Integer iRet
Get YesNo_Box ;
"Você está excluindo um
cliente ativo! Deseja continuar?" "" ;
MB_DEFBUTTON2 To iRet
If (iRet = MBR_Yes) Send Request_Delete
Else Send Request_Clear

Function YesNoCancel_Box
A sintaxe e utilização da function YesNoCancel_Box
é idêntica a da function YesNo_Box. O que muda,
como o nome sugere, é que esta caixa de mensagem
apresenta um terceiro botão com o label "Cancelar":
Get YesNoCancel_Box {Texto} [TítuloJanela
[BotãoPadrão]] To iRetorno
Se você desejar usar o botão "Cancelar"
como padrão, a constante correspondente é
2 ou MB_DEFBUTTON3.
Se o usuário pressionar o botão "Cancelar"
a variável iRetorno será igual a MBR_Cancel.
Exemplo:
Integer iRet
Get YesNoCancel_Box ;
("Você está excluindo um
cliente ativo!" + ;
"Deseja continuar?\n(Pressione Cancelar
para fechar a View)") To iRet
Case Begin
Case (iRet = MBR_Yes)
Send Request_Delete
Case Break
Case (iRet = MBR_No)
Send Request_Clear
Case Break
Case Else
Send Request_Clear
Send Close_Panel
Case End

Quebrando a mensagem
Conforme explicado e exemplificado na edição
anterior, se você precisar efetuar uma quebra
de linha na mensagem a ser exibida, basta inserir "\n"
no conteúdo do texto. Veja a edição
anterior para mais informações.
Chamadas dentro de expressões
Por serem funções as mensagens Confirm, YesNo_Box
e YesNoCancel_Box podem ser chamadas dentro de expressões,
o que torna o código mais compacto e versátil.
Veja um exemplo abaixo:
If (YesNo_Box("Exclusão de
cliente ativo! Continuar?") = MBR_Yes) ;
Send Request_Delete
Else Send Request_Clear
A função Confirm, entretanto, requer que
você passe o identificador do objeto atual como primeiro
parâmetro:
If (Confirm(Self,"Exclusão
de cliente ativo! Continuar?")) ;
Send Request_Clear
Else Send Request_Delete
 |
Não perca a última parte desta matéria
na próxima edição! |
Nela você encontrará a explicação
de como funcionam as confirmações automáticas
do VDF efetuadas durante a entrada de dados e também
descobrirá como alterar estas mensagens padrões.
|
Esta e outras dicas técnicas
você encontra na revista 4developers,
uma publicação trimestral com 40 páginas
de conteúdo técnico de alta qualidade,
desenvolvida pelo Departamento de Suporte Técnico
e distribuída exclusivamente para assinantes
do
Pacote de Serviços Exclusivos.
Assine o Pacote de Serviços Exclusivos e receba
gratuitamente a revista 4developers!
|
|