Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


OO - Delphi, Notas de estudo de Informática

Programação orientada a objetos

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 17/10/2010

joel-schecheleski-9
joel-schecheleski-9 🇧🇷

1 documento

1 / 75

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
DESENVOLVENDO APLICAÇÕES
ORIENTADAS A OBJETOS COM O
BORLAND DELPHI
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b

Pré-visualização parcial do texto

Baixe OO - Delphi e outras Notas de estudo em PDF para Informática, somente na Docsity!

DESENVOLVENDO APLICAÇÕES

ORIENTADAS A OBJETOS COM O

BORLAND DELPHI

Introdução

O Delphi é uma ferramenta RAD (Rapid Application Development – Desenvolvimento Rápido de Aplicações) criada pela Borland. É uma ferramenta de propósito geral, permitindo o desenvolvimento de aplicações tanto científicas como comerciais com a mesma facilidade e alto desempenho. Integra-se facilmente com a API (Application Program Interface) do Windows, permitindo a criação de programas que explorem ao máximo os seus recursos, assim como os programas escritos em linguagem C/C++.

Possui um compilador extremamente rápido, que gera executáveis nativos (em código de máquina, não interpretado), obtendo assim melhor performance e total proteção do código fonte.

O Delphi é extensível, sua IDE (Integrated Development Environment – Ambiente de Desenvolvimento Integrado) pode ser ampliada e personalizada com a adição de componentes e ferramentas criadas utilizando-se o Object Pascal, a linguagem de programação do Delphi. Neste ambiente constroem-se as janelas das aplicações de maneira visual, ou seja, arrastando e soltando componentes que irão compor a interface com o usuário.

O Object Pascal é uma poderosa linguagem Orientada a Objeto, que além de possuir as características tradicionais das mesmas como classes e objetos, também possui interfaces (semelhantes às encontradas em COM e Java), tratamento de exceção, programação multithreaded e algumas características não encontradas nem mesmo em C++, como RTTI (Runtime Type Information). Assim como o C++, o Object Pascal é uma linguagem híbrida, pois além da orientação a objeto possui também uma parte da antiga linguagem estruturada (Pascal)

Devido ao projeto inicial da arquitetura interna do Delphi e da orientação a objeto, suas características básicas mantêm-se as mesmas desde o seu lançamento em 1995 (ainda para o Windows 3.1, pois o Windows 95 ainda não havia sido lançado), o que demonstra um profundo respeito com o desenvolvedor. Isto permite que uma aplicação seja facilmente portada de uma versão anterior para uma nova, simplesmente recompilando-se o código fonte.

Obs: Embora as características, teorias e exemplos abordadas aqui sejam sobre o Delphi 6, tudo pode ser aplicado em versões anteriores e posteriores do Delphi, excetuando-se o caso da utilização de componentes e ferramentas introduzidos apenas nesta versão.

ocorrer, sendo que os principais são aqueles gerados pelo usuário através do mouse e do teclado. A coisa acontece mais ou menos assim: O usuário clica o mouse e o Windows verifica que aplicação estava debaixo do mouse no momento em que foi clicado. Em seguida ele manda uma mensagem para a aplicação informando que ocorreu um clique e as coordenadas do cursor do mouse na tela no momento do clique. A aplicação então responde à mensagem executando uma função de acordo com a posição do mouse na tela. É claro que o Delphi toma conta do serviço mais pesado e facilita muito as coisas para o programador. Detalhes como as coordenadas da tela em que ocorreu o clique, embora estejam disponíveis, dificilmente são necessários nos programas. Isso, como veremos, afeta radicalmente o estilo de programação e a forma de pensar no programa. A seqüência de execução do programa depende da seqüência de eventos.

Conhecendo o Delphi 6

Esta apostila se baseia na versão 6 do Borland Delphi, mas seus conceitos podem ser estendidos para qualquer versão do Delphi que possua recursos semelhantes.

O Delphi oferece dois níveis de programação distintos. Existe o nível que o manual chama de designer , que utiliza os recursos de programação visual e aproveita os componentes prontos, e o nível do component writer , onde escrevemos 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 apenas a programação no nível do designer.

Inicie o Delphi clicando no ícone Delphi 6 que normalmente se encontra no menu Iniciar / Programas / Borland Delphi 6.

Quando ativamos o Delphi, a tela inicial é parecida com a acima. Os itens que você está vendo formam o que chamamos de IDE, com um projeto novo aberto. Na janela superior, temos a barra do menu principal do Delphi, à esquerda a SpeedBar , com as opções mais comuns e à direita a paleta de componentes. Estes componentes formam a base da programação visual e é onde o designer vai buscar recursos para criar sua aplicação. A seguir, vamos analisar as ferramentas que compõe o ambiente de desenvolvimento e os arquivos que constituem um projeto.

Janela Principal

A janela principal é o próprio Delphi, se a fecharmos estaremos fechando todo o Delphi. Esta janela é composta basicamente pelo menu e mais duas áreas distintas, o SpeedBar e a Component Palette - Paleta de Componentes.

acessadas posteriormente. Equivalente ao menu Run | Trace Into ou a tecla de função F7. Step Over. Semelhante ao Trace Into, porém a execução passo a passo ocorrerá somente dentro da rotina em que for invocado. Equivalente ao menu Run | Step Over ou a tecla de função F8.

Component Palette (Paleta de Componentes)

Cada ícone na paleta refere-se a um componente que, quando colocado em um Form, executa determinada tarefa: por exemplo, um TLabel mostra um texto estático, e um TEdit é uma caixa de edição que permite mostrar e alterar dados, o TComboBox é uma caixa que permite selecionar um dentre os itens de uma lista, etc.

A paleta de componentes tem diversas guias, nas quais os componentes são agrupados por funcionalidade. Outras guias podem ser criadas com a instalação de componentes de terceiros.

Segue abaixo a relação completa de todas as guias que compõe o Delphi 6 Enterprise:

Standard : componentes padrão da interface do Windows, usados para barras de menu, exibição de texto, edição de texto, seleção de opções, iniciar ações de programa, exibir listas de itens etc. Geralmente são os mais usados.

Additional : componentes especializados que complementam os da página Standard. Contém botões com capacidades adicionais, componentes para exibição e edição de tabelas, exibição de imagens, gráficos etc.

Win32 : componentes comuns de interface que são fornecidos pelo Windows 95/NT para os programas. Contém componentes para dividir um formulário em páginas, edição de texto formatado, barras de progresso, exibição de animações, exibição de dados em árvore ou em forma de ícones, barras de status e de ferramentas etc.

System : componentes que utilizam funções avançadas do sistema operacional, como temporização (timers), multimídia e conexões OLE e DDE.

Data Access : componentes de acesso a bancos de dados e conexão com controles de exibição de dados.

Data Controls : componentes semelhantes aos encontrados nas guias Standard e Additional, porém ligados a banco de dados.

dbExpress : componentes de conexão com bancos de dados SQL introduzida no Delphi 6 e no Kylix (Delphi para Linux). Entre os principais recursos desta nova arquitetura estão dispensar o uso do BDE (Borland Database Engine) para acesso a dados e fazer um acesso muito mais rápido e leve. A configuração e instalação também são mais simples que a do BDE. Atualmente existem drivers para Oracle, DB/2, Interbase e MySQL entre outros. Não existe suporte para bancos de dados Desktop, assim, não permite acesso a dBase, Paradox ou Access para estes você deverá continuar a utilizar o BDE.

DataSnap : componentes que permitem a criação de middleware de alto desempenho capazes de trabalhar com Web services, possibilitando fácil conexão de qualquer serviço ou aplicação de cliente com os principais bancos de dados, como Oracle, MS-SQL Server, Informix, IBM, DB2, Sybase e InterBase, através de Serviços Web padrão da indústria e XML, DCOM ou CORBA. (No Delphi 5 esta guia era chamada de Midas).

BDE : componentes de acesso a dados utilizando a BDE (até o Delphi 5 faziam parte da guia Data Access). A BDE é a engine que acompanha o Delphi desde sua primeira versão. Muito completa, permite acessar desde bases de dados desktop, como Paradox, dBase ou Access, até bases de dados SGDB, como Interbase, DB/2, Oracle, Informix, SyBase ou MS-SQL Server, todos em modo nativo. Permite ainda o acesso a outros bancos de dados através de ODBC.

FastNet : componentes para manipulação de protocolos e serviços da internet como http, nntp, ftp, pop3 e smtp entre outros. (São mantidos por compatibilidade com o Delphi 5, nesta versão foram inseridos os componentes Indy com maior funcionalidade).

Decision Cube : componentes para tomada de decisão através da análise multidimensional de dados, com capacidades de tabulação cruzada, criação de tabelas e gráficos. Estes componentes permitem a obtenção de resultados como os obtidos por ferramentas OLAP (On-Line Analytical Processing – Processamento Analítico On-Line) utilizados para análise de Data Warehouses.

Qreport : QuickReport é um gerador de relatórios que acompanha o Delphi e se integra totalmente ao mesmo, sem a necessidade de run-time ou ferramentas externas como o Cristal Report, etc. Estes componentes permitem a criação de diversos tipos de relatórios de forma visual e também a criação de preview personalizado.

Dialogs : O Windows tem caixas de diálogo comuns, como veremos, que facilitam mostrar uma interface padrão dentro do seu programa para as tarefas comuns, como abrir e salvar arquivos, impressão, configuração de cores e fontes etc. Esta guia tem componentes que permitem utilizar essas caixas de diálogo comuns.

Win 3.1 : esta guia contém controles considerados obsoletos, que estão disponíveis apenas para compatibilidade com programas antigos. Não crie programas novos que utilizem esses controles.

Samples : contém exemplos de componentes para que você possa estudá-los e aprender a criar seus próprios componentes. O código fonte desses

exemplos está no subdiretório SOURCE\SAMPLES do diretório de instalação do Delphi.

ActiveX : um componente ActiveX é um tipo de componente que pode ser criado em outra linguagem (como C++) e utilizado no Delphi. Esta página contém alguns exemplos de componentes ActiveX prontos para utilizar, que têm funções de gráficos, planilha, etc. O Delphi também pode criar componentes ActiveX, que podem ser utilizado em ambientes como Visual Basic e Visual FoxPro.

COM+ : catálogo de objetos COM (Component Object Model), tecnologia desenvolvida pela Microsoft que possibilita a comunicação entre clientes e aplicações servidores. Uma interface COM é a maneira como um objeto expõe sua funcionalidade ao meio externo.

Indy Clients : componentes para criação de aplicativos clientes para protocolos HTTP, TCP, FTP, DNS Resolver, POP3, SMTP, TELNET, entre outros.

Indy Servers : componentes para criação de aplicativos servidores de HTTP, TCP, FTP, TELNET, GOPHER, IRC, entre outros.

Indy Misc : componentes complementares aos das guias Indy Clients e Indy Servers, para criação de aplicativos clientes e servidores com acesso a internet, como clientes de ftp, irc e browsers.

Servers : componentes para automatização do Microsoft Office, permitindo o controle, impressão e criação de documentos destes aplicativos dentro do seu programa.

A Unit está intimamente ligada ao formulário, chamado Form : quando se adiciona um componente ao Form, o Delphi inclui na Unit deste Form o código referente à inclusão do mesmo, ou seja, uma mudança no lado visual resulta em uma alteração automática no código. A Borland, empresa que fez o Delphi, denominou isso de Two-Way-Tool (ferramenta de duas vias).

À esquerda do editor de código esta o Code Explorer, uma ferramenta que permite visualizar a acessar no código fonte as units, classes, variáveis, constantes e objetos (componentes) que fazem parte do Form.

Na mesma janela do editor de código pode ser acessada a guia Diagram que permite documentar o relacionamento entre os componentes, além de modificar algumas características destas relações. Inicialmente ela está vazia, para incluir os componentes, você deve arrastá-los do Object TreeView e solta- los sobre o diagrama.

Object TreeView

O Delphi 6 introduziu uma nova janela, o Object TreeView, que mostra o relacionamento entre os componentes que são colocados no Form. Como veremos adiante, existem componentes que funcionam como “recipientes”, ou seja, podem conter outros componentes dentro de si. O Object TreeView permite a visualização destes relacionamentos e o acesso rápido a estes objetos.

Object Inspector (Propriedades e Eventos)

O Object Inspector é a ferramenta responsável por permitir a modificação das propriedades dos componentes/objetos de forma visual, durante o projeto (Design Time). Por enquanto, pense em propriedades como sendo as características dos componentes, tanto visuais quanto funcionais. O combobox na parte superior desta janela dá acesso a todos os objetos do Form atual e sempre exibe o nome do objeto/componente selecionado. Uma vez selecionado você pode inspecionar suas propriedades e altera-las se desejar. A alteração das propriedades pode modificar a aparência de objetos visuais e também seu funcionamento padrão.

Objeto atualmente selecionado.

Conhecendo a Estrutura de uma Aplicação

Uma aplicação feita em Delphi é composta de um arquivo de projeto, que gerencia quais Forms e Units compõem a aplicação. O nome dado ao arquivo do projeto, normalmente será o nome dado ao executável da aplicação quando a mesma for compilada.

Em alguns casos podemos ter uma Unit sem Form, um exemplo seria uma Unit com funções para serem utilizadas por toda a aplicação (em vários Forms), mas todo Form obrigatoriamente deve possuir sua Unit correspondente.

Vejamos um esquema gráfico de como é estruturado um projeto em Delphi:

Estrutura da Unit de um Form

As Units do Delphi possuem uma estrutura que deve ser obedecida. Quando um Form é criado também é criada uma Unit associada ao mesmo.

A estrutura básica de uma Unit pode ser visualizada observando-se o código fonte da mesma no editor de código. Será semelhante ao exibido a seguir:

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Project (arquivo de projeto) extensão .DPR ( D elphi PR oject)

Form

extensão .DFM ( D elphi F or M

Form

extensão .DFM

Unit

extensão .PAS

Unit

extensão .PAS ( PAS cal)

Unit

extensão .PAS

Dialogs;

type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

implementation

{$R *.dfm}

end.

Vamos analisar o código acima:

  • Na primeira linha, o nome em frente à palavra unit , no caso Unit1, indica o nome dado ao arquivo com a programação do formulário. Se o formulário fosse salvo com este nome ele geraria um arquivo externo com o nome de Unit1.pas e outro com o nome de Unit1.dfm. (Quando for salvar seus formulários você deve dar nomes mais significativos).
  • Na linha seguinte, a palavra interface delimita a seção de interface na qual serão colocadas as definições de funções, procedimentos, tipos e variáveis que poderão ser vistos por outras units da aplicação.
  • A cláusula Uses dentro da seção interface indica quais units deverão ser ligadas para poder complementar a nossa. Ao criar um Form as Units definidas no código acima são inseridas automaticamente, pois fornecem o suporte para criação do mesmo. Ao inserir componentes num Form, outras Units podem ser adicionadas a esta lista.
  • A seguir temos a definição dos tipos do programa, identificada pela palavra type. Neste ponto temos a definição de uma classe TForm1 que é derivada da classe base TForm. Ao se acrescentar componentes no Form também será gerado no código definição correspondente aos mesmos. (O conceito de classes e objetos será explicado no Capítulo 2)
  • O próximo item é a definição de variáveis e constantes globais, através da palavra reservada var. Neste ponto é criada uma variável com visibilidade global (pode ser vista em outras units nas quais a mesma seja incluída na cláusula uses)
  • A palavra chave implementation delimita a segunda seção da unit, onde serão colocadas as funções e variáveis que serão acessadas apenas por ela mesma (não são visíveis em outras units).

O código que você vê acima é igual ao código que aparece nos arquivos de formulário *.dfm. Você pode modificar o código acima. Que tal mudarmos, via código, o button para um checkbox? Para isso temos que mudar o tipo do objeto para a classe TcheckBox. Você também poderá mudar outras propriedades, mude a propriedade Caption para ‘&Aprovado’. As alterações são mostradas abaixo:

Agora, recorte o código do Editor, usando Edit | Cut. Retorne ao Form Designer e cole diretamente no form usando (Edit | Paste) e veja o resultado.

Criando seu Primeiro Programa em Delphi

É comum que todo programador ao iniciar numa linguagem de programação crie um programa chamado “Alô Mundo!” (Hello World!). Não quebraremos esta tradição aqui.

Agora iremos adicionar um controle do tipo Button no form. Mudaremos algumas propriedades do nosso form. Clique no formulário para “setar” o focus. Usando o Object Inspector, configure a propriedade Caption do formulário para “Hello World Demo”.

Selecione o Button no form. Altere a propriedade Caption para “Click here”.

De um duplo clique no Button para abrir o evento Click. O Delphi já cria e registra para você um evento chamado ButtonClick event handler. Você poderá começar escrever seu código que será executado quando o Button for clicado.

Adicione o código para o Evento Button1Click:

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowMessage('Hello World');

end;

Pressione F9 para executar a aplicação. A aplicação iniciará em uma janela do tipo Windows irá aparecer, como na figura abaixo. Você pode clicar no Close button no topo superior direito para fechar a aplicação e voltar ao ambiente de desenvolvimento.