210 likes | 277 Views
Learn how to display dialog boxes for user actions, use MessageBox function to present options, handle flags and buttons, and work with ShowMessage, InputBox, and InputQuery. Enhance user experience with interactive dialogs and input fields.
E N D
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Objetivo • As vezes pode ser necessário apresentar uma caixa de diálogo solicitando para o usuário alguma ação como Ok, No ou Cancelar • Ou ainda pode ser necessário apresentar uma mensagem em uma caixa com um simples botão Ok
Equivalencia de funções • Exibição de dados • Leitura de dados
MessageBox • Apresenta uma caixa ao usuário com algumas opções • Sintaxe MessageBox(handle, mensagem, titulo, flag);
MessageBox • handle - é um identificador do formulário (Form1). • mensagem - é um texto que será exibido no centro da caixa de diálogo MessageBox(); • titulo - é um texto que será mostrado na barra de título da caixa de diálogo MessageBox(); • flag - são constantes que podem ser combinadas para exibir ícone, botões e outras caracteristicas à caixa de diálogo MessageBox();
MessageBox – Flags • Quando se quer mostrar mais de um botão se usa a constante que representa o grupo
MessageBox - Flags • Também é possível selecionar o ícone. Usa-se uma das constantes que representa o ícone
MessageBox • Exemplo de uso MessageBox(0,"Gostaria de continuar ?", "Quer continuar ?", MB_YESNO | MB_ICONWARNING);
MessageBox • Obtendo a opção selecionada • Dependendo da opção selecionada um valor initeiro é retornado representando uma das seguintes constantes
MessageBox • Flag que define o botão selecionado por padrão MB_DEFBUTTON1 primeiro botão MB_DEFBUTTON2 segundo botão MB_DEFBUTTON3 terceiro botão
MessageBox • Exemplo de uso: void __fastcallTForm1::Button1Click(TObject *Sender){int Botao;char *titulo = "Confirmação";char *mensagem = “Enviar dados?"; Botao=MessageBox(Form1->Handle, mensagem,titulo, MB_YESNOCANCEL+ MB_ICONQUESTION+ MB_DEFBUTTON3 ); if(Botao == IDYES)Label1->Caption = "Você clicou no botão SIM";if(Botao == IDNO)Label1->Caption = "Você clicou no botão NÃO";if(Botao == IDCANCEL)Label1->Caption = "Você clicou no botão CANCELAR"; }
ShowMessage • Mostra uma box com um botão de ok para o usuário clicar • Serve para mostrar informações • Exemplo de uso ShowMessage("Voce acaba de abrir uma caixa de mensagem");
InputBox • Afunção InputBox() permite que o usuário digite uma string de caracteres numa caixa de diálogo e armazene seu conteúdo numa variável do tipo string. • A função InputBox() exibirá uma caixa de diálogo com um titulo, uma mensagem de prompt, uma campo de digitação e os botões OK e Cancelar. Se o botão OK for pressionado a função InputBox() retorna a string que estiver dentro do campo de digitação. • InputBox() também permite que um valor inicial padrão seja colocado dentro da caixa de edição, antes que o usuário digite qualquer valor. Se o botão Cancelar for pressionado, a função InputBox() retorna o valor padrão, mesmo que o usuário tenha digitado qualquer valor no campo de digitação.
InputBox • Sintaxe: Texto = InputBox(Titulo, Mensagem, ValorPadrao); • Titulo - onde poderemos escrever uma mensagem na barra de título da janela da caixa de diálogo; • Mensagem - é um texto que sugere o que o usuário digitará no campo de edição; • ValorPadrao - é um valor padrão que a função InputBox() usará quando o botão Cancelar for pressionado;. • Texto - é uma variável string que armazenará o valor retornado pela função InputBox().
InputBox void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString Texto; Texto = InputBox("Entrada de dados", "Digite um nome:", "String padrão"); Label1->Caption = Texto; }
InputQuery • A função InputQuery() permite que o usuário digite uma string de caracteres numa caixa de diálogo e armazene seu conteúdo numa variável do tipo string. • InputQuery() também permite que um valor inicial padrão seja colocado dentro da caixa de edição, antes que o usuário digite qualquer valor. • Ao contrário de InputBox que retorna uma string, InputQuery retorna dois valores • A string digitada • Verdadeiro (se clicado OK) Falso (se clicado Cancelar)
InputQuery • Sintaxe: Botao = InputQuery(Titulo, Mensagem, Valor); • Titulo - onde poderemos escrever uma mensagem na barra de título da janela da caixa de diálogo; • Mensagem - é um texto que sugere o que o usuário digitará na caixa de edição; • Valor - é uma variável do tipo string que armazenará o texto que o usuário digitar no teclado • Botao - é um valor retornado pela função InputQuery() que representa a tecla pressionada (OK ou Cancelar).
InputQuery • Exemplo int Botao; UnicodeString Valor = "Nenhum valor digitado"; AnsiString Titulo = "Caixa de entrada"; AnsiString Mensagem = "Digite seu nome:"; Botao = InputQuery("Valor","Mensagem",Valor); Label2->Caption = Valor; if(Botao == 1) //OK Label1->Caption = "Foi clicado no botão OK."; if(Botao == 0) //Cancel Label1->Caption = "Foi clicado no botão Cancelar";