4.
Sofisticação nas Aplicações
A partir de agora, passaremos a desenvolver um aplicação que vai usar os
recursos básicos para a maioria das aplicações. Conforme vamos incrementando
a aplicação, veremos os principais conceitos da programação em Delphi. A
aplicação é um mini sistema de pedidos. O sistema manterá cadastros de
clientes e produtos e será capaz de gerar e armazenar os pedidos dos clientes.
Menus
Como primeiro passo, cuidaremos do sistema de menus. O componente do menu é o
primeiro na página Standard da paleta de componentes. Coloque o menu no form. O
ícone apareceu mas ainda não há nenhuma barra de menu. Para entrar no editor
do menu é necessário um duplo clique no ícone no form. Note que quando o
editor é ativado o Object Inspector passa a mostrar as propriedades e eventos
dos itens de menu. Selecione a propriedade Caption e digite Arquivo. O menu
passa a mostrar agora uma opção para Arquivo e um retângulo pontilhado ao
lado. Clique no retângulo, selecione a propriedade Caption e digite Cadastros.
Repita a operação e coloque mais um item para Ajuda.
Neste ponto já temos o que num sistema DOS chamaríamos de menu principal. As
opções que aparecem horizontalmente na barra de menu, normalmente ativam
sub-menus que oferecem mais opções, e estas eventualmente podem abrir mais
sub-menus, num leque que pode crescer bastante, se necessário. Para criar um
sub-menu do menu principal, basta clicar na opção desejada e utilizar o retângulo
que aparece abaixo da opção. Crie agora os seguintes sub-menus:
Para
Arquivo: Sair
Para
Cadastro: Clientes, Produtos e Pedidos
Para
Ajuda: Sobre o sistema...
Podemos associar letras a opções do menu. Nesse caso a letra aparece
sublinhada no menu e o menu principal é ativado quando o usuário tecla ALT +
<letra escolhida>. Só é preciso tomar cuidado para escolher letras
diferentes para cada opção no mesmo nível. Exemplo: no primeiro nível temos
as opções Arquivo, Cadastro e Ajuda. Poderíamos escolher a letra A para
Arquivo e a letra C para Cadastro, mas a opção Ajuda não poderia estar também
associada à letra A, o mais aconselhável seria escolher a letra J. Para
selecionar uma letra, basta acrescentar o símbolo & (e comercial) antes da
letra na propriedade Caption.
Para criar submenus em submenus, selecione a opção que será a raiz e
pressione CTRL + Seta Direita. Crie as opções Cadastro e Listagem no cadastro
de Clientes e no de Produtos. No cadastro de Pedidos crie três opções:
Cadastro, Impressão e Listagem. O menu completo fica assim:
Arquivo
Sair
Cadastros
Clientes
Cadastro
Listagem
Produtos
Cadastro
Listagem
Pedidos
Cadastro
Impressão
Listagem
Ajuda
Sobre
o sistema...
Antes de fechar definitivamente o editor de menus, temos ainda outra tarefa.
Note que a opção Cadastro aparece em 3 submenus. Em cada um deles, o item de
menu para Cadastro deve receber um nome diferente do Delphi, e ele resolve o
problema chamando estes itens de Cadastro1, Cadastro2 e Cadastro3. Apenas para
deixar o código fonte mais claro e legível, poderíamos renomear estes itens
para mnCadCli, mnCadProd e mnCadPed. O prefixo mn indica que é um item de menu.
É um bom hábito colocar prefixos assim nos nomes dos componentes, porque
facilita muito a leitura do código fonte. Para fixar melhor este hábito, mude
também nome das opções de Listagem.
Agora já podemos fechar o editor de menus, dando um clique duplo no botão que
aparece à esquerda da barra de título da janela. Falta agora criar o código
para cada opção do menu. A maioria das opções, deixaremos para codificar
mais adiante, de imediato vamos apenas codificar a opção de saída do sistema.
Já com o editor de menus fechado, selecione a opção Arquivo/Sair no form da
aplicação e escreva Close;. Nossa aplicação agora já tem como fechar.
Painéis
Embora não pareça, o painel (Panel) é um componente extremamente útil e
poderoso. Sua aparência é de uma placa metálica e ele funciona como uma
sub-janela. Todos os componentes que são colocados sobre um painel, passam a
“pertencer” ao painel. Se o painel for movido dentro da janela, os
componentes sobre ele se movem junto. Com os painéis é possível dividir
facilmente a janela em regiões e distribuir melhor os componentes. O Delphi
também utiliza largamente os painéis de maneira puramente estética, como
moldura de grades e imagens.
Em nossa aplicação usaremos um painel para criar uma barra de botões que
permita entrar mais rapidamente nos cadastros. Primeiro diminua um pouco a
altura da janela. Coloque um painel no form e apague a string que está na
propriedade Caption. Aumente um pouco o tamanho vertical dele e em seguida,
ajuste a propriedade Align para alTop. O painel agora está configurado para
ficar sempre no topo da janela. O tamanho horizontal dele será sempre igual ao
espaço interno da janela, mesmo quando a janela muda de tamanho e o tamanho
vertical pode ser ajustado à gosto.
A propriedade Align tem as seguintes opções de alinhamento:
alTop: alinha no topo da janela (ou painel)
alBotton: alinha embaixo (rodapé)
alLeft: alinha à esquerda
alRight: alinha à direita
alClient: Faz o painel ocupar todo o espaço disponível da janela ou painel
alNone: Não faz nenhum alinhamento.
Neste painel colocaremos 4 botões, três à direita e um à esquerda, como na
figura 2. Mas desta vez usaremos o botão BitBtn que está na página Aditional
na paleta de componentes.