Você está na página 1de 10

Eventos

Propriedades
Dicas
Erros
As propriedades e os eventos do Delphi, esto na janela do Object Inspector. Quando
carregamos o Delphi, a janela Object Inspector normalmente aparece no lado esquerdo.
Caso isso no acontea, pressione a tecla F11, ou v at o Menu View / Object
Inspector. Nem todos os eventos, bem como as propriedades so iguais nos controles.
Existem eventos e propriedades que podem existir em vrios controles, e outros
somente em um. Abaixo, est a figura desta janela.

Como voc pode perceber, existem duas guias. A primeira para alterarmos as
propriedades, e a segunda dos eventos. Abaixo esto alguns eventos.
Eventos
OnChange
OnEnter
OnExit
OnClick
OndblClick
OnShow
OnClose
OnActivate
OnMouseMove

Quando alteramos o contedo em uma caixa de textos


Quando uma caixa ganha o foco
Quando uma caixa perde o foco
Quando ocorre um clique do mouse
Quando ocorre um duplo clique do mouse
Quando o formulrio est sendo carregado
Quando o formulrio descarregado (fechado)
Quando o formulrio j foi carregado

Quando passa o mouse sobre um controle

OnKeyPress

Quando uma determinada tecla pressionada

Propriedades
Propriedades do componente Label (Guia Standard)
Hint
ShowHint
Align
AutoSize
WordWrap
Height
Width
Left
Top

um balozinho que aparece quando passamos o mouse


Quando True, exibe a mensagem existente na propriedade Hint
Permite alinhar o contedo do label
Quando True (padro) o tamanho do label automaticamente fica
do tamanho do contedo existente
Quando a propriedade AutoSize estiver como False, faz com o
contedo do Label passe para a prxima linha
Altura do controle
Largura do controle
a posio que o controle tem em relao esquerda do
formulrio
a posio que o controle tem em relao parte de cima do
formulrio

Propriedades do componente Edit (Guia Standard)


ReadOnly

TabOrder

PassWordChar

TabStop

MaxLenght

Enabled
CharCase

Quando os dados de uma caixa esto bloqueados (Somente


Leitura)
Indica a order de tabulao que o cursor ir respeitar, quando
voc apertar a tecla Tab, ou seja: quando voc vai inserindo por
exemplo caixas de textos, o Delphi, vai automaticamente
indicando a ordem nesta propriedade. A primeira caixa (ou
controle) sempre iniciar no nmero 0, e assim sucessivamente
Permite por exemplo colocar na caixa de senha, um smbolo,
para que o usurio no identifique o que est sendo digitado,
como por exemplo o * (asterisco)
Indica se a prxima caixa vai receber o foco, quando
pressionarmos a tecla Tab. Se estiver como False, o controle
no receber o foco
a quantidade mxima de caracteres que pode ser digitada
dentro de um controle. O padro 0 (zero), ou seja: no h
limite
Indica se a caixa ou outro controle ficar habilitada ou no
(disponvel) para o usurio digitar, clicar. Quando False, no
fica habilitada
Indica se as letras ficaro em Maisculas (ecUpperCase) ou

Minsculas (ecLowerCase)
Propriedades do Formulrio
BorderIcons
Position
WindowsState

BorderIcons

BorderStyle

FormStyle

Permite ativar/desativar os botes: maximizar, minimizar, help,


menu de controle
Permite escolher a posio que o formulrio ter quando for
carregado
Permite escolher se o formulrio ficar, maximizado, normal ou
minimizado
Possui as seguintes opes
biSystemMenu: Mostra ou no a caixa de menu (cone
de menu);
biMinimize: Mostra ou no o boto minimizar;
biMaximize: Mostra ou no o boto maximizar;
biHelp: Mostra ou no o boto help;
Permite mostrar ou no alguns dos botes acima, bem como se
o formulrio ser redimensionado ou no. Ex.: a opo
bsToolWindow, s apresenta o boto Fechar e no permite que
o formulrio seje redimensionado
Permite configurar se o formulrio ser normal (fsNormal),
MDI (fsMDIForm) , formulrio filho (fsMDIChild)

Icon

Permite colocar um cone que ficar na barra de ttulo

PopupMenu

Informe nesta propriedade o nome do controle PopupMenu (Menu de


Contexto - ativado com o boto direito do mouse)

Obs.: Existe no Delphi, trs tipos de boto:


Na guia Standard button. Este boto no permite a colocao de cones
Na guia Additional bitbtn que permite a colocao de cones
Na guia Additional SpeedButton que utilizado para construir barra de ferramentas.
Glyph
Permite colocar cone
(Bitbtn/SppedButton)
Este boto j traz pronto o cone em cada opo. Nesta
Kind
propriedade por exemplo, se escolher bkClose, o boto
(Bitbtn/SppedButton) automaticamente quando for clicado, fecha o formulrio, no
necessitando assim de programa-lo para isso
Permite que seja utilizado a tecla Enter para executar a
Default
codificao existente neste boto, se o mesmo estiver como
True
Permite que seja utilizado a tecla Esc para que o formulrio seja
fechado quando pressionarmos esta tecla, se a mesma estiver
Cancel
como True.. No se esquea de codificar este boto com a
instruo Close

Propriedades do componente Table (Guia Data Access)


Active
DataBaseName
TableName
Filter
Filtered
MasterSource

Quando True indica que a tabela est aberta. False, fechada


Caminho (pasta) onde est salvo a tabela. utilizado o Alias
tambm, que mais fcil de trabalhar
Nome da tabela
Permite aplicar um filtro, para selecionar determinados registros
Quando True, faz com que o filtro seja aplicado
Faz a ligao de uma tabela com a outra

Propriedades do componente DataSource (Guia Data Access)


DataSet

Indica a ligao do componente Table. s clicar na seta para


selecionar qual a tabela

Alguns prefixos utilizados no Delphi na propriedade Name


frm
lbl
edt / txt
btn / cmd
pnl
lst
cmb
dbe
tb
ds
rg
dbrg
dblkpcmb
ado

Form
Label
Edit
Button
Panel
List Box
Combo Box
DBEdit
Table
Data Source
Radio Group
Radio Group para banco de dados
Combo Box para banco de dados
AdoTable

Dicas

Preencher um combo com as fontes


Impresso no Delphi pelo Objeto Printer
Utilizao da Tecla Enter
Formatar valores tipo moeda
Utilizao da Tecla Enter 2

Reindexar arquivos
Colocando vrios controles iguais
Mover e Redimendionar controles
Variveis
Funes de converso
Chamando o help
Para carregar um formulrio Modal
Para carregar um formulrio no Modal
Para esconder um formulrio
Caixa de Mensagens
Criando Menu
Acessando o Menu com o boto direito

Carregar uma imagem no componente Image

Exibindo Data e Hora no componente statusbar

Diferena entre duas datas

S permitir nmeros em edit

S permitir letras em edit

Preencher um combo com as fontes


procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to Screen.Fonts.Count - 1 do
ComboBox1.Items.Add(Screen.Fonts[i]);
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
RichEdit1.Font.Name := ComboBox1.Items[ComboBox1.ItemIndex];
end;
Impresso no Delphi pelo Objeto Printer
var FPrn: System.Text;
begin
AssignPrn(FPrn);
Rewrite(FPrn);
try
Writeln(FPrn, 'Teste');
Writeln(FPrn, txtImprimir.Text);
Finally
CloseFile(FPrn);
end;

end;
Obs.: Acrescente na seo uses a unit: Printers, pois ela que far com que alguns dos
comandos acima sejam reconhecidos pelo Delphi.
Cdigo de controle e fontes
Cdigo de controle Comando
#9 Tab (Tab)
#10 New Line (Nova Linha)
#13 Carriage Return (Retorno de carro - Enter)
^L New Page (Nova Pgina)
Exemplo:
Write(FPrn, #9); //Tab
Write(FPrn, #13); //Esvazia buffer de sada
Write(FPrn, #10); //Esvazia e incia nova linha
Write(FPrn, ^L); //Esvazia e incia nova pgina
with Printer.Canvas do
begin
Font.Name := 'Courier New';
Font.Size := 9;
end;
obs.: Chame sempre Assign e Rewrite antes de mudar os valores da propriedade Font na
Canvas da Printer
Exemplo de WriteLn e Write
WriteLn(FPrn, 'Nmero de Componentes = ', ComponenteCount);
Use Write para imprimir texto e no iniciar uma nova linha. Por exemplo, as linhas a
seguir so equivalentes a anterior:
Write(FPrn, 'Nmero de Componentes =');
Write(FPrn, ComponenteCount);
Write(FPrn); //Inicia nova linha
Obs.: Dica extrada do livro Bblia do Delphi
Utilizao da Tecla Enter
No evento onKeyPress da caixa de textos, digite a seguinte codificao:
if key = #13 then {Se a tecla pressionada for o Enter}
begin
key := #0; {Desabilita o beep}
edit2.Text :='Teste';
edit2.setfocus;
end;
Voltar
Formatar valores tipo moeda
var Valor1, Valor2: Real;
begin

Valor1 := strToFloat(txtValor1.Text);
Valor2 := strToFloat(txtValor2.Text);
lblResultado.Color := clblue;
lblResultado.Font.Color := clyellow;
lblResultado.Font.Size := 12;
lblResultado.Caption := FormatFloat('##,##0.00', Valor1 + Valor2)
end;
Enter
No evento onKeyDown do formulrio, coloque o cdigo abaixo:
Case key of
VK_UP : Perform(WM_NextDlgCtl,1,0);
VK_Down, VK_Return : Perform(WM_NextDlgCtl,0,0);
end;
Obs.: Deixar no formulrio a propriedade KeyPreview como True.
No evento onKeyPress do formulrio, coloque o cdigo abaixo:
if key = #13 then key := #0; //Desliga o beep (Se a tecla pressionada for Enter, ento
atribuda zero para key).
Esta rotina permite a reindexao de arquivos
btnReindexar.Enabled := False;
try
tbCliente.DeleteIndex('Ind01'); //apaga este ndice (secundrio)
tbCliente.DeleteIndex('Ind01a');
tbCliente.DeleteIndex(''); //apaga o ndice primrio (chave primria)
tbCliente.AddIndex('' , 'ID' , [ixPrimary]); //cria o ndice primrio
tbCliente.AddIndex('Ind01' , 'COD_CLI' , [ixUnique, ixCaseInsensitive]); //cria o ndice
secundrio
tbCliente.AddIndex('Ind01a', 'NOME_CLI', [ixCaseInsensitive]);
Finally
pnlMensagem.Caption := 'Processo encerrado!!!';
btnReindexar.Enabled := True;
end;
Colocando vrios controles iguais
Normalmente precisamos colocar vrios Labels, Text Box dentro de um formulrio.
Para evitar que a cada label colocado, tenhamos que seleciona-lo, h um recurso no
Delphi.
Segure a tecla Shift apertada e de um clique no controle desejado. Voc notar que este
controle ficar selecionado, bastando um clique no formulrio para que seja inserido o
mesmo. Para desativa-lo, de um clique na ferramenta seleo.
Mover e Redimendionar controles
Para Mover: Segure a tecla Ctrl pressionada e utilize uma das 4 setas de movimentao.
Para Redimensionar: Segure a tecla Shift pressionada e utilize as setas de
movimentao.

Variveis
Para criar variveis, utilize a instruo var, sempre antes do begin. Exemplo:
var Nota1, Nota2: real; //declarao das variveis Nota1 e Nota2 como tipo Real, ou
seja: nmero com ponto flutuante (permite a colocao de casas decimais).
var Codigo: integer; //declarao da varivel Codigo como tipo Integer, ou seja: nmero
inteiro que no permite casas decimais.
var Nome: string; //declarao da varivel Nome como tipo String, ou seja: permite a
colocao de qualquer caracter, seja nmero, letra, smbolos especiais.
var Nome: string[30]; //declarao da varivel Nome como String com o comprimento
mximo de 30 caracteres.
Funes de converso
strTofloat: Converte uma String (texto) para nmero com ponto flutuante;
floatTostr: Converte um nmero para String;
strToint: Converte uma String (texto) para nmero inteiro;
intTostr: Converte um nmero inteiro para String;
Exemplo: Nota1 := strTofloat(txtNota1.Text); //Converte a caixa de textos (str) para
(varivel que real) nmero;
Exemplo: txtNota1.Text := floatTostr(Nota1); //Converte a Nota1 (que a varivel real)
para textos (caixa de textos). Quando for exibir algum dado no formulrio, tem que ser
como String, como neste caso, pois o Delphi no permite exibir nmeros.
Manipulando Excees
Permite a manipulao de erros, como por exemplo em uma caixa de textos quando fica
em branco ou quando digitamos letra, e na verdade deveria ser um nmero, pois caso
contrrio o Delphi gerar um erro de exceo.
try //Tenta converter
strTofloat(txtNota1.Text);
except //Seno conseguir
On EConvertError do
begin
ShowMessage('Informe uma Nota vlida');
txtNota1.SetFocus; //Envia o foco para a caixa de Nota1
exit; //Sai desta procedure, e no processa possveis linhas que muitas vezes tem dentro
da mesma
end;
end;
Chamando o help
Application.HelpCommand(HELP_FINDER, 0)
Obs.: Neste exemplo, quando o usurio clicar no item desejado duas vezes, ou um
clique no item para seleciona-lo e depois no boto exibir, o Help ser mostrado.
Para carregar um formulrio Modal
formulario.ShowModal
Obs.: Formulrio Modal, o formulrio que no permite que o usurio clique fora da
regio do mesmo, ou seja: ter que ser fechado para que o usurio tenha acesso a janela
ou formulrio anterior.

Para carregar um formulrio no Modal


formulario.Show
Obs.: Formulrio no Modal, o formulrio que permite que o usurio alterne entre um
e outro formulrio, ou seja: o usurio pode escolher qual janela ele vai clicar, sendo que
os formulrios ficaro na tela, sem necessitarem de serem fechados.
Para esconder um formulrio
formulario.Hide
Caixa de Mensagens
Para exibir uma caixa de mensagens, para por exemplo confirmar a excluso de um
registro:
if MessageDlg('Deseja Excluir ?',mtConfirmation,[mbYes, mbNo],0)= mrYes then
tbCliente.Delete;
ou
if MessageDlgPos('Deseja Excluir ?',mtConfirmation,[mbYes, mbNo],0,200,300)=
mrYes then tbCliente.Delete;
//Neste segundo exemplo, as coordenadas 200 e 300, o primeiro indica a distncia do
topo e o segundo da margem esquerda.
Criando Menus
Para criar Menus no Delphi, utilizado componente. Clique no componente MainMenu,
e coloque-o no formulrio.
Depois clique na propriedade Items, para ter incio a criao de uma estrutura de Menus.
Propriedades mais utilizadas:
Items: Permite especificar o nome do Menu ou do Item que aparecer na lista, quando o
Menu for aberto;
ShortCut: Permite atribuir uma tecla de Atalho;
BitMap: Permite colocar um cone.
Criando SubMenu
Clique com o boto direito do Mouse, sobre o item da lista do seu Menu, onde ser
criado o SubMenu, e escolha o comando Create SubMenu.
Acessando o Menu com o boto direito
Insira o componente PopupMenu, para criar o Menu.
O procedimento para criar este menu, o mesmo do componente MainMenu acima.
Para ativa-lo, clique na propriedade PopupMenu, e escolha o nome do menu, clicando
na seta.
Carregar Imagem
imgFundo.Picture.LoadFromFile('fundo.bmp');
Exibindo Data e Hora no componente statusbar
StatusBar1.panels[0].text := ''+ formatdatetime ('hh:nn:ss', now);
StatusBar1.panels[1].text := ''+ formatdatetime ('dddd", "dd" de "mmmm" de
"yyyy"',now);
Diferena entre duas datas
procedure Tfrmcaddevol.dbedtdevolExit(Sender: TObject);

var DataInicial, DataFinal: TDateTime;


diai,mesi,anoi,diaf,mesf,anof:word;
begin
// Define as variveis
DataInicial:= strTodate(grdLocacao.Columns[1].Field.Text);
Decodedate(DataInicial,anoi,mesi,diai);
DataFinal:= strTodate(dbedtdevol.Text);
Decodedate(DataFinal,anof,mesf,diaf);
DataInicial := EncodeDateTime(anoi, mesi, diai, 0, 0, 0, 0);
DataFinal := EncodeDateTime(anof, mesf, diaf, 3, 0, 0, 0);
// Exibe as datas e a diferena de dias entre elas
dbeatraso.Text := FloatToStr(DaysBetween(DataInicial, DataFInal)); //Mostra a
diferena em dias
end;
Componente s recebe nmero
if not ( Key in ['0'..'9',#13,#8] ) then Key := #0;
Componente s recebe letras
if not ( Key in ['A'..'Z','a'..'z',#13,#8] ) then Key := #0;

Erros de codificao
[Error] Unit1.pas(33): Missing operator or semicolon: Este erro normalmente acontece,
quando na linha anterior no finalizado com o ponto e vrgula.
[Error] Unit1.pas(34): Incompatible types: 'Real' and 'TCaption' - Este erro acontece,
quando voc est tentando converter uma string (texto) para uma varivel real (nmero
com ponto decimal). Soluo: Valor1 := strTofloat(txtValor1.Text).
[Error] Unit1.pas(34): Incompatible types: 'Integer' and 'TCaption' - Este erro acontece,
quando voc est tentando converter uma string (texto) para uma varivel integer
(nmero sem ponto decimal). Soluo: Valor1 := strToint(txtValor1.Text).
[Error] Unit1.pas(39): Declaration expected but end of file found: - Verifique se existe
na ltima linha da codificao a instruo end. (o ponto depois do end, indica o final da
codificao.