Você está na página 1de 6

Apostila de Delphi 7.

0
_______________________________________________________________________ Profa. Gilene B. Gomes ______

7. CAIXAS DE DILOGO PREDEFINIDAS


O Delphi oferece vrios comandos para a exibio de caixas de dilogo comuns, como caixas
de mensagem (Message Boxes) e caixas de entrada (Input Boxes). Esses comandos permitem que
aplicativos com recursos simples de entrada e sada sejam criados rapidamente.

7.1. MESSAGE BOXES (CAIXAS

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:

Como padro, exibido o nome do projeto na barra de ttulo da caixa de mensagem.

__ www.gomeshp.com _________________________________________________________________________

28

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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

Mostra os botes Yes, No e Cancel.


Mostra os botes Abort, Retry e Ignore.
Mostra os botes Abort e Ignore.
Mostra os botes OK e Cancel.

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);

MessageDlg retorna um valor do boto selecionado pelo usurio. Estes so os possveis


valores de retorno:
mrOk
mrCancel

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

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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

Valores possveis de retorno em relao a resposta do usurio:


Valor
1
2
3
4
5
6
7

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

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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

Você também pode gostar