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 mtWarning
MessageDlg ('Mensagem de informao, MessageDlg ('Mensagem de aviso,
mtInformation, mbOKCancel, 0); mtWarning, mbOKCancel, 0);

mtError mtConfirmation
MessageDlg ('Mensagem de erro', mtError, MessageDlg ('Mensagem de confirmao',
mbOKCancel, 0); 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 Mostra os botes Yes, No e Cancel.


mbAbortRetryIgnore Mostra os botes Abort, Retry e Ignore.
mbOKCancel 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 mrAbort mrYes mrOk mrRetry


mrNo mrCancel mrIgnore mrAll

10.4. USANDO A FUNO 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 Significado
0 Somente o boto de OK
1 Botes de OK e Cancelar
2 Botes Anular, Repetir e Ignorar
3 Botes Sim, No, Cancelar
4 Botes Sim, No
5 Botes Repetir e Cancelar
16 Sinal de Stop
32 Sinal de Pesquisa
48 Sinal de Aviso
64 cone de Informao
0 Primeiro boto com foco
256 Segundo boto com foco
512 Terceiro boto com foco

Valores possveis de retorno em relao a resposta do usurio:

Valor Boto pressionado


1 Boto OK
2 Boto Cancelar
3 Boto Anular
4 Boto Repetir
5 Boto Ignorar
6 Boto Sim
7 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