Buscar

modulo2a_ delphi_aplicado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 116 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 116 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 116 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 209
R Fecha formulário com animação
Ao clicar no “x” fechará o formulário de forma animada.
Digite as variáveis no
início do programa.
Ao clicar no X para fechar
o formulário, este começará
ficar com os cantos
arredondados, diminuindo e
aumentando seu tamanho...
em ciclo, até que for
confirmado Sim ou Não.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 210
R Animando formulário na abertura
O código abaixo abrirá um outro formulário de forma animada, tipo, explodindo o formulário. Escreva o código
no formulário que deseja abrir, neste exemplo será aberto o formulário de nome Form2.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 211
R Sistema com senha
A seguir faremos um cadastro para usuários e senhas, um menu e um cadastro simples para Clientes.
Œ Vamos criar duas tabela para este sistema, uma será para os Usuários e uma para Clientes.
Tabela de Clientes
Índices
secundários
para pesquisa.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 212
 Formulário de Login:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 213
Ž Formulário do menu.
Clique duplo no componente ImageList, será aberta uma tela onde será possível adicionar ícones.
Dê um clique duplo no
componente MainMenu
para definir as opções na
tela abaixo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 214
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 215
 Formulário de Clientes
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 216
Ícones usados:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 217
Clique em
ComboBox1, na
propriedade Items
digite um abaixo do
outro:
Nome
Sobrenome
Cep
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 218
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 219
Resultado:
Ao clicar no botão x vermelho, pede se
 realmente quer remover todos os registros.
Se ao clicar na setinha para posicionar o ponteiro no primeiro registro os ícones setinhas desaparecerão visto que
o ponteiro estará posicionado no primeiro registro.
 Setinhas estão ocultas Veja as setinhas abaixo:
Clicar no X no canto do formulário para fecha-lo, será
pedido confirmação.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 220
R Relatório w Exemplo “básico” ( 1 )
Primeiramente criaremos um cadastro de clientes para listarmos alguns registros, após faremos o programa
abaixo para listar os registros.
ΠCrie uma tabela com o Form Wizard e cadastre alguns registros.
 File w New w Other w Report w OK
Será aberto um formulário em branco abaixo ...
Insira um botão
para o relatório.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 221
Ž Insira um componente Table, altere a propriedade Name para Clientes_TB_Relatorio, na propriedade
Databasename defina o alias, na propriedade TableName defina a tabela Clientes.Db.
 Clique duplo no formulário QuickReport, será aberta a tela abaixo:
‘ Após clicado OK teremos o formulário abaixo.
 Clique no formulário no QuickReport ( região branca ),
clique no componente Table1 e mude o nome para
Clientes_TB_Relatorio , defina a tabela na propriedade
TableName para Clientes.DB. Clique em
Clientes_TB_Relatorio, clique na propriedade Active e
defina True.
Clique na região branca e defina a propriedade DataSet para
Clientes_TB_Relatorio. Altere a propriedade Name para QuickReport1 para
QReport_Todos_Clientes. Se preferir deixe o nome QuickReport.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 222
’ Vamos definir o cabeçalho do relatório, data, hora e numeração de página do relatório. O layout do
formulário será visto mais adiante, alinhamentos etc.
· Os componentes do relatório estão na aba QReport.
· Insira 5 componentes QRLabel, estes serão alterados recebendo um nome ( caption ) adequado.
· Insira dois componentes QRSysData1, para definir a data e hora e outro para numeração da página.
“ Veja abaixo após alterado todos os captions dos QRLabels com seus respectivos nomes.
” Agora insira 4 componentes QRDBText para imprimir ( listar ) os registros da tabela Clientes.
Obs: Todos os dados da tabela são impressos na banda Detail.
Para digitar o texto Pág.:
Clique no componente QRSysData e na propriedade Data
defina qrsPageNumber, na propriedade Text digite Pág.:
Clique em QRSysData, mude a
propriedade Data que esta mostrando
como default ( padrão ) qrsTime,
mude para qrsPageNumber
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 223
• Cada componente QRDBText deve ser associado com o Dataset e ao campo a ser impresso.
ŒŒ Abra o formulário onde se encontra o botão Relatório.
Œ File – Use Unit, clique no formulário do relatório Grid_Rel_Frm.
ŒŽ Clique duplo ( evento OnClick ), no botão Relatório digite o
código fonte abaixo:
QReport_Todos_Clientes.Preview;
Resultado:
Clique em
Clientes_TB_Relatório, clique
na propriedade Active e defina o
valor True. Clique no botão
direito, Add Fields e OK
Alterando as propriedades
dos objetos QRLabel e
QRDBLabel.
Propriedade Top: Posiciona
QRDBLabel na parte
superior da banda corrente.
Alignment: Alinha o
conteúdo de um
QRDBLabel no lado
esquerdo, direito ou centro
da banda.
Banda: Clique na banda em
uma banda ( PageHeader,
Column Header ou Detail ),
clique em Height e defina
um valor para altura da
banda – mais alta / baixa.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 224
Considere o seguinte exemplo, ao invés de ser Cadastro de Clientes, ser apenas um Cadastro de
Funcionários com alguns detalhes a mais.
Clique na banda Summary, clique no evento BeforePrint ( ante de imprimir ) e digite o código abaixo:
Resultado:
Ž Todos os
componentes que estão
na banda Title e
Column Header são do
tipo QRlabel, basta
alterar a propriedade
Caption de cada um
digitando o texto
desejado.
 Todos os componentes
que estão na banda Detail
são do tipo QRDBText,
para cada um destes
deverá ser definido as
propriedades DataSet e
DataField
( para associar o nome do
campo ).
ŒInsira um componente Table, clique na propriedade Name e digite
Funcionários_TB_Rel, na propriedade DatabaseName defina um
Alias, na propriedade TableName defina o nome da tabela
Funcionários.db, clique na propriedade Active e defina o valor para
True, clique duplo sobre Funcionários_TB_Rel, clique no botão
direito, clique em Add fields e Ok para confirmar.
 Clique na parte
branca do formulário
do relatório, clique na
propriedade DataSet e
defina
Funcionarios_TB_Rel
Contando a
quantidade de registros
que há na tabela. Insira
um componente
QRSysData1, clique na
propriedade Data e
escolha a opção
qrsDetailCount.
‘Somando os salários que serão listados.
Insira um componente QRExpr1, clique na
propriedade Expression e digite
SUM(Funcionarios_TB_Rel.Func_Salario)
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 225
R Relatório w Exemplo básico usando “SQL” ( 2 )
O exemplo a seguir é igual ao da página anterior, porém feito com SQL.
ΠClique em New?? Other?? Report e Ok.
 Clique no formulário, clique na propriedade Name e digite QReport_Funcionarios_SQL_Rel. Clique duplo
no centro do formulário, será aberta a tela abaixo:
Após clicado em OK teremos a tela abaixo:
Ž Insira um componente Query, clique na propriedade DatabaseName e defina o Alias, clique em Query,
clique no botão direito,clique em SQL Builder, será aberta uma tela, selecione a tabela Funcionários.db,
selecione os campos desejados nos quadrinhos ( veja página seguinte ), após clique X para fechar e Yes para
gravar a SQL.
Clique / marque os seguintes
quadrinhos:
· Title
· Column header
· Detail band
· Summary
Clique OK
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 226
 Selecione os campos a serem impressos:
 Defina detalhes do formulário abaixo:
‘ Clique no componente QRDBText1, clique em DataSet e defina Query1, clique em Datafield e defina o
nome do campo Func_Nome, repite estes passos para os componentes QRDBText2 e QRDBText3.
Ž Como já vimos no relatório
anterior os componentes QRLabel
servem para imprimir os
Cabeçalhos ( textos ).
 Os componentes
QRDBText imprimirão os
dados.
‘ Para totalizar os
Salários insira um
componente QRExpr.
 Para imprimir a quantidade de registros da
tabela insira um componente QRSysData1,
altere a propriedade Data para qrsDetailCount.
 Clique onde o
bolão esta
apontando, clique
em DataSet e
defina Query1.
Na banda Title insira um
componente QRLabel e no
Caption digite
Relatório de Funcionários.
Altere a propriedade
Caption de cada
QRLabel nomeando
de acordo com o
exemplo.
ΠDefina
DatabaseName = Alias
Propriedade
Active = True
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 227
R Relatório w Exemplo “básico” ( 3 )
Outro exemplo básico para listar e imprimir registros da tabela Clientes. Como trabalharemos com Relatórios
usaremos vários componentes da palheta QReport
Campos da tabela usados no relatório: Nome, Cidade, Data_Nasc
Œ File ­ New ­ Other ­ Report ­ Ok, o Delphi abrirá a tela abaixo ( QuickReport1 )
Ž Após confirmar propriedades da página anterior teremos a tela abaixo:
 Clique duplo onde o
balão esta apontando para
abrir a tela de
propriedades do
QuickReport, veja tela ao
lado. Assinale as opções
que estão marcadas com
um círculo veremlho.
Banda para título do relatório,
data, hora, numeração de página
etc
Banda onde serão impressos os cabeçalhos de cada coluna
dos dados ( banda detail ).
Banda onde os dados serão
impressos.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 228
 Pressione F11 e altere a propriedade Name de QuickReport1 para QReport_Clientes_Todos.
 File ? Use Unit escolha Clientes, clique no formulário do relatório e defina a propriedade DataSet para
Clientes_Frm.Clientes_TB.
’ Insira dois componentes
QRSysData e altere a
propriedade Data para
qrsDateTime e a segunda
propriedade Data para
qrsPageNumber.
‘ Insira um
componente
QRSysdata ( aba
Report ), altere a
propriedade Data para
qrsReportTitle.
“ Insira componente QRLabel ( aba
Report ) para definir os cabeçalhos
dos campos, altere a propriedade
Caption de cada objeto, de acordo
como os nomes definidos abaixo.
” Insira componentes QRDBText para definir onde os dados serão
impressos. Preste atenção nas iniciais dos nomes dos componentes
QRDB = Query Report Data Base Text, comparando com os
componentes do cabeçalho QRLabel = QR = Query Report Label.
• Selecione individualmente cada componente e defina
suas propriedades: DataSet será
Clientes_Frm.Clientes_TB e a propriedade DataField
para definir os campos desejados.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 229
Œ Vamos fazer traço abaixo dos cabeçalhos dos campos. Clique na banda column header, na propriedade
Frame ( no mais + ), defina o valor da propriedade DrawBottom para True e na propriedade Width o
valor 2.
Frame: Pode ser definido, cor do traço, estilo ( pontilhado ), traço na parte superior da banda, direita e esquerda.
Clique duplo sobre o ícone Relatório,
digite o código abaixo.
Para visualizar e imprimir:
QReport_Clientes_Todos.Preview;
Imprimirá o título do
relatório onde mostra
a palavra
 ( Report title )
idYes idNo
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 230
Como padrão o Delphi disponibiliza alguns botões para aumentar ou diminuir visualização, navegar nos registros,
configurar impressora, informar quantidade de cópias, salvar relatório, abrir etc..
Ao confirmar previsualizar,
será mostrado o relatório antes
de imprimir na tela.
As descrições dos botões estão em
inglês, como traduzi-las ?
No Delphi 6.0 abra a pasta:
C:\Arquivos de
programas\Borland\Delphi6\Lib
e edite o arquivo qrprev.dfm,
e altere as linhas Hint ( somente ! )
de: Hint = 'Print'
Para: Hint = 'Imprime?
No Delphi 5.0, abra o seguinte
caminho: C:\Arquivos de
programas\Borland\Delphi5\lib e
altere os Hints que estão no arquivo
qrprev.pas
Ahh, salve o arquivoJ qrprev.pas
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 231
O código da página abaixo foi alterado para verificar se é digitada uma data válida:
Relatório ? Filtrando por data:
Insira um novo Formulário, dois componentes
Edit ( aba Standard ) e um Bitbtn, veja abaixo o
código fonte. Crie um índice secundário (Database
Desktop) chamado de Idata_Nasc.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 232
Resultado página anterior. Imprimindo relatório por data ( veja código página anterior ).
R Como mostrar “data” e “hora” no formulário ?
Clique duplo sobre o componente Timer ( aba System ) e digite a linha de código acima. Para mostrar a data em
um Label é preciso primeiramente converter Hora para String ( TimeToStr ).
R Como formatar “data” por extenso ?
 Formatando data em um label.
No evento OnShow digite a linha abaixo:
Label1.Caption := FormatDateTime('"Timbó, "dddd", "d" de "mmmm" de "yyyy',date);
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 233
R Fazendo cálculos no DBGrid com “OnCalcFields” ?
Calcula e atualiza valores na grade de dados.
ΠCrie a tabela de Produtos.
 Insira um novo formulário, e os seguintes componentes: Table, Datasource, DbGrid e 5 Labels.
Ž Clique no Table, clique na propriedade DatabaseName e defina o Alias ou pasta onde está a tabela de
Produtos, clique na propriedade TableName, defina o nome da tabela Produtos.DB, clique duplo sobre o
componente Table1, será aberta uma pequena tela, clique no botão direito, clique em Add fields, clique Ok.
 Clique no DBGrid, clique na propriedade DataSource e defina DataSource1.
 Clique no DBGrid , clique duplo sobre o DBGrid, será abera uma tela, posicione o ponteiro do mouse sobre o
primeiro ícone da tela abaixo ( Add new ? Ins ), insira quatro colunas.
Teremos a tela abaixo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 234
’ Agora faça a associação das colunas do DBGrid com os campos da tabela. Clique no DBGrid, clique em 0 ?
Tcolumn, clique na propriedade FieldName e defina o nome do campo = Prod_Descricao, na propriedade
mais abaixo, clique no + da opção Title, clique no Caption - Prod_Descricao, mude o Caption para
Descrição, use a propriedade Alignment para alinhar o conteúdo do Caption para direita, esquerda ou
centro, repita estes passos para as colunas Qtde e Preço. Clique no DataSource e na propriedade DataSet
defina Table1.
“ Agora crie um campo “calculado” ( campo virtual ou um campo de uso temporário ).
• Clique no componente Table1, com o ponteiro do mouse posicionado sobre a tela ( Produtos_TB ) clique no
botão direito, clique na opção New field ... ( continua no balão abaixo ... ).
Œ Agora definina a coluna Total no Grid. Dê um clique no DBGrid, clique em 4 ? Tcolumn, clique na
propriedade FieldName e defina o nome do campo = Temp_Total, na propriedae mais abaixo, clique no + da
opção Title, clique no Caption - Total e mude este Caption para Descrição, use a propriedade Alignment para
alinhar o Caption para direita (taRightJustify ).
ŒŒ Campo Name: Digite o nome do
campo calculado ( ou campo virtual),
no Type informe a opção Currency
( moeda ), clique na opção Calculated e
clique Ok.
Veja abaixo o
campo Calculado
que foi criado.
Temp_Total
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 235
Veja como esta a tela até o momento.
ŒŽ No início do programa digite a linha da procedure abaixo:
Œ Digite a procedure abaixo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 236
Œ Digite a procedure Atualiza_Total nos respectivos eventos:
Œ‘ O código a seguir serve para atualizar os Totais que estão fora da grade, assim quando for alterado uma
quantidade, preço ou deletado algum registro estes valores também serão alterados. Clique no componente
Table1 ( Produtos_TB ), dê um clique duplo no evento OnCalcfields e digite o código abaixo.
Resultado:
Se o preço, quantidade ou se algum registro for removido os totais serão todos atualizados.
« O Campo Total_Temp é do tipo calculado, ou seja, ele é somente utilizado quando o programa estiver
rodando ( na memória ), o resultado que este armazenará não será mantido na tabela, portanto é um tipo de campo
variável – uso temporário. Assim sendo, não será necessário criar este campo na tabela para ocupar mais bytes
físicos.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 237
R Ordenando colunas de dados no DBGrid
Ao clicar em uma das colunas ordenará os Nomes em ordem ascendente.
Coluna Nome desordenada Coluna Nome ordenada – nomes ascendentes
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 238
R Como criar um gráfico “básico” ?
ΠCrie tabela de Produtos.
 Criar Alias para esta tabela, defina o nome Gráfico
Ž Crie a pasta Dados e grave a tabela nesta para não misturar com os outros arquivos.
 Crie um projeto novo, File ? New Application, clique na opção Project, clique em Remove from poject,
selecione Unit, clique OK e clique Yes
 Clique em Database ( que está na barra de títulos ), FormWizard, clique no botão Next, nesta caixa selecione
o alias Gráficos, clique na tabela Produtos.db, clique em Next, clique no botão >>, clique Next, Next e Finish,
veja abaixo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 239
‘ Insira um componente DBChart ( aba Data Controls ):
Dê um clique duplo,
veja abaixo será aberta
outra tela....
Após clicar no botão
Add será aberta a
tela abaixo, clique no
gráfico Pie ( torta ) e
clique OK.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 240
Clique na aba Series, será aberta a tela abaixo:
’ Clique na aba Data Source, no menu dropdown selecione Dataset, clique no Dataset e defina Table1,
Labels: Prod_Desricao ( que é a descrição do produto ), Pie, defina o campo Prod_Qtde, clique no botão Close.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 241
Resultado até o momento:
Definir título do gráfico , clique na aba Titles e mais abaixo digite Produtos.
Ao lado do nome do produto mostrar o equivalente em percentual que é bem interessante para melhor visualizar.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 242
Definindo fundo do gráfico, Panel ? Gradient, visible....
Removi o campo código, como este é gerado automaticamente não há necessidade deixa-lo no formulário.
Basta brincar um pouco mais com este recurso e aprenderá muito mais J
Dê um clique duplo no
botão e digite as duas linhas
abaixo:
Table1.Close;
Table1.Open;
As duas linhas acima
servem para atualizar o
gráfico caso um registro for
excluído.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 243
R Como criar um gráfico com SQL ?
Œ Crie a tabela de Funcionários.
 Crie um formulário para entrada de dados.
Ž Insira um novo formulário para fazer o gráfico.
 Insira um componente DBChart
 ( aba Data Controls )
 Insira dois componentes
DateTimePicker1 ( aba Win32 )
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 244
‘ Clique duplo no componente DBChart.
Clique no botão Add da tela acima, clique no tipo de gráfico Bar e Ok.
Clique no botão Add
para selecionar
( adicionar ) um tipo de
gráfico.
Clique no botão Title,
será aberta uma tela,
digite o nome
Funcionários
Há muitas outras propriedades
do gráfico que poderão ser
alteradas. Este exemplo lhe
dará apenas uma rápida idéia
de como gerar um gráfico J
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 245
Clique na aba Series
para definir valores
para o DataSet.
Clique em Series,
· defina Funcinários,
· DataSet,
· Dataset: Query,
· Labels: Func_Nome
· X: Func_Salario
· Bar: Func_Salario
E clique em Close para
finalizar.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 246
Clique no componente Query1 e digite código SQL abaixo.
Defina o DatabseName = digite_seu_alias,
clique na proprieda SQL ( TStrings ) e digite o
código SQL abaixo. Clique na propriedade Active
e defina o valor True.
Decrementa dias ,
menos 60 dias.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 247
R Pesquisando em uma tela e retornando resultado em outra
Dê um clique duplo no DbGrid, selecione o componente OnDblClick
Ao abrir a tela, dê um clique duplo sobre o registro desejado, após será aberta a tela de Cadastro do
Cliente, digamos que você esta pesquisando um determinado registro e precisa altera-lo ao clicar no
registro selecionado.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 248
R Frames
ΠFile РNew - Application.
 Mude a propriedade Name digite Menu_Frm, insira dois Panel ( aba Standard ), o primeiro Panel , mude a
propriedade Name para Panel_Esquerda, defina a propriedade Align para alLeft, clique no Caption, apaga o
texto Panel1, insira o segundo Panel , mude a propriedade Name para Panel_Direita, defina a propriedade
Align para alClient, clique no Caption e apague o texto Panel2, salve o arquivo como o nome Frame_Pai.
Ž File – New – Frame, insira um componente Table1, clique em Table1, clique na propriedade DatabaseName
e defina o alias, clique na propriedade TableName e defina a tabela Clientes.db, clique no Table1, clique na
propriedade Name e mude o nome para Clientes_TB, clique duplo em Clientes_TB, clique no botão direito,
clique em Add fields e clique Ok para adicionar todos os campos da tabela. Clique no componente DataSource1
clique na propriedade DataSet e defina Clientes_TB, clique no componente DataSource e na propriedade Name
defina o nome Clientes_DS. Insira um DBNavigator ( aba Data Controls ), clique no DBNavigator e defina a
propriedade DataSource para Clientes_DS. Clique no formulário frame para seleciona-lo e na propriedade
Name defina o nome Frame_Clientes.
Clique duplo sobre o
componente Clientes_TB,
arraste os campos para o
formulário, após organize os
campos de acordo com seu
gosto.
Todos os passos acima
deverão ser repetidos
para os formulários:
· Funcionários
· Produtos
Foram inseridos dois
painéis ( Panel ) um na
esquerda e outro na
direita.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 249
 Clique no Menu_Frm ( primeiro frame que criamos ).
Insira outro frame para os
Produtos.
Para ver os registros e iniciar
processo de cadastramento,
alteração etc, clique no
componente Produtos_TB,
clique na propriedade Active e
defina o valor para True.
Insira um componente
TreeView e um ImageList1 que
estão na aba Win32
Clique no TreeView, clique em
Images e defina ImageList1
Insira outro frame para os
Funcionários. Clique na
propriedade Name e
defina o nome deste
formulário frame de
Frame_Func
Formulários do projeto de FramesPropriedade Name: Menu_Frm
Propriedade Name: Frame_Produtos
Propriedade Name: Frame_Func
Propriedade Name: Frame_Clientes
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 250
 Clique duplo sobre o ícone ImageList1 para definir os ícones, clique no botão Add para adicionar dois ícones.
Insira outro formulário frame para crirarmos o relatório ( ou formulário de pesquisa ), na propriedade Name
digite Frame_Clientes_Rel
Abra o formulário “menu” ( Name: Menu_Frm ) e digite o código abaixo:
Para adicionar imagens
clique no botão Add,
para apagar imagens
clique Clear.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 251
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 252
No evento do OnChange do TreeView digite o código abaixo:
Tela de ?Clientes?
Como ficou a tela de ?Funcionários?
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 253
Tela vazia ( Frame Vazia )
Relatório de ?Clientes? ( com DBGrid ).
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 254
R Como livrar-se do “ponto” em um valor ?
Quando multiplicamos um valor por outro e se um destes valores possuir um ponto separador, certamente será
problema...L Como posso contornar este problema ?
Problema:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 255
Solução do problema:
R Como fechar formulário ao pressionar ESC ?
R Como usar eventos de sons do Windows ?
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 256
R Relacionando Funcionários e Empresas
O campo Relaciona_Com_Empresa foi criado na tabela Funcionários apenas para relacionar com a tabela
Empresas. Teremos duas telas, uma de Funcionários e outra de Empresas
Cadastro de Funcionário
Cadastro de Empresas
Resultado
Insira um componente
DBLookupComboBox1 que
esta na aba Data Controls e
defina as propriedades como
mostra na página seguinte.
Insira um componente Table
( aba BDE ) e um DataSource
( aba Data Access ). Clique no
componente Table, defina
propriedade DataBaseName para
Relaciona ( Alias ), role para baixo e
altere a propriedade Name de Table1
para Empresas_TB, clique em
TableName e defina o nome da tabela
Clietnes.db e defina a propriedade
Active para True.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 257
Defina as propriedades abaixo do componente DBLookupComboBox1
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 258
R Cadastro de Pedidos e relacionamentos
No exemplo a seguir farei um pequeno Sistema de Pedidos e mostrarei como fazer relacionamentos.
ΠCrie as tabelas abaixo:
 Crie o Alias para apontar para pasta onde se encontram as tabelas.
Ž Quando criamos uma nova aplicação o Delphi sempre abre um formulário em branco ( uma Unit ), remova-o
clicando no ícone “Remove file from Project” .
 Use o FormWizard e crie o formulário de Clientes. Defina as propriedades do Form, Table, Alias etc.
Índices, veja há dois campos,
o primeiro campo índice
Integer e o segundo campo
AutoIncrement.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 259
 Use o FormWizard, crie o formulário de Produtos. Defina as propriedades do Form, Table, Alias etc.
‘ Use o FormWizard e crie o formulário de Pedidos. Defina as propriedades do Form, Table, Alias etc.
’ Próximo passo é fazermos o relacionamento entre as tabelas Pedidos e Clientes. Insira um componente
Table1, altere a propriedade Name de Table1 para Clientes_TB, insira um DataSource, mude o nome para
Clientes_DS. Insira um componente DBLookupComboBox1 para buscar o Cliente que fará o Pedido corrente.
Clique em DBLookupComboBox1, clique em DataSource = Pedidos_DS, clique em DataField =
Ped_Cli_Cod_Relaciona, clique em ListSource = Clientes_DS, clique em ListField = Clie_Nome e finalmente
clique em KeyField = Clie_Codigo.
“ Insira um componente Table para: Clientes ( Clinentes_Db ), Itens ( Itens_TB ) e um para Produtos (
Produtos_TB ), insira três componentes DataSource ( Clientes_DS, Itens_DS e Produtos_DS ).
DatabaseName: Pedidos3 ( meu alias ),
Propriedade Name: Pedidos_Frm,
Propriedade TableName: Pedidos.db
Como já vimos até o
momento em vários exemplos
cada Table deve ser
renomeado para um nome
mais sugestivo, defina o
DatabaseName, Name de
cada table renomeado e o
TableName
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 260
Continua item “ ... Defina as propriedades básicas do formuláro: Caption = Cadastro de Pedidos. Agora
definina as propriedades do componente Itens_TBè Propriedade do formulário Name = Pedidos_Frm, clique
no componente Table1, pressione F11, na propriedade DataBaseName defina Alias, Name para Pedidos_TB,
clique na propriedade TableName = Pedidos.db, clique em Pedidos_TB, clique no botão direito em Fields
Editor, Add Fields e Ok ( para adicionar os campos ), clique no DataSource1, pressione F11, mude a
propriedade Name para Pedidos_DS. ( este passos DEVEM sempre ser executados quando inserimos um
componente Table e um DataSource ).
” Defina as propriedades para o componente Produtos_TB seguindo os passos do tem “, a propriedade
TableName terá a tabela de nome Produtos.db.
• Insira um DBGrid no formulário, defina a propriedade DataSource para Itens_DS.
ŒŒ Clique em Itens_TB, clique na propriedade MasterSource e defina Pedidos_DS, clique nos 3 pontinhos
( ... ) da propriedade MasterFields, será aberta a caixa abaixo, clique nos dois campos que serão relacionados e
clique em no botão Add e Ok.
Após ter feito
associação do campo.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 261
ŒŒ Clique duplo em Itens_TB, clique no botão direito, clique em New Field, preencha a tela como exemplo
abaixo. Estamos criando o campo temporário Descr_Prod_Temp ( descrição de produtos ).
Œ Crie um divisão para o Grid clicando no ícone Add New ( Ins ) ( primeiro ícone amarelo ? veja setinha
vermelha ), clique na propriedade FieldName e informe o campo temporário ( calculado ) chamado de
Descr_Prod_Temp, veja tela abaixo:
Cadastrando dois registros ....
Clique no canto direito do
campo, será mostrado um
dropdown para escolher
um produto.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 262
ŒŽ Digite o código abaixo nos respectivos eventos.
Œ Crie o campo temporário para o Código do Produto:
Œ Crie um campo temporário para o Preço Unitário:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 263
Œ‘ Crie mais duas divisões no DBGrid e associe os campos temporários:
Œ’ Crie o campo calculado para armazenar o total ( qtde x preço = total ).
Œ“ Digite o código fonte abaixo no evento OnCalcFields:
Após selecionado o código será
mostrado o registro complete.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 264
Œ” Clique no componente Itens_TB e digite o código no evento AfterPost:
‹ Clique no componente Pedidos_DS, digite o código abaixo no evento OnDataChange:
Resultado: Falta alterar os títulos das
colunas, o Delphi como padrão
define os nomes dos campos.
Clique duplo sobre DBGrid,
clique na propriedade +Title e
altere o Caption de cada coluna.
Quando remover um pedido
também removerá todos
itens do pedoido.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 265
Após alterado os títulos do DBGrid:
Œ Vamos criar um Menu para abrir os cadastros que criamos até o momento. Insira 3 botões, clique em File,
Use Unit, selecione as 3 units, Clientes, Produtos e Pedidos. Clique na opção Project ( opção da barra de títulos
), clique em Options, arraste o formulário Menu_Frm paraser o primeiro da lista, para abrir o formulário do
Menu por primeiro.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 266
 No Cadastro de Pedidios adicione um Edit para selecionar um número de pedido e um botão para
imprimir.
Ž Digite as linha indicadas abaixo:
Digite linha da Procedure.
Digite Procedure Atualiza.
Digite a linha Atualiza.
Esta rotina carregará a
lista de Números de
Pedidos no ComboBox.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 267
Ž Relacionamento para gerar relatório. Vamos criar o formulário para o relatório. File ? New ? Other ?
Report. Insira um componente Query, faremos a filtragem dos registros com SQL. Clique em Query e defina o
Alias. Clique no botão direito, clique na opção SQL Builder, no dropdown Table abra as tabelas Pedidos,
Produtos, Itens e Cidades. Relacione os códigos arrastando até a segunda tabela. Clique na tabela Pedidos,
clique no campo Ped_Cli_Cod_Relaciona e arraste-o até o campo Clie_Codigo da tabela de Clientes, clique na
tabela Pedidos, clique no campo Ped_Nr_Pedido e arraste até o campo Item_Nr_Pedido_Relaciona da tabela
de Itens, clique na tabela de Produtos, clique no campo Prod_Codigo e arraste-o até o campo
Item_Cod_Prod_Relaciona da tabela Itens.
No evento OnShow
digite Atualiza;
Filtrará o registro pelo
Número do Pedido.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 268
Você poderá testar o resultado do relatório clicando no Raio
 Vamos criar o formulário do relatório. File ? New ? Other ? Report ? Ok
Banda Page Header:
Insira um QRLabel para digitar o título, clique na propriedade Caption e digite Relatório de Pedidos.
Banda Column Header:
Insira cinco componentes QRLabel e altere seus Captions de acordo com a tela gráfica acima.
Banda Group Header:
Insira um banda QRgroup, insira um componente QRExpr, clique na propriedade nos três pontinhos ( ... ) da
propriedade Expression, será aberta uma tela, clique no botão Database Field, clique em Query1, clique no lado
direito no campo Clie_Nome, clique Ok e Ok. Insira dois componentes QRDBText, clique em QRDBText,
clique no Quickreport ( tela branca onde serão definidos os campos ) na propriedade DataSet e defina Query,
clique em DataField e defina Ped_Nr_Pedido. Clique em no segundo QRDBText e defina o campo
Ped_Nr_Pedido.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 269
Banda Detail:
Insira cinco componentes QRDBText, clique em QRDBText, clique na propriedade DataSet e defina Query,
clique em DataField e defina Prod_Descricao
Banda Summary:
Insira dois componentes QRExpr. No primeiro QRExpr somaremos as quantidades. Clique no primeiro
QRExpr, clique nos três pontinhos da propriedade Expression, será aberta uma tela, clique no botão Function,
clique em Statistical, clique no lado direito na opção Sum, clique no botão Continue, será aberta uma pequena
caixa, clique nos três pontinhos, clique no botão DataField, clique em Query1, clique no lado direito sobre o
campo Item_Qtde, clique OK, OK, OK, OK. SUM(Query1.Item_Qtde)
Segundo QRExpr, neste multiplicaremos a Quantidade x o Preço Unitário e Somaremos.
Sum(Query1.Item_Qtde * Query1.Prod_Preco_Unit)
 Digite os códigos abaixo nos respectivos eventos:
Resultado do relatório pronto:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 270
R Criando um Recibo simples
Criaremos recibos e imprimindo-os, este formulário não possuirá tabela para armazenar os dados do Recibo.
Insira um Edit ( para o nome ), um Memo1 ( para o histórico ), um MaskEdit ( aba Additional ), um SpinEdit (
aba Samples ), insira dois botões, uma para Imprimir e outro para Sair.
A unidade abaixo foi salva com o nome de Recibo_Frm.pas
Imprime_Recibo_Txt é o
formulário onde o recibo será
impresso, este está na página
seguinte.
A propriedade Name deste
formulário é Recibo_Form
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 271
Vamos criar uma nova unidade. Clique em File – New – Other e clique em Report. A unidade abaixo foi salva
com o nome de Imprime_Recibo_Texto_Frm.pas.
Posicione o mouse onde o balão
está indicando, dê um clique duplo
e ative os quadrinhos abaixo
informados.
Observe a nomeação dos
componentes QRLabels
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 272
:
Continua código referente página anterior...
:
Adiante veremos o código da
unidade que escreve o valor por
extenso.
Nome do formulário onde são
digitados os dados.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 273
Nome do arquivo que escreverá o extenso é Extenso_Unit.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 274
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 275
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 276
Resultado do programa Recibos
Após clicar no botão Imprime mostrará tela abaixo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 277
R Protegendo seu programa / sistema
Este exemplo pegará o número serial do HD e criptografará ( codificará ) e armazenará no registro do Windows.
O programa PROTEGE deve ser executado por primeiro, após rode o sistema / programa, se este sistema for
copiado para outra máquina mostrará um mensagem dizendo que é um program ilegal, visto que cada HD possui
um código serial diferente.
Œ Crie a unidade ( File ? New ? Unit ) que conterá as rotinas de proteção do sistema, arquivo Rotinas.pas
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 278
 Crie um projeto novo e salve este com o nome PROTEGE e a unidade de nome Unit_Protege.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 279
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 280
Execute o programa PROTEGE. Será regatado o serial do HD e criptografado no registro do windows.
Ž Crie um projeto novo, e funcionará somente se serial for válido, a tela abaixo salve com o nome de
Unit_Protegida e o projeto com o nome de Sistema_Protegido, altere o projeto de acordo com o código abaixo:
Digite esta linhas
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 281
 Agora vamos abrir o registro do Windows para ver como está. Clique em Iniciar, Executar e digite Regedit,
pressione enter, clique em Editar, clique Localizar e digite o texto Código_Serial_Secreto
Veja abaixo o que foi localizado no registro do Windows
Se o programa PROTEGE for executado na máquina onde será rodado o sistema que foi feito, e se após isto este
for copiado para outra máquina e assim por diante, será mostrada a mensagem abaixo:
Vamos procurar o texto
Codigo_Serial_Secreto
Veja o serial esta
codificado.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 282
R Criando procedure
Você pode criar suas próprias Procedures e Functions para organizar o código da aplicação de forma a facilitar
sua leitura e manutenção, ou mesmo para reaproveitar procedures ou functions em outros programas.
A diferença básica entre procedures e functions é: Functions ( funções ) retornam valores. Procedures não
retornam.
Exemplo 2
:
Após digitado a linha no
Private, pressione a combinação
Ctrl Shift C para gerar a linha
da procedure, e para finalizar
basta digitar o código.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 283
Procedures - Somar e Subtrair
Digite as
procedures
Soma e Subtrai
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 284
R Criando função( Funtion )
Outro exemplo de função ( Function )
Boolean pode ser True
ou False
( Verdadeiro ou Falso )
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 285
R Criando DLL no Delphi 6.0
Este tipo de arquivo contém funções e dados que outros executáveis podem utilizar quando estiverem rodando.
São úteis quando contém funções que serão chamadas repetidas vezes por vários executáveis. Ao invés de repetir
estas funções em cada um dos executáveis, estes utilizam uma fonte comum: as DLLs. O acrônimo DLL origina-
se de Dinamic Link Library - Biblioteca de Vínculo Dinâmico.
Œ New ? New ? Other ? DLL Wizard e OK, será aberta a tela abaixo
 Mude o código acima, deverá ficar como o código abaixo, compile o projeto ( Ctrl F9 ) e salve o projeto como
o nome de exemplo_dll
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 286
Ž Executando o arquivo DLL criado. Criaremos uma nova aplicação.
File ? New ? Application, insira um botão Bitbtn. Copie o arquivo exemplo_dll.dll para dentro da pasta do
projeto abaixo para que este localize o arquivo Dll.
Nome do arquivo dll que
fizemos anteriormente
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 287
R Gráfico - Banner
Insira um componente Image ( aba Additional )
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 288
R Gráfico - Retângulo
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 289
R Gráfico - Lua
R Gráfico - Url
Escreve a URL definida no programa na área de trabalho do Windows.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 290
R Gráfico – Texto randômico
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 291
R Gráfico – Texto sombreado
R Gráfico – Pirâmide 1
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 292
R Gráfico – Pirâmide 2
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 293
R Gráfico – Linha
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 294
R Gráfico – Elipses randômicas
R Gráfico – Retângulos
Anima fundo do form fazendo retângulos, constantemente gera retângulos no formulário.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 295
R Gráfico – Retângulo
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 296
R Arredondando valores
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 297
R Carregando uma cópia do programa na memória Ram.
Neste exemplo mostra como carregar apenas uma cópia do seu projeto para memória. Imagine, se for clicado 3
vezes no ícone que abre seu sistema e se este for carregado 3 vezes consumirá memória ram desnecessária, isto
poderá ser evitado com o código abaixo. Neste projeto foram incluídos 3 formulários.
R Arredondando valores ( outro exemplo )
Neste exemplo usaremos um Bitbtn, um Edit e um Label
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 298
R Ajustando largura em um DBGrid
Veja no exemplo abaixo a coluna Clie_Nome possui largura maior que a coluna Data Nascimento que não está
totalmente visível ou se ficar algum espaço em branco no lado direito do grid, para visualizar os campos de forma
que fiquem todos visíveis no DBGrid utilize o código abaixo:
Digite a Procedure
Reajusta_Larg_Coluna
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 299
R Ordenando registros em um DBGrid
Ao clicar na barra de
título do Grid ordena
nomes por Nome.
Cliquei na barra
de títulos na
coluna Data
Nascimento
ordenou por data
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 300
Digite o código abaixo no evento OnTitleClick:
R Criando componente
File – New – Other – Component - Ok
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 301
Vamos criar um componente “botão”, este será armazenado na aba Samples.
Após instalado o
componente este estará
disponível na aba Samples
Defina a pasta onde deseja
armazenar o componente.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 302
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 303
Na definição de tipo, o evento Click é declarado como um procedimento protegido. Os eventos são
procedimentos específicos para determinadas ações. Na implementação deste evento, devemos primeiro herdar -
inherited - as características do evento Click do componente herdado, e depois realizamos as mudanças
desejadas. No nosso caso, exibir um quadro de diálogo.
O método override, não substitui o evento Click herdado do Tbutton, ele apenas estende ou refina este evento
no novo componente. Usamos override para especificar que haverá uma modificação no evento.
Na seção public, declaramos o método constructor que controlará a construção do componente. Usamos
comumente Create como nome deste método, e Aowner como nome de parâmetro, nada impedindo a utilização
de outros nomes. Na implementação do constructor, semelhante ao Click, primeiro herdamos as características
do objeto base e depois alteramos as propriedades Caption e Cursor.
A propriedade Cursor, especifica qual será o desenho que representará o mouse quando este estiver em cima do
controle, e pode ser:
Após a digitação do código, selecione Component/Install Component..., na barra de menu para instalar este
componente dentro do pacote de componentes do usuário (Delphi User’s Components) - dclusr30.dpk.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 304
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 305
Vamos aplicar o componente que criamos:
File ? New ? Application, na aba Samples selecione o botão e arraste-o para o formulário.
Execute o programa ( F9 ) e clique no botão, será mostrado uma caixa de diálogo.
R ActiveControl
Controlando eventos com o controle ativo.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 306
R Validando data de avaliação do sistema
Este exemplo mostra como validar a data de validação do sistema. Defina a data desejada.
R Definindo cor de fundo para o formulário
Se a data for 16-06-2004, esta será
aceita, se for anterior não.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 307
R Barra vertical no formulário
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 308
R Mostrando Data e Hora do sistema
Insira um Label e um botão do tipo Bitbtn no form.
R Arredondando valores
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 309
R Filtrando registros com “Filter”
No exemplo abaixo insira dois componentes MaskEdit ( aba Additional ), um DbGrid ( Data Controls ), um
componente Table ( defina as propriedades do Table, como, databasename – alias, tablename ), insira um
DataSource e defina a propriedade Dataset = table1, um componente DBNavigator e defina a propriedade
DataSource para DataSource1
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 310
R Aplicação para Ms-Dos
File ? New ? Other ? Console application, sera aberta uma tela…
Será aberta a tela abaixo ( no Delphi 6.0 )
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 311
Segundo exemplo:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 312
Terceiro exemplo:
Quarto exemplo:
Delphi Aplicado v byEnglish Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 313
R Gravando registro fisicamente
Um dos problemas dos programadores Delphi é salvar as informações fisicamente no disco rígido. Quando
estamos trabalhando com o programa as informações ficam retidas no buffer, o que, em caso de queda de energia
ou até mesmo se o usuário fechar o Windows com a aplicação aberta resulta na perda dos dados, que foram
processados na execução atual do sistema.
Para resolver o problema, basta acrescentar no evento AfterPost de cada componente Table as linhas de código
que estão abaixo.
Na lista de Uses acrescente a unit DBIProcs.
Dessa forma, você não precisa temer perder os seus dados por uma falha elétrica ou pela quebra do sistema.
:
:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 314
R Compactando arquivos com Winzip
Compactando e descompatando arquivos Delphi e Winzip
Insira os seguintes componentes: SaveDialog, dois componentes OpenDialog ( aba Dialogs ), MainMenu ( aba
Standard ), StatusBar ( aba Win32 )
Dê um clique duplo no componente MainMenu1 e defina as propriedades Name para as três opções do Menu,
Aquivo1, Novo_Arq_Zip, Descompacta_Zip e Fechar1
Insira um ListBox
( aba Standard )
Defina o nome do
formulário de
Name: FrmPrinc
Statusbar
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 315
Unidade Principal
:
:
:
:
Digite as funções
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 316
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 317
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 318
Defina as propriedades do componente SaveDialog
No componente OpenDialg defina na propriedade Options as seguintes opções para True:
ofHideReadOnly = True
ofAllowMultiSelect = True
ofEnableSizing = True
No componente OpenDialgZip defina na propriedade Options as seguintes opções para True:
ofHideReadOnly = True
ofEnableSizing = True
Vamos criar outra unidade UExtrair para descompactar os arquivos compactados
Insira dois componentes
OpenDialogs ( aba Dialogs )
Name: Abre_Arq_Zipado
Name: Pasta_Destino_Bit
Em Options defina as
opções:
ofHideReadOnly = True
ofEnableSizing = True
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 319
:
:
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 320
Compactando
Descompactando
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 321
R Validando Cartão de Crédito
Digite estas duas
variáveis
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 322
R Caixa de diálogo do Windows – Sair do Windows
R Rolando formulário com PageUp e PageUp
Selecione o formulário, ative a propriedade KeyPreview para True. Ao pressionar as teclas PageUp e
PageDown rolará o formulário para cima ou para baixo.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 323
R Navegando nos registros com botões
Podemos simular um clique em um botão específico do DBNavigator, para isto usamos o procedimento
BtnClick(Index: TNavigateBtn) disponibilizado pela classe TDBNavigator. O botão a ser clicado deve ser
passado como parâmetro.
Declare na cláusula uses a unit dbctrls. (se ainda não estiver declarado)
Botoes do navegador de dados
nbFirst .....Registro anterior
nbPrior ..........Registro anterior
nbNext ...........Próximo registro
nbLast ............Último registro
nbInsert .........Inserir registro
nbDelete ........Apaga registro
nbEdit ...........Altera registro
nbPost ...........Grava registro
nbCancel ......Cancela registro
nbRefresh.......Atualiza registro
Apagando Registro
Ao clicar no sinal de
menos ( - ) do
DbNavegador será
pedido confirmação para
excluir o registro. Digite
o código abaixo no
evento BeforeAction.
Delphi Aplicado v by English Way 26/03/2008 - 14:10:36 - Jurandir / Timbó / SC 324
R Inserindo imagem do tipo .Jpeg na tabela
Dê um clique duplo no
componente Table1,
selecione os dois campos
e arraste-os para dentro
do formulário.

Outros materiais