Escolar Documentos
Profissional Documentos
Cultura Documentos
02
03
03
04
05
05
06
07
08
09
10
11
12
13
13
14
14
15
16
19
21
22
23
24
25
26
27
28
29
30
31
32
33
35
36
38
41
42
43
44
45
46
47
48
51
53
54
56
58
59
60
61
Bom trabalho!
Ronaldo Lavestein Casa Branca - SP
pastas criadas
anteriormente.
Procedimentos a serem executados:
File -> Save All ou clique no boto
Escolha a pasta C:\Sistema\Programas na Combobox Salvar em para
indicar o local onde a aplicao ser gravada.
Propriedades:
Contedo
Significado
+ BorderIcons
biMaximize: False (clique no sinal +)
BorderStyle:bsSingle
Color:clBtnFace
Height:480
altura em pixels
Name:FrmMenuPrin
nome da tela
Position:poScreenCenter
Width:640
largura em pixels
WindowState:wsNormal
componente Image
Selecione o objeto Image1 que foi inserido na tela e altere as propriedades
abaixo, na janela Object Inspector:
Propriedades:
Contedo
Align:
Autosize:
Picture...
Name:
Stretch:
FrmSplash
BorderStyle
bsNone
Height
250
Position
poScreenCenter
Width
400
Color
clGray
210
Top
Width
385
Left
Stretch
True
Picture...
HandShak.bmp
Font.Size
26
True
Left
45
Top
90
clWhite
Transparent
Caption
Selecione, na barra de menus, a opo Project -> View Source para exibir o
cdigo fonte da aplicao.
Procure a linha de comando Application.CreateForm(TFrmSplash,
FrmSplash) e insira os comandos abaixo aps a mesma :
Para
testar
aplica
o
objeto.
at
este
Name
ShortCut
Hint
Aes
Action1
&Clientes
ActCliente
F2
Cadastro de Clientes
Action2
&Fornecedores ActFornec
F3
Cadastro de Fornecedores
Action3
F&uncionrios
ActFuncio
F4
Cadastro de Funcionrios
Action4
Ca&tegorias
ActCatego
F5
Cadastro de Categorias
Action5
&Itens
ActItens
F6
Cadastro de Itens
Action6
&Sair
ActSair
F7
Sair do Sistema
10
um
depsito de
11
12
13
Obs: Outras opes de Caixa de Dilogo MessageDlg para usar em outra ocasio:
Tipos de tela: mtConfirmation, mtWarning, mtError, mtInformation, mtCustom
Botes: mbOk, mbCancel, mbYes, mbNo, mbAll, mbRetry, mbYesToAll, mbNoToAll, mbAbort
Respostas aos botes: mrOk, mrCancel, mrYes, mrNo, etc.
14
15
File -> New -> DataModule (tipo especial de tela para agrupar os objetos de
banco de dados). Salve a Unit da tela como UDM.pas
ADOConnection1
Contedo
LoginPrompt
False
Name
Conexao
Significado
Desabilita tela de login (no pede
usurio e senha) ao fazer conexo com
o banco de dados.
Nome do componente AdoConnection
16
Clique em Build...
17
ADOTable1
Contedo
Significado
Connection
Conexao
Name
Tab_Clientes
TableName
Escolha Clientes
Selecione cada campo e altere suas propriedades, quando necessrio. Por exemplo,
altere a propriedade DisplayLabel do campo CliCodigo para Cdigo do Cliente. Isto
far com que todas as telas que usarem este campo aparea como Cdigo do Cliente
em seu rtulo, e no mais CliCdigo. Outra propriedade a EditMask, usada com
campos do tipo Texto e Data/Hora, que define a mscara do campo (Ex.: CliCep =
99.999-999). Para campos do tipo Moeda, altere a propriedade Currency para True,
para que lhe seja aplicado o formato monetrio. Quando precisar acessar informaes
de um campo em uma tabela, use a sintaxe: DataModule.TabelaCampo.Propriedade.
Por exemplo, para atribuir o contedo do campo CliNome varivel Nome, use
Nome:=Dm.Tab_ClientesCliNome.Value; (no precisa fazer isso agora).
18
FrmLogin
BorderStyle
bsDialog
Height
225
Position
poScreenCenter
Width
400
Caption
Login
84
Left
Width
113
Top
Stretch
True
Picture...
HandShak.bmp
GrpBxLogin
Left
Top
96
Height
88
Width
382
Label2
Label 3
Caption
Usurio
Senha
Alignment
taCenter
taLeftJustify taLeftJustify
AutoSize
False
True
True
WordWrap
True
False
False
Font...
18, 20,-,-
19
18, 54,-,-
Edit2
Text
(em branco)
(em branco)
Name
EdtApelido
EdtSenha
PassWordChar
#0
CharCase
ecUpperCase
ecLowerCase
BitBtn2
Kind
bkOk
bkCancel
Caption
&OK
&Cancelar
Name
BtnOk
BtnCancelar
Obs.: Se, ao tentar compilar o programa, for exibido um erro dizendo que
loPartialKey no foi declarado, tecle [F1] e pea ajuda sobre loPartialKey.
Quando o Delphi exibir a ajuda, anote o nome da Unit qual pertence este
parmetro e inclua o nome da mesma (no caso, DB) na clusula Uses do
formulrio em questo.
20
do
sistema, ou seja, fazer com que seja mudada a tela que apresentada em primeiro
lugar quando o sistema executado.
Se voc tentou executar o sistema at este ponto, percebeu que a tela de
login no apareceu. Uma das maneiras de fazer com que isto acontea, alterar a
Main Form para a tela FrmLogin. Para isto siga os procedimentos abaixo:
21
2
Close;
3
22
OBS: Repita a execuo dos tpicos das pginas 23 28 para criar as demais telas do
menu Cadastros (Clientes, Fornecedores, Categoria, Itens (Produtos), Funcionrios) e do
menu Movimentos (Vendas e Itens da Venda), fazendo as devidas adaptaes, de acordo
com a tabela utilizada, pois nos exemplos esto sendo utilizadas apenas a tabela de
Clientes. A tela Itens da Venda dever ser chamada por um boto na tela de Vendas.
23
DESC';
24
25
26
Para criar uma tela Modal (no permite acessar as demais telas da
aplicao enquanto a tela modal no for fechada):
Nome_Form.ShowModal;
Ex.: FrmCadCliente.ShowModal;
Ex.: FrmCadCliente.Show;
27
28
29
DataSource = Ds_Tab_ItemVenda
DataField = ItVeProduto
ListSource = Ds_Tab_Produtos.
ListField = ProdNome
KeyField = ProdID
30
Para realizar uma consulta pela chave completa, ou seja, o contedo s ser
encontrado depois de digitado todo o contedo do campo, utilize o mesmo comando,
remova a palavra loPartialKey e coloque o comando dentro de uma estrutura de deciso If,
conforme o exemplo a seguir:
If not Dm.tab_Clientes.Locate( 'CliNome',ValorCampo.Text, [loCaseInsensitive]) then
MessageDlg(Cliente no cadastrado!, mtError, [mbOk], 0);
Digite o comando acima no evento OnClick do boto Pesquisar, por exemplo. Neste
caso, lembre-se de colocar comentrio (//) no comando do evento OnChange do TEdit
ValorCampo, utilizado anteriormente. Para fazer uma consulta com dois campos utilize a
sintaxe: Tabela.Locate('Campo1;Campo2', VarArrayOf([Contedo1, Contedo2]),
[loPartialKey]);
31
32
33
With FrmCadCliente.QueryClientes do
Begin
Close; // fecha a query
Parameters[0].Value := EdtCidade.Text; //define parmetro de pesquisa
Open; //abre a query e executa os comandos SQL
End;
FrmPesCliCid.Close;
seus principais comandos como Select, Update, Insert, Delete, Create Table,
bem como tcnicas de Join, agrupamentos, etc.
Caso queira, voc pode criar uma tela Datamodule para organizar
seus objetos AdoQuery, evitando que os mesmos fiquem espalhados pelas
telas da aplicao.
34
FrmPesCliCid.ShowModal;
FrmRelCliCid.QuickRep1.Preview;
35
36
37
, que ser
38
39
40
41
42
43
44
File -> New -> Unit para acrescentar uma unit nova no vinculada a tela na
aplicao. Para acess-la de outros locais, use [Ctrl] + [F12].
Para que as funes e procedimentos criados na nova Unit possam ser utilizados, informe
o nome da mesma na clusula uses de cada unit em que os mesmos forem solicitados.
Aproveite este momento para pesquisar ou criar procedures e funes que possam ser
utilizadas em vrios pontos do sistema e acrescente-as Unit UFunProGeral.pas
45
46
47
48
49
50
51
Obs: Para instalaes mais simples, utilize o modo Project Wizard (assistente de
projetos), que auxilia, passo a passo, a construo do programa de instalao.
52
53
Selecione o
DriveComboBox1 e
altere sua propriedade
DirList, para
DirectoryListBox1
para que os dois
fiquem associados.
Formatado: Fonte: 10 pt
55
Name: QCliCid
Connection: Dm.Conexao
56
CliCid.Clear;
chtGrafico.Title.Text.Clear;
chtGrafico.Title.Text.Add('Grfico Clientes por Cidade);
QCliCid.Open;
While (not QCliCid.Eof) do
begin
// Insere dados do Eixo Y do grfico de barras
CliCid.AddY(QCliCidQtde.Value, QCliCidCliCid.AsString, clSkyBlue);
QCliCid.Next;
end;
57
Name: QComprarProdutos
Connection:ConexaoBanco
SQL...: Select CatDesc, ProdNome, ProdQtdeEst From Categorias, Produtos
Where CatCodigo = ProdCategoria And ProdQtdeEst <= :Qtde
Active: True
Nome do Produto
Qtde em Estoque
XXXXXXXXX XXXXXXXXXXXXXXX
XXXXXXXXX XXXXXXXXXXXXXXX
XXXXXXXXX XXXXXXXXXXXXXXX
99
99
99
58
59
60
Tipo
*CliCodigo
AutoNumerao
Texto
Texto
Texto
Texto
Texto
Texto
Texto
Texto
Texto
Texto
CliNome
CliEnd
CliCep
CliCid
CliEst
CliNumFone
CliEmail
CliDoc1
CliDoc2
CliContato
Tamanho
50
40
9
35
2
15
50
15
15
50
Tabela: Fornecedores
Nome Campo
Tipo
*ForCodigo
AutoNumerao
Texto
Texto
Texto
Texto
Texto
Texto
Texto
Texto
ForRazao
ForEnd
ForCid
ForEst
ForCep
ForCont
ForNumFone
ForHomPag
Tamanho
40
40
35
2
8
35
15
50
Tabela: Funcionarios
Nome Campo
Tipo
*FunCodigo
AutoNumerao
Texto
Texto
Texto
Texto
Texto
Texto
Data/Hora
Moeda
FunNome
FunEnder
FunCep
FunCid
FunEst
FunNumFone
FunDatAdm
FunSalario
Tamanho
50
40
8
30
2
15
Tabela: Usuarios
Nome Campo
Tipo
*UsuCodigo
AutoNumerao
Texto
Texto
Texto
Texto
Nmero
UsuNome
UsuApelido
UsuSenha
UsuDepto
UsuNivel
Tamanho
50
15
7
15
Tabela: Categorias
Nome Campo
Tipo
*CatCodigo
AutoNumerao
Texto
CatDesc
61
Tamanho
15
Tabela: Produtos
Nome Campo
Tipo
*ProdID
AutoNumerao
Nmero
Texto
Texto
Moeda
Nmero
Texto
Nmero
ProdCategoria
ProdCodigo
ProdNome
ProdPrecoVenda
ProdQtdeEst
ProdUnidade
ProdFornecedor
Tamanho
7
50
5
Tabela: Venda
Nome Campo
Tipo
*VendID
AutoNumerao
Nmero
Data/Hora
Moeda
Moeda
Moeda
Moeda
Nmero
VendCliente
VendDt_venda
VendValorProdutos
VendDesconto
VendAcrescimo
VendFrete
VendQtde
Tamanho
Tabela: ItemVenda
Nome Campo
Tipo
*ItVeID
AutoNumerao
Nmero
Nmero
Moeda
Moeda
Nmero
ItVeVenda
ItVeProduto
ItVeValorUnitario
ItVeDescontoItem
ItVeQtde
62
Tamanho
APOSTILA
63