[Índice Acima]

Diálogos

Controlo dos botões

Quer o inputbox quer o msgbox têm variantes e permitem algumas modificações quanto ao aspecto. Além disso, permitem processar a resposta aos botões premidos. Por exemplo:

' bonecada1.vbs 19:10 12-05-2008
' Ilustração de uso de botões
' e tratamento da resposta

' Criar uma variável para obter a resposta
dim Resposta

' Fazer a pergunta
Resposta= msgbox ("Prima uma destas:",_
	vbRetryCancel+vbQuestion,"Título 10")

'Processar a resposta
	select case Resposta
		case vbRetry
			msgbox "Premiu Repetir",vbInformation
		case vbCancel
			msgbox "Premiu Cancelar",vbInformation
		case else
			msgbox "Sei lá eu o que você fez!"
	end select

' Fim com mais umas funções
msgbox "Fim - " & scriptengine & " " & _
	scriptenginemajorversion & "." &_
	scriptengineminorversion,_
	vbInformation
' FIM

Neste caso, apresenta-se uma caixa com botões Repetir ou Cancelar, a que se adicionou o ícone de Pergunta. O resultado é recolhido na variável Resposta, que foi já criada. Essa resposta é depois processada num select..case, comparando-a com os valores predefinidos vbCancel e vbRetry.

No fim, aproveitámos para espreitar qual é o interpretador de script e qual a versão (ScriptEngine, ScriptEngineMajorVersion, ScriptEngineMinorVersion).

Para vermos mais botões:

'bonecada.vbs 19:24 12-05-2008

dim Resposta


msgbox "Exclamation!",vbExclamation,"Título 1"

msgbox "Information",vbInformation,"Título 2"

msgbox "Question",vbQuestion,"Título 3"

msgbox "Critical",vbCritical+vbSystemModal,"Título 4"

msgbox "Ok Only",vbOkOnly,"Título 5"

msgbox "Ok / Cancel",vbOkCancel,"Título 6"

msgbox "Abort, retry or ignore",vbAbortRetryIgnore,"Título 7"

msgbox "Yes, No, Cancel",vbYesNoCancel+vbDefaultButton3,"Título 8"

msgbox "Yes / No",vbYesNo,"Título 9"

Resposta= msgbox ("Retry / Cancel",vbRetryCancel,"Título 10")
	select case Resposta
		case vbRetry
			msgbox "Premiu Retry"
		case vbCancel
			msgbox "Premiu Cancel"
		case else
			msgbox "Sei lá o que você fez!"
	end select

msgbox "Fim",vbInformation

vbSystemModal e vbApplicationModal não deixam o script prosseguir sem uma resposta. vbDefaulButton3 torna o terceiro botão o pré-seleccionado; pode fazê-lo para os primeiros quatro botões.

Tudo isto se aplica também à instrução inputbox. Tem, no entanto, peculiaridades. As variáveis têm de ser declaradas, e depois processadas por ordem. Por exemplo, neste código:

' bonecada2.vbs 19:58 12-05-2008

dim Nome, vbCancel, vbOk

Nome= inputbox ("Diga o seu nome")

select case Nome
	case vbOk	' vale 1
		msgbox "Premiu Ok"
	case vbCancel 	' vale 2
		msgbox "Cancelar"
	case else 
		msgbox "Hm?"
end select

msgbox "Resultado: " & Nome

se colocar o case vbOk depois do case vbCancel, aquele nunca é processado. Isto não deveria acontecer.

Outros valores possíveis para a resposta são vbAbort (vale 3), vbRetry (4), vbIgnore (5), vbYes (6) e vbNo (7).

 

Índice | Comente


Início: 19:17 12-05-2008

Última modificação: 20:00 12-05-2008