Professional Documents
Culture Documents
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
OnKeyPress
Propriedades
Propriedades do componente Label (Guia Standard)
Hint
ShowHint
Align
AutoSize
WordWrap
Height
Width
Left
Top
TabOrder
PassWordChar
TabStop
MaxLenght
Enabled
CharCase
Minsculas (ecLowerCase)
Propriedades do Formulrio
BorderIcons
Position
WindowsState
BorderIcons
BorderStyle
FormStyle
Icon
PopupMenu
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
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
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.
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.