Você está na página 1de 7

Apostila de Delphi 7.

0
_______________________________________________________________________ Profa. Gilene B. Gomes ______

10. 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.

10.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 e que retorne uma resposta do usurio, indicando qual boto foi escolhido. Para a
entrada de informaes simples, voc pode usar a funo InputBox.

10.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:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Este comando no pode ser usado no momento.');
end;
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 _________________________________________________________________________

38

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

10.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 _________________________________________________________________________

39

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.
O terceiro parmetro <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
mbOKCancel

Mostra os botes Yes, No e Cancel.


Mostra os botes Abort, Retry 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
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:
mrNone
mrNo

10.4. USANDO

mrAbort
mrCancel

A FUNO

mrYes
mrIgnore

mrOk
mrAll

mrRetry

MESSAGEBOX

Esta funo pertence biblioteca do Windows (API). O Delphi a relaciona ao objeto do tipo
TApplication.
Application.MessageBox (<Mensagem>, <Titulo>, <Tipo>);
Onde:
<Mensagem> - expresso mostrada dentro do quadro de dilogo.
<Titulo> - ttulo do quadro de mensagem (barra de ttulo).
<Tipo> - somatria de nmeros, conforme o que queremos que seja exibido no quadro de
mensagem, seguindo a tabela Tipo.

__ www.gomeshp.com _________________________________________________________________________

40

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

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 que recebe um valor sobre qual boto foi selecionado.
Tipo = 36 foi somado 4 (Botes Sim, No) com 32 (Sinal de Pesquisa).

__ www.gomeshp.com _________________________________________________________________________

41

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

10.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 um string vazio (). 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 _________________________________________________________________________

42

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

11. EXERCCIOS
1. Crie a linha de comando para cada uma das caixas de dilogo apresentadas abaixo e teste-as no
Delphi:

__ www.gomeshp.com _________________________________________________________________________

43

Apostila de Delphi 7.0


_______________________________________________________________________ Profa. Gilene B. Gomes ______

__ www.gomeshp.com _________________________________________________________________________

44

Você também pode gostar