Apostila de Delphi 7.0
_______________________________________________________________________ Profa. Gilene B. Gomes ______
7. 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.
7.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 em português 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.
7.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:
ShowMessage('Este comando não pode ser usado no momento.');
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 _________________________________________________________________________
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 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
MessageDlg ('Mensagem de informação’,
mtInformation, mbOKCancel, 0);
mtWarning
MessageDlg ('Mensagem de aviso’,
mtWarning, mbOKCancel, 0);
mtError
MessageDlg ('Mensagem de erro', mtError,
mbOKCancel, 0);
mtConfirmation
MessageDlg ('Mensagem de confirmação',
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 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.
<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
mbAbortRetryIgnore
mbAbortIgnore
mbOKCancel
Mostra os botões Yes, No e Cancel.
Mostra os botões Abort, Retry e Ignore.
Mostra os botões Abort e Ignore.
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, mbYesToAll,
mbNoToAll
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:
mrOk
mrCancel
7.4. USANDO
mrRetry
mrIgnore
A FUNÇÃO
mrYes
mrNo
mrNone
mrAbort
mrNoToAll
mrYesToAll
mrAll
MESSAGEBOX
Esta função pertence à biblioteca do Windows (API), sendo que os títulos dos botões
aparecem em Português. 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> - expressão mostrada dentro da caixa de diálogo.
<Titulo> - barra de títulos da caixa de diálogo.
<Tipo> - somatória de números, conforme o que se quer exibir na caixa de diálogo,
seguindo a tabela abaixo:
Argumento Tipo para a função MessageBox:
Valor
0
1
2
3
4
5
16
32
48
64
0
256
512
Significado
Somente o botão de OK
Botões de OK e Cancelar
Botões Anular, Repetir e Ignorar
Botões Sim, Não, Cancelar
Botões Sim, Não
Botões Repetir e Cancelar
Sinal de Stop
Sinal de Pesquisa
Sinal de Aviso
Ícone de Informação
Primeiro botão com foco
Segundo botão com foco
Terceiro botão com foco
Valores possíveis de retorno em relação a resposta do usuário:
Valor
1
2
3
4
5
6
7
Botão pressionado
Botão OK
Botão Cancelar
Botão Anular
Botão Repetir
Botão Ignorar
Botão Sim
Botão Não
Um exemplo:
resp:= Application.MessageBox ('Este é um exemplo, você entendeu?',
'Função MessageBox', 36);
resp – é uma variável do tipo integer (inteiro), que recebe o valor do botão pressionado.
36 = 32 (Sinal de Pesquisa) e 4 (Botões Sim, Não).
__ www.gomeshp.com _________________________________________________________________________
31
Apostila de Delphi 7.0
_______________________________________________________________________ Profa. Gilene B. Gomes ______
7.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 uma string vazia (‘’). 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 _________________________________________________________________________
32
Apostila de Delphi 7.0
_______________________________________________________________________ Profa. Gilene B. Gomes ______
7.6. 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 _________________________________________________________________________
33
Download

Caixas de Diálogo