EVENTOS, MÉTODOS E PROPRIEDADES
Eventos
Os programas feitos em Delphi são orientados a eventos. Eventos são as ações normalmente geradas
pelo usuário e que podem ser reconhecidas e tradadas pelo programa. Por exemplo, Clicar o mouse
sobre um componente, focar um componente, mover o mouse sobre um componente, entre outros.
Os eventos podem ser também gerados pelo windows. Existem eventos associados ao formulário e
cada componente inserido neste. Por exemplos, o OnShow é o evento que ocorre quando mostramos
o formulário na tela, ao componente botão está ligado o evento OnClick, que ocorre quando damos
um click com o mouse sobre o botão.
- Eventos comuns ao formulário e aos componentes:
-
OnClick: ocorre quando o usuário clica o objeto.
OndblClick: ocorre quando o usuário da um duplo clique.
OnKeyDown: ocorre quando uma tecla é pressionado e o objeto tem o foco.
OnKeyUp: ocorre quando o usuário solta uma tecla enquanto o objeto tem o foco.
OnKeyPress: ocorre quando usuário da um clique numa tecla ANSI.
OnMouseDown: ocorre quando o usuário pressiona o botão do mouse.
OnMouseUp: ocorre quando o usuário solta o botão do mouse.
OnMouseMove: ocorre quando o usuário move o ponteiro do mouse.
- Rotinas que Respondem a Eventos:
Cada evento gera uma procedure, aonde você deve inserir as linhas de código que envolvem este
evento. Por exemplo, o evento OnClick, que é gerado ao clicarmos em um botão chamado BTNSair, cria
a procedure:
Procedure TForm1.BTNSairClick(Sender: Tobject);
onde TForm1 é o objeto TForm que contém o botão BTNSair, e Sender é um objeto Tobject que
representa o componente que deu origem ao evento. Se você quiser inserir uma rotina que trate um
determinado evento de um componente, faça o seguinte:
1. Clique sobre o componente;
2. No Object Inspector, seleciona a página Events;
3. Dê um duplo clique sobre o evento para o qual quer inserir o código;
4. Entre no editor de código e escreva as linhas de código.
Exemplo:
Procedure TForm1.BTNSairClick(Sender: Tobject); begin Form1.Close; end;
Obs.: Escreva seu código entre o begin e o end, se por acaso você quiser retirar o evento e o
componente, retire primeiro os eventos do componente removendo somente o código que você
colocou e depois o componente; os resto dos procedimentos o DELPHI tira para você.
Propriedades
Uma propriedade representa um atributo de um objeto. No Delphi todas as coisas que aparecem no
Object Inspector são propriedades, inclusive os eventos, porém sua referência é a um método.
Como vimos, eventos podem estar associados a modificações em propriedade de componente e
formulário, ou seja, você pode modificar propriedades de formulários e componentes durante a
execução do sistema. Para isso, você deverá usar a sintaxe:
<componente>.<propriedade>;
Por exemplo, para modificar a propriedade text de uma caixa de edição Edit1 para “Bom Dia” faça:
Edit1.Text := ‘Bom Dia’;
Se a propriedade do componente tiver subpropriedades, para acessa-lás, utilize a seguinte sintaxe:
<componente>.<propriedade>.<subpropriedade>
Por exemplo, para modificar a subpropriedade Name, referente à propriedade fonte de uma caixa de
edição Edit1, para ‘Script’, faça:
Edit1.Font.name := ‘Script’;
Obs.: Verifique o tipo da propriedade para antes de mandar o valor, consultando no Objetc
Inspector.
Métodos
São procedures ou funções embutidas nos componentes e formulários, previamente definidas pelo
Delphi.
Exemplos de métodos:
Show : Mostra um formulário;
Hide : Esconde um formulário mais não o descarrega;
Print : Imprime um formulário na impressora;
SetFocus : Estabelece o foco para um formulário ou componente;
- Chamado de métodos como resposta a eventos:
Um evento pode gerar a chamada para um método, ou seja, uma subrotina previamente definida para
um componente.
No código, para utilizar um método, use a seguinte sintaxe:
<nome do objeto>.<método>
Por exemplo, clicar em um botão pode dar origem ao evento Show de outro formulário, mostrando
este novo formulário na tela:
Form2.show;
Principais teclas de atalho da IDE do Delphi
-
F9: Executar;
F8: Executa passo a passo sem entrar em sub-rotinas;
F7: Executa passo a passo entrando em sub-rotinas;
CTRL+F9: Compila;
CTRL + SHIFT + (um número de 0 a 9 ): marca uma posição no texto;
CTRL + (um número de 0 a 9 ): vai para uma posição previamente marcada;
F11: Painel de propriedades;
F12: Comuta entre o formulário e a tela de codificação;
CTRL+F2: pára a execução de um programa;
- CTRL+F1: Executa o HELP a respeito do texto onde o cursor estava posicionado.
Eventos mais utilizados no Delphi
OnKeyPress: Use este evento para capturar as teclas pressionadas sobre o objeto. Este evento
captura apenas teclas da tabela ASC II, utilizando para isso uma variável KEY do tipo char. Teclas como
shift ou F1 não são possíveis de serem capturadas neste evento. Não é possível também capturar
seqüências de teclas, como Shift+A. Para estes casos utilize o evento OnKeyDown ou OnKeyUp. A
variável KEY representa o caractere ASC II da tecla pressionada. Para anularmos a tecla pressionada
atribuímos #0 ao parâmetro KEY.
-
Exemplo:
// neste exemplo capturamos a tecla ENTER através de seu caractere ASC II
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); // evento de um
TEdit begin if key = #13 then begin showmessage('Você pressionou ENTER.');
Edit2.setfocus; // manda o foco para o componente edit2 end; end;
// neste exemplo capturamos teclas através de seu valor e não se seu nº na tabela
ASC II
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin
if key in ['a' .. 'z', 'A'..'Z'] then begin // permite apenas as letras de ‘a’ à ‘Z’ maiúsculas
e minúsculas
showmessage('Você pressionou a tecla: [' + key + ']' ); // exibe a tecla pressionada
end; end;
OnKeyDown: Este evento faz tudo o que o evento onKeyPress faz porém é capaz de processar
sequências de teclas, como CTRL+Z por exemplo. Também é capaz de capturar teclas como TAB, F1,
CAPS LOCK, NUM LOCK, INSERT, etc... A variável KEY é do tipo word (um inteiro que não aceita
negativo). Para anularmos a tecla pressionada atribuímos 0 ao parâmetro KEY.
-
Exemplo:
// neste exemplo exibimos o nº da tecla pressionada. Ideal para se descobrir o nº de uma tecla.
procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin
showmessage( 'Você pressionou a tecla nº: ' + intToStr(key) ); end;
OnClick: Este evento é disparado sempre que clicamos sobre o objeto.
Exemplo:
procedure TForm1.FormClick(Sender: TObject); begin showmessage('Você clicou no formulario!');
end;
OnDblClick: Este evento é disparado sempre que executamos um duplo clique sobre o objeto em
questão. Este evento não ocorrerá se o evento OnClick também foi programado.
Exemplo:
procedure TForm1.FormDblClick(Sender: TObject); begin showwmessage('Você deu um duplo clique
no formulario!'); end;
OnMouseMove: Este é um evento pouco utilizado em aplicações normais (cadastros p.ex.). Ele
é disparado sempre que o mouse é movimentado sobre o objeto. É possível ainda saber o status de
teclas como CTRL, ALT, SHIFT e etc. além das posições X e Y do mouse.
-
Exemplo:
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin
showMessage('Tira esse mouse daqui!'); end;
-
OnEnter: Este evento é disparado quando o objeto recebe o foco.
Exemplo:
procedure TForm1.Edit1Enter(Sender: TObject); begin
(sender as TEdit).color := clYellow; // altera a cor do objeto passado no parâmetro
SENDER end;
-
OnExit: Este evento é disparado quando o objeto perde o foco.
Exemplo:
procedure TForm1.Edit1Exit(Sender: TObject); begin
(sender as TEdit).color := clWhite; // altera a cor do objeto passado no parâmetro
SENDER end;
6.3 Formulário
- Principais eventos do formulário:
OnClose: Este evento ocorre sempre ocorre uma tentativa de se fechar o formulário, por
exemplo, ao executar-se o método close. Podemos neste evento, por exemplo, fechar as tabelas
utilizadas.
OnShow: Este evento ocorre sempre que o formulário é exibido. Por exemplo, ao executar-se o
método show. Podemos neste evento, por exemplo, limpar os componentes da tela, inicializar
variáveis, abrir tabelas e etc.
Exemplo:
procedure TForm1.FormShow(Sender: TObject); begin showmessage('Exibindo o formulário.'); end;
Palheta Standard
TMainMenu: Este componente é utilizado para criar menus. Sua utilização é bem simples.
Coloque um na tela e execute um duplo-clique para começar a criar o menu. Todos os itens do menu
são objetos do tipo TmenuItem e possuem o evento onClick.
-
TPopupMenu: Este componente permite a exibição de um menu popUp de forma simples.
Coloque um na tela e associe-o à propriedade popupMenu dos objetos (nem todos a possuem). Para
criar o menu dê um duplo-clique sobre o objeto popupMenu e monte-o da mesma forma que no objeto
TMainMenu.
-
-
TLabel: Utilizado para exibir uma mensagem no formulário.
TEdit: Este componente permite que o usuário entre com um texto. Sua principal propriedade
é a text que armazena o que foi digitado.
-
TMemo: Utilizado para digitação de texto onde é necessário mais que uma linha. Sua principal
propriedade é a lines, onde é possível acessar o texto digitado através da propriedade text ou então
linha por linha através de lines[linha]. Para adicionar um texto podemos utilizar o método lines.add()
ou mesmo através de text.
-
-
TButton: Este botão não permite a utilização de imagens.
TCheckbox: Este objeto armazena o valor de ligado ou não em sua propriedade boolean
denominada checked.
-
TRadiobutton: Este objeto é utilizado quando possuímos várias opções, porém apenas uma
deve ser selecionada. Sua principal propriedade é a checked que indica se objeto foi selecionado ou
não.
-
-
TListbox: Este objeto permite a seleção de uma ou mais opções.
TCombobox: Este objeto é utilizado quando possuímos várias opções, porém apenas uma deve
ser selecionada. Utilize a propriedade ItemIndex para saber se alguma opção foi selecionada. Esta
propriedade inicia do “0” e “-1” indica que nada foi selecionado.
-
TRadioGroup: Este componente é similar ao TRadioButton, porém seus itens são criados
através da propriedade itens, onde cada linha indica uma nova opção.
-
-
TGroupbox: Utilizado para agrupar componentes.
-
TPanel: Utilizado para agrupar componentes.
Download

Eventos, Propriedades, Métodos, Atalhos