Aviso
Caixa de dialogo com multiplos botoes customizados. Mais flexivel que MsgInfo — voce define os botoes e captura a escolha.
Assinatura: Aviso(cTitulo, cMsg, aOpcoes, [nTipo]) -> nEscolha
Retorna: Numeric — indice da opcao escolhida (1-base)
Aviso e a versao versatil das mensagens — voce passa um array de strings com os labels dos botoes, e o retorno e o indice do botao clicado. Diferente de ApMsgYesNo (so 2 opcoes), aceita N botoes.
Sintaxe
nOpc := Aviso("Confirmacao", ;
"O que voce quer fazer com este pedido?", ;
{"Liberar", "Bloquear", "Cancelar"}, ;
2) // tipo (1=info, 2=question, 3=warning)
Do Case
Case nOpc == 1 ; U_LiberaPed()
Case nOpc == 2 ; U_BloqPed()
Case nOpc == 3 ; Return
EndCase
Pegadinhas
- Maximo de 4 botoes — alem disso, layout quebra dependendo da versao do SmartClient.
- Retorno 1-base — primeira opcao = 1, nao 0.
- Tamanho do label — botoes muito largos cortam texto.
- Bloqueante — nao usar em batch.
- Sem cancelar implicito — sempre inclua opcao "Cancelar" se for cancelavel; ESC fecha mas pode retornar 0.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cTitulo | Character | sim | Titulo da janela. |
cMsg | Character | sim | Mensagem exibida. |
aOpcoes | Array | sim | Array de strings com labels dos botoes (max 4). |
nTipo | Numeric | não | 1=info, 2=question, 3=warning. |