Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
0
_______________________________________________________________________ Profa. Gilene B. Gomes ______
DE
MENSAGEM)
As caixas de mensagem so usadas para exibir resultados, erros, ou avisos para o usurio.
Elas so caixas modais (bloqueiam a execuo do programa quando so exibidas).
H funes para mostrar caixas de mensagem no Delphi. A mais simples ShowMessage,
que mostra apenas uma mensagem e um boto OK. J a funo MessageDlg oferece mais opes,
como smbolos e ttulos diferentes. A funo MessageBox permite criar um quadro de mensagem
com vrios botes em portugus e que retorne uma resposta do usurio, indicando qual boto foi
escolhido. Para a entrada de informaes simples, voc pode usar a funo InputBox.
7.2. USANDO
O COMANDO
SHOWMESSAGE
Use o comando ShowMessage para mostrar uma mensagem simples para o usurio. A
mensagem exibida em uma pequena caixa, com um boto OK. A caixa fechada quando o boto
OK clicado.
No exemplo abaixo, uma caixa de mensagem exibida quando o boto Button1 recebe um
clique:
ShowMessage('Este comando no pode ser usado no momento.');
A caixa de mensagem exibida a seguinte:
__ www.gomeshp.com _________________________________________________________________________
28
7.3. USANDO
O COMANDO
MESSAGEDLG
O comando MessageDlg mostra uma caixa de mensagem que pode conter smbolos
especiais, botes adicionais e outros elementos. O comando tem vrios parmetros que devem ser
especificados. Veja a sintaxe do comando MessageDlg:
MessageDlg(<Mensagem>,<Tipo da Caixa>,<Botes>,<Nmero de ajuda>);
<Mensagem> um trecho de texto entre aspas simples, como para o comando
ShowMessage.
<Tipo da Caixa> determina o smbolo que ser exibido na parte esquerda da caixa. Os
cinco tipos disponveis so ilustrados a seguir, alm do comando usado para exibir cada tipo de
caixa.
mtInformation
MessageDlg ('Mensagem de informao,
mtInformation, mbOKCancel, 0);
mtWarning
MessageDlg ('Mensagem de aviso,
mtWarning, mbOKCancel, 0);
mtError
MessageDlg ('Mensagem de erro', mtError,
mbOKCancel, 0);
mtConfirmation
MessageDlg ('Mensagem de confirmao',
mtConfirmation, mbOKCancel, 0);
mtCustom
MessageDlg ('Outra mensagem', mtCustom, mbOKCancel, 0);
__ www.gomeshp.com _________________________________________________________________________
29
Note que os ttulos das caixas de mensagem so sempre o nome do tipo da caixa, com
exceo da opo mtCustom que exibe o nome do projeto como ttulo (e no mostra smbolo
especial). Infelizmente, os ttulos so sempre em ingls. No h como especificar outros ttulos para
as caixas usando o comando MessageDlg.
<Botes> usado para definir o conjunto de botes que ser exibido na parte de baixo da
caixa de mensagem. H alguns conjuntos de botes predefinidos. Um deles foi usado nos exemplos
anteriores: mbOKCancel, que mostra os botes OK e Cancel. Os conjuntos predefinidos so
resumidos a seguir:
mbYesNoCancel
mbAbortRetryIgnore
mbAbortIgnore
mbOKCancel
Pode-se tambm adicionar botes especficos, listando o nome dos botes entre colchetes.
Os botes disponveis so:
mbYes, mbNo, mbOK, mbCancel, mbHelp, mbAbort, mbRetry, mbIgnore, mbAll, mbYesToAll,
mbNoToAll
Por exemplo, para mostrar uma caixa de mensagem de aviso com os botes, Yes, No,
Ignore e Help, use um comando como o seguinte (a caixa mostrada logo depois):
MessageDlg(Houve um erro de leitura no disco. Deseja interromper a
execuo do aplicativo?, mtWarning, [mbYes, mbNo, mbIgnore, mbHelp],0);
7.4. USANDO
mrRetry
mrIgnore
A FUNO
mrYes
mrNo
mrNone
mrAbort
mrNoToAll
mrYesToAll
mrAll
MESSAGEBOX
Esta funo pertence biblioteca do Windows (API), sendo que os ttulos dos botes
aparecem em Portugus. O Delphi a relaciona ao objeto do tipo TApplication.
Application.MessageBox (<Mensagem>, <Titulo>, <Tipo>);
__ www.gomeshp.com _________________________________________________________________________
30
Onde:
<Mensagem> - expresso mostrada dentro da caixa de dilogo.
<Titulo> - barra de ttulos da caixa de dilogo.
<Tipo> - somatria de nmeros, conforme o que se quer exibir na caixa de dilogo,
seguindo a tabela abaixo:
Argumento Tipo para a funo MessageBox:
Valor
0
1
2
3
4
5
16
32
48
64
0
256
512
Significado
Somente o boto de OK
Botes de OK e Cancelar
Botes Anular, Repetir e Ignorar
Botes Sim, No, Cancelar
Botes Sim, No
Botes Repetir e Cancelar
Sinal de Stop
Sinal de Pesquisa
Sinal de Aviso
cone de Informao
Primeiro boto com foco
Segundo boto com foco
Terceiro boto com foco
Boto pressionado
Boto OK
Boto Cancelar
Boto Anular
Boto Repetir
Boto Ignorar
Boto Sim
Boto No
Um exemplo:
resp:= Application.MessageBox ('Este um exemplo, voc entendeu?',
'Funo MessageBox', 36);
resp uma varivel do tipo integer (inteiro), que recebe o valor do boto pressionado.
36 = 32 (Sinal de Pesquisa) e 4 (Botes Sim, No).
__ www.gomeshp.com _________________________________________________________________________
31
7.5. USANDO
A FUNO INPUTBOX
Essa funo mostra uma caixa simples com um campo para a entrada (um componente Edit)
de dados e os botes OK e Cancel. InputBox retorna uma String com o texto digitado pelo usurio. A
funo InputBox recebe trs parmetros:
InputBox (<Ttulo da Caixa>, <Texto do prompt>, <Texto padro>);
<Ttulo da Caixa> define o texto que exibido na barra de ttulo da caixa.
<Texto do prompt> o texto exibido na parte interna da caixa.
<Texto Padro> o texto padro exibido dentro do campo de entrada. Este texto aparece
inicialmente selecionado. Para no mostrar um texto padro use uma string vazia (). Veja um
exemplo a seguir:
InputBox ('Escolha de pas', 'Digite o nome do pas:', 'Brasil');
Para recuperar o que foi digitado na InputBox, use uma varivel para armazenar o valor. No
exemplo a seguir, usada uma varivel NomeDoPais, do tipo String:
procedure TForm1.Button1Click(Sender: TObject);
var
NomeDoPais: String;
begin
NomeDoPais := InputBox ('Escolha de pas', 'Digite o nome do
pas:', 'Brasil');
ShowMessage ('Nome do pas escolhido: ' + NomeDoPais);
end;
O exemplo l um nome de pas, usando a funo InputBox, e exibe esse nome em uma caixa
de mensagem.
__ www.gomeshp.com _________________________________________________________________________
32
7.6. EXERCCIOS
1. Crie a linha de comando para cada uma das caixas de dilogo apresentadas abaixo e teste-as no
Delphi:
__ www.gomeshp.com _________________________________________________________________________
33