Mep Sites - Dicas

Mep Sites: Dicas de Delphi - Conhecendo o Delphi

Conhecendo o Delphi

O ambiente do Delphi

O Delphi oferece dois níveis de programação distintos. Existe o nível do que o manual chama de designer, que se utiliza dos recursos de programação visual e aproveita componentes prontos, e o nível do component writer, que
escreve os componentes para o designer utilizar nas aplicações. Podemos dizer que o component writer programa em um nível mais baixo e o designer em um nível mais alto. Para este curso, consideraremos a programação no nível do designer.

Quando ativamos o Delphi, a tela inicial é parecida com a figura abaixo. Na janela superior, temos a barra do menú principal do Delphi, à esquerda a SpeedBar, com as opções mais comuns e à direita a paleta de
componentes. Estes componentes são a base da programação visual e é onde o designer vai buscar recursos
para sua aplicação. Abaixo da SpeedBar, está a janela do Object Inspector, que permite visualizar e modificar as
propriedades e eventos de todos os componentes. É também largamente utilizado pelo designer. Abaixo da paleta ficam a janela de código-fonte e as janelas que estão sendo construídas.


Elementos Visíveis

O ambiente de trabalho do Delphi é formado por objetos que estão visíveis tão logo que o aplicativo seja iniciado
formando a área de trabalho.

Form

Os formulários (objeto Form) são os pontos centrais para o desenvolvimento Delphi. Você se utilizará deles para
desenhar sua comunicação com o usuário, colocando e organizando outros objetos. Estes objetos são arrastados da Component Palette, mostrada na janela localizada acima.

Você pode imaginar que o formulário é um objeto que contém outros objetos. Sua aplicação ficará localizada em
um formulário principal e este interagirá com outros formulários criados. É possível aumentar, mover ou ocupar
completamente a tela do monitor, ou até mesmo ultrapassá-la. Um formulário básico inclui os seguintes componentes:

Controles de menu;
Botões de maximização e minimização;
Barra de título; e
Bordas redimensionáveis.

O código gerado, na área conhecida como Code Editor, fica exatamente atrás do objeto formulário. Clicando na barra de título dela (ou pressionando a tecla F12) ela é trazida para a frente,, para permitir a edição do código.

É possível enviar um formulário para a impressora, para isto existem duas maneiras:

1. Tipo um PrintScreen de Tela, coloque o seguinte comando “[Nome do formulário].Print;” no evento
onShow do formulário; ou
2. Para imprimir um formulário no tamanho de um papel A4, através do uso de comandos da biblioteca
Printer. Este recurso é mais avançado, e não está disponível nesta página agora.

Code Editor

O editor de códigos providencia total acesso ao código gerado pelo projeto, incluindo alguns dos mais poderosos
recursos para a edição. Pode ser selecionado tipos de cores para os elementos do programa (como por exemplo
comentários, palavras reservadas, códigos assembler, ...) para tanto a partir do menu principal entre em Tools |
Options..., localize a página Colors.
Para outras informações adicionais sobre o modo de usar este editor, procure referências no Help OnLine no
tópico Code Editor.
Ao ser aberto um novo projeto, o Delphi gera automaticamente na página do Code Editor uma Unit com o arquivo código (.PAS). Para ver o código de uma Unit em particular, simplesmente Click na tabulação de página. O Code Editor mostrará sempre o nome do arquivo corrente ativo na tabulação de página.
É possível alternar entre o objeto Form e a Code Editor através do pressionamento da tecla F12, do botão botão
(Toggle Form/Unit) da SpeedBar, ou ainda através das opções do menu View | Toggle Form/Unit. (curiosidade: o
acesso rápido através da tecla Alt + Letra sublinhada para esta opção está marcado sobre a letra G)

Component Palette

Componentes (ou objetos) são os elementos que você usará para trabalhar com a aplicação. Foram incluídos objetos em várias páginas, tais como caixas de diálogos e botões, a palheta inclui também alguns espaços em
branco para ser permitida a adição de novos objetos. Alguns objetos não serão visíveis enquanto a aplicação
estiver executando, eles fazem parte do serviço da DDE (Dynamic Data Exchange).
Os objetos da palheta foram divididos em grupos de funcionalidade em diferentes páginas. Por exemplo, os objetos que representam as janelas tradicionais do Windows (tais como fontes, palheta de cores, ...) foram colocados na página Dialogs da palheta.

Object Inspector

Providencia a conexão entre a interface visual e o código. É Composto por duas páginas Properties (propriedades) e Events (Eventos) que mostrará as propriedades e eventos do objeto selecionado.
Disponibiliza um fácil caminho para a personalização dos objetos. Você usará a página de Propriedades para
personalizar os objetos colocados no formulário (inclusive o próprio formulário), e a página de Eventos para
gerenciar a navegação entre certas partes do código do programa.
O seletor de objetos (Object Selector - localizado em um objeto do tipo ComboBox no topo do Object Inspector)
mostra o nome e o tipo de todos os componentes do formulário corrente (inclusive o próprio). Você pode usar o
seletor de objetos para localizar facilmente qualquer objeto no formulário.

SpeedBar

Contém os botões mais freqüentemente utilizados, é basicamente uma barra de ferramentas rápida. Fornecendo deste modo um atalho de navegação ao menu principal do Delphi.
É possível a personalização da SpeedBar colocando nela os caminhos do menu principal que você mais utiliza,
bastando para isso:


1. Redimensione a SpeedBar. Para tanto posicione o cursor do mouse sobre o ponto de encontro da
SpeedBar com a Component Palette conforme o desenho abaixo:
2. Quando o cursor do mouse mudar de formato, clique o botão esquerdo do mouse e arraste abrindo a
área da SpeedBar.
3. Clique com o botão direito do mouse na área aberta, apareça um menu PullDown contendo entre outras
opções a opção Properties, selecione-a.
4. As categorias e os comando são divididos de acordo com o menu, clique em cima dos comandos
disponíveis e arraste-os para a área aberta de acordo com a sua necessidade, para retirar os botões da SpeedBar faça o processo inverso.


Algumas Propriedades mais utilizadas:

Name: É comum a todos os componentes da paleta. O Delphi nomeia automaticamente todos os componentes que são incluídos no form (inclusive o proprio form). Usa o nome da classe do componente mais um número
seqüencial. O nome atribuído pelo Delphi pode ser mantido, mas é aconselhável renomear os componentes que
serão referidos no programa. Por exemplo, num certo programa dois botões são referenciados no código, por exemplo, Button1 e Button2. Eles deveriam ser renomeados, já que é feita referência a eles no código fonte, já para o Button3 não há necessidade por que não há referência a ele. Quando você renomeia um componente, o Delphi atualiza automaticamente todo o código gerado pelo Delphi, o que inclui o cabeçário da Unit, os eventos do componente e as propriedades de outros componentes que fazem referência ao componente renomeado, mas não atualiza o código gerado por você. Exemplo: se renomearmos agora o Button1, o Delphi atualizará o cabeçário da unit, o nome dos eventos de Button1, mas você terá que atualizar as referências que você fez ao Button1 com o novo nome. Aliás esta é uma regra geral no Delphi: ele nunca modifica automaticamente o código gerado pelo programador, mesmo que esteja em comentário.

Caption: Todos os componentes que podem apresentar um rótulo tem esta propriedade. Armazena a string que será mostrada quando o componente for desenhado.

Left e Top: Esquerda e Topo. Armazenam a posição do componente em relação ao form ou painel que o contém. Movendo o componente, estas propriedades se atualizam automaticamente, e alterando estas propriedades, o componente é movido.

Height e Width: Altura e comprimento do componente. Idem acima.

Font: Permite selecionar tamanho e tipo da fonte que será usada para escrever o texto no componente.

Color: Cor do componente. Existe uma lista de cores padrão usadas pelo Windows e pelo Delphi, mas é possível
definir qualquer cor através de seus componentes RGB.

TabOrder: Ordem do componente no Form ou painel. Quando há vários componentes selecionáveis no Form ou
painel, a tecla Tab permite navegar entre os componentes. Esta propriedade define a ordem em que os
componentes são selecionados quando o usuário tecla Tab. Inicia-se a contagem a partir do zero.

Hint: (Dica) Este é um recurso muito útil e fácil de usar. Permite que apareça um texto de ajuda quando o usuário posiciona o cursor do mouse sobre um componente. Praticamente todos os componentes visuais podem ter Hint. Na propriedade Hint, você deve digitar a frase que irá aparecer. Veja a propriedade abaixo.

ShowHint: Ativa o hint para o componente. Se estiver desligado, o hint não é mostrado.


Alguns Eventos básicos:

OnClick: É gerado cada vez que o botão esquerdo do mouse é pressionado e solto. O evento só ocorre quando o usuário libera o botão. O Delphi já direciona o evento para o componente que está debaixo do cursor do mouse.

OnDblClick: Gerado quando é feito um duplo clique no botão esquerdo.

OnKeyPress: Gerado quando o usuário pressiona (e libera) uma tecla no teclado.

OnEnter: Gerado quando o foco de atenção do Windows “cai” sobre o componente. Exemplo: Suponha uma tela
de entrada de dados, onde vários campos devem ser digitados. Quando a tela é apresentada, o foco, ou o cursor de texto, está sobre o primeiro campo. Depois de digitar o campo, o usuário pressiona Tab para passar para o campo seguinte. Veja que o que passa para o campo seguinte é a atenção da aplicação e do Windows. Essa atenção é chamada de foco, ou focus em inglês. Este evento é gerado assim que o componente recebe o foco, antes de executar qualquer código do componente.

OnExit: Gerado imediatamente antes de o foco deixar o componente.

OnResize: Gerado quando o tamanho do componente é alterado. É usado principalmente em forms e painéis.

OnChange: Gerado quando o valor do componente muda. Só é aplicado em componentes que permitem edição de seu conteúdo, como por exemplo visualizadores de textos ou campos de textos mesmo.

Alguns métodos úteis

Show: Desenha o componente. Se for uma janela (form) ela é desenhada e ativada.

Close: Fechar. Aplicado geralmente em forms e arquivos. Quando utilizado no form principal, encerra a aplicação.

Repaint: Repintar. Redesenha o componente ou form.

Refresh: Tem o mesmo efeito que o Repaint, mas antes de desenhar, apaga o componente. Quando aplicado em arquivos, faz com que o buffer do arquivo seja recarregado.

Create: Aloca memória para criar um componente ou form, dinamicamente.

Free: Libera a memória alocada com o Create.


Para iniciarmos poderíamos criar a versão Delphi do famoso “Hello Word”, mas vamos partir para alguma coisa um
pouco mais interessante e aproveitar para apresentar uma propriedade que pode ser útil no futuro. Como os
programas em Windows são orientados a eventos é comum desativar opções de menus e botões, até que o
usuário ative as opções que o sistema precisa para inicializar. Neste primeiro programa, vamos criar uma espécie
de gangorra eletrônica. Mas antes de começar, vejamos o que está acontecendo no Delphi.

Se você acabou de abrir o delphi, não entrou em nada e a tela está parecida com a figura do topo da página, então não há nenhum projeto selecionado e o Delphi tomou a liberdade de criar um novo projeto para você, chamando-o de Project1. Um projeto é a coleção de arquivos necessários para compilar o sistema. Como toda aplicação precisa de pelo menos um form (Form1), ele também foi criado. Finalmente, todo form tem uma Unit correspondente que é mostrada no Editor de Código (Unit1). Não há problema em utilizar esse projeto inicial que é oferecido pelo Delphi, mas é uma boa idéia renomear e salvar o projeto o quanto antes. Se você não escolher outro diretório, o projeto será salvo no diretório do Delphi e não é aconselhável salvar todos os seus projetos no mesmo diretório. Portanto vamos começar este programa criando um novo diretório para ele. Após isso, vamos seguir os seguintes passos:

1. Selecione a página Standard na paleta de componentes e clique no componente Buttom. A seguir clique no
form. Um botão deve aparecer no form. Coloque mais dois botões.
2. Alinhe na horizontal os dois primeiros e coloque o terceiro logo abaixo dos dois. Clique no botão e arraste para alinhá-lo, para movimentá-lo para ourtra posição. Se quiser um alinhamento exato, use a opção Edit/Align... do menu do Delphi. Para marcar mais de um componente, deixe o Shift pressionado
enquanto clica os componentes. Brinque um pouco com o tamanho dos botões e do form.
3. Clique o primeiro botão para selecioná-lo, a seguir procure no Object Inspector a propriedade Caption. Mude a string para “ON”. Para o segundo botão a string é “OFF” e para o terceiro “Close”. Para o segundo botão, mude a propriedade Enabled para False.
4. Neste ponto é uma boa idéia renomear e salvar o projeto. Escolha a opção File/Save project as...Selecione o
diretório criado para o projeto e use o nome Main.pas para a unit1 e Gangorra para o projeto.
5. Clique a área pontilhada do form e em seguida ache a propriedade Caption no Object Inspector. Mude a string para “Gangorra”. Aproveite e mude a propriedade Name para “fmMain”.
6. Dê um clique duplo sobre o primeiro botão. A janela de código será ativada já com a função correspondente ao evento OnClick criada e posicionada sob o cursor. Digite o seguinte código:

Button1.Caption := 'OFF';
Button1.Enabled := False;
Button2.Caption := 'ON';
Button2.Enabled := True;

7. Selecione a janela do form e faça o mesmo com o segundo botão, mas o código fica invertido:

Button2.Caption := 'OFF';
Button2.Enabled := False;
Button1.Caption := 'ON';
Button1.Enabled := True;

8. Finalmente para o terceiro botão o código é simplesmente:

Close;

9. Já podemos executar o programa pressionando F9.

O que está acontecendo: O evento OnClick ocorre sempre que clicamos o mouse sobre um componente. O Delphi se encarrega de determinar qual é o componente que deve responder ao evento e direciona o evento para ele. Neste caso, usamos este evento para ativar/desativar botões manipulando a propriedade Enabled, que determina se o componente está ativo ou não. Quando o componente está inativo, ele não responde aos eventos. Também usamos a propriedade Caption para mudar a mensagem que aparece nos botões. Finalmente usamos o método Close do form para fechar a aplicação.

Autor: Osmário de Carvalho Santos Filho
Fonte: Curso de Delphi completo (executável)
URL: http://www.tdownloads.hpg.com.br
Obs.: Este material foi adaptado por Marcos Elias @Mep Sites