Você está na página 1de 7

Apostila de Delphi 7.

0
_______________________________________________________________________ Profa. Gilene B. Gomes ______

10. CAIXAS DE DIÁLOGO PREDEFINIDAS

O Delphi oferece vários comandos para a exibição de caixas de diálogo comuns, como caixas
de mensagem (Message Boxes) e caixas de entrada (Input Boxes). Esses comandos permitem que
aplicativos com recursos simples de entrada e saída sejam criados rapidamente.

10.1. MESSAGE BOXES (CAIXAS DE MENSAGEM)

As caixas de mensagem são usadas para exibir resultados, erros, ou avisos para o usuário.
Elas são caixas modais (bloqueiam a execução do programa quando são exibidas).

Há funções para mostrar caixas de mensagem no Delphi. A mais simples é ShowMessage,


que mostra apenas uma mensagem e um botão OK. Já a função MessageDlg oferece mais opções,
como símbolos e títulos diferentes. A função MessageBox permite criar um quadro de mensagem
com vários botões e que retorne uma resposta do usuário, indicando qual botão foi escolhido. Para a
entrada de informações simples, você pode usar a função InputBox.

10.2. USANDO O COMANDO SHOWMESSAGE

Use o comando ShowMessage para mostrar uma mensagem simples para o usuário. A
mensagem é exibida em uma pequena caixa, com um botão OK. A caixa é fechada quando o botão
OK é clicado.

No exemplo abaixo, uma caixa de mensagem é exibida quando o botão Button1 recebe um
clique:

procedure TForm1.Button1Click(Sender: TObject);


begin
ShowMessage('Este comando não pode ser usado no momento.');
end;

A caixa de mensagem exibida é a seguinte:

Como padrão, é exibido o nome do projeto na barra de título 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 símbolos
especiais, botões adicionais e outros elementos. O comando tem vários parâmetros que devem ser
especificados. Veja a sintaxe do comando MessageDlg:

MessageDlg(<Mensagem>,<Tipo da Caixa>,<Botões>,<Número de ajuda>);

<Mensagem> é um trecho de texto entre aspas simples, como para o comando


ShowMessage.
<Tipo da Caixa> determina o símbolo que será exibido na parte esquerda da caixa. Os
cinco tipos disponíveis são ilustrados a seguir, além do comando usado para exibir cada tipo de
caixa.

mtInformation mtWarning
MessageDlg ('Mensagem de informação’, MessageDlg ('Mensagem de aviso’,
mtInformation, mbOKCancel, 0); mtWarning, mbOKCancel, 0);

mtError mtConfirmation
MessageDlg ('Mensagem de erro', mtError, MessageDlg ('Mensagem de confirmação',
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 títulos das caixas de mensagem são sempre o nome do tipo da caixa, com
exceção da opção mtCustom que exibe o nome do projeto como título (e não mostra símbolo
especial). Infelizmente, os títulos são sempre em inglês. Não há como especificar outros títulos para
as caixas usando o comando MessageDlg.
O terceiro parâmetro – <Botões> – é usado para definir o conjunto de botões que será
exibido na parte de baixo da caixa de mensagem. Há alguns conjuntos de botões predefinidos. Um
deles foi usado nos exemplos anteriores: mbOKCancel, que mostra os botões OK e Cancel. Os
conjuntos predefinidos são resumidos a seguir:

mbYesNoCancel Mostra os botões Yes, No e Cancel.


mbAbortRetryIgnore Mostra os botões Abort, Retry e Ignore.
mbOKCancel Mostra os botões OK e Cancel.

Pode-se também adicionar botões específicos, listando o nome dos botões entre colchetes.
Os botões disponíveis são:

mbYes, mbNo, mbOK, mbCancel, mbHelp, mbAbort, mbRetry, mbIgnore, mbAll

Por exemplo, para mostrar uma caixa de mensagem de aviso com os botões, 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


execução do aplicativo?’, mtWarning, [mbYes, mbNo, mbIgnore, mbHelp],0);

MessageDlg retorna um valor do botão selecionado pelo usuário. Estes são os possíveis
valores de retorno:

mrNone mrAbort mrYes mrOk mrRetry


mrNo mrCancel mrIgnore mrAll

10.4. USANDO A FUNÇÃO MESSAGEBOX

Esta função pertence à biblioteca do Windows (API). O Delphi a relaciona ao objeto do tipo
TApplication.

Application.MessageBox (<Mensagem>, <Titulo>, <Tipo>);

Onde:
<Mensagem> - expressão mostrada dentro do quadro de diálogo.
<Titulo> - título do quadro de mensagem (barra de título).
<Tipo> - somatória de números, 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 função MessageBox:

Valor Significado
0 Somente o botão de OK
1 Botões de OK e Cancelar
2 Botões Anular, Repetir e Ignorar
3 Botões Sim, Não, Cancelar
4 Botões Sim, Não
5 Botões Repetir e Cancelar
16 Sinal de Stop
32 Sinal de Pesquisa
48 Sinal de Aviso
64 Ícone de Informação
0 Primeiro botão com foco
256 Segundo botão com foco
512 Terceiro botão com foco

Valores possíveis de retorno em relação a resposta do usuário:

Valor Botão pressionado


1 Botão OK
2 Botão Cancelar
3 Botão Anular
4 Botão Repetir
5 Botão Ignorar
6 Botão Sim
7 Botão Não

Um exemplo:

resp:= Application.MessageBox ('Este é um exemplo, você entendeu?',


'Função MessageBox', 36);

resp – é uma variável que recebe um valor sobre qual botão foi selecionado.
Tipo = 36 – foi somado 4 (Botões Sim, Não) com 32 (Sinal de Pesquisa).

__ www.gomeshp.com _________________________________________________________________________ 41
Apostila de Delphi 7.0
_______________________________________________________________________ Profa. Gilene B. Gomes ______

10.5. USANDO A FUNÇÃO INPUTBOX

Essa função mostra uma caixa simples com um campo para a entrada (um componente Edit)
de dados e os botões OK e Cancel. InputBox retorna uma String com o texto digitado pelo usuário. A
função InputBox recebe três parâmetros:

InputBox (<Título da Caixa>, <Texto do prompt>, <Texto padrão>);

<Título da Caixa> define o texto que é exibido na barra de título da caixa.


<Texto do prompt> é o texto exibido na parte interna da caixa.
<Texto Padrão> é o texto padrão exibido dentro do campo de entrada. Este texto aparece
inicialmente selecionado. Para não mostrar um texto padrão use um string vazio (‘’). Veja um
exemplo a seguir:

InputBox('Escolha de país', 'Digite o nome do país:', 'Brasil');

Para recuperar o que foi digitado na InputBox, use uma variável para armazenar o valor. No
exemplo a seguir, é usada uma variável ‘NomeDoPais’, do tipo String:

procedure TForm1.Button1Click(Sender: TObject);


var
NomeDoPais: String;
begin
NomeDoPais := InputBox ('Escolha de país', 'Digite o nome do
país:', 'Brasil');
ShowMessage ('Nome do país escolhido: ' + NomeDoPais);
end;

O exemplo lê um nome de país, usando a função InputBox, e exibe esse nome em uma caixa
de mensagem.

__ www.gomeshp.com _________________________________________________________________________ 42
Apostila de Delphi 7.0
_______________________________________________________________________ Profa. Gilene B. Gomes ______

11. EXERCÍCIOS

1. Crie a linha de comando para cada uma das caixas de diálogo 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