UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PARADIGMAS DE LINGUAGENS COMPUTACIONAIS
BRUNO EDSON MARTINS DE ALBUQUERQUE FILHO
MARCELO RODRIGUES NUNES MENDES
PABLO DE SANTANA BARBOSA
OBJECT PASCAL
Trabalho apresentado sobre
a história e características
da linguagem Object Pascal
aos professores Hermano
Perrelli e Luis Menezes.
Recife, 20 de maio de 2004.
OBJECT PASCAL
1. Introdução
Nas páginas a seguir descreveremos resumidamente a linguagem Object Pascal. Não
poderíamos, no entanto, deixar de falar um pouco sobre o ambiente de desenvolvimento
integrado (IDE) Delphi. Como veremos no restante deste artigo, há uma relação muito
estreita entre essa linguagem e o IDE. O nosso objetivo aqui é dar uma visão geral dessa
linguagem, procurando dar ênfase nas origens dela. O artigo começa com a descrição da
origem da linguagem Object Pascal (e do Delphi). A seguir veremos características que
tornam essa linguagem tão diferente da conhecida linguagem estruturada Pascal. Depois
falaremos sobre a especificação e a utilização da Object Pascal.
2. Origem
2.1 Pascal e Object Pascal
Pascal foi definida em 1970 pelo Prof. Niklaus Wirth do Swiss Federal Institute of
Technology (Zurich), como extensão do ALGOL (linguagem de programação voltada para
computação científica). Em um congresso em Zurich, um comitê internacional designou o
ALGOL como uma linguagem independente de plataforma. Isto deu mais liberdade para as
características que eles poderiam colocar na linguagem, mas também tornou mais difícil a
escrita de compiladores para ela. A carência de compiladores em muitas plataformas,
combinada com sua carência de ponteiros e muitos tipos de dados básicos tais como
caracteres, fez com que ALGOL não fosse amplamente aceito, o que fez com que essa
linguagem acabasse quase totalmente abandonada, exceto como linguagem para descrição
de algoritmos.
A especificação formal de Pascal foi publicada em 1971. O nome da linguagem foi
dado em homenagem ao filósofo e matemático francês Blaise Pascal que inventou uma
máquina de calcular mecânica. Pascal é bastante orientado a dados, dando ao programador
a capacidade de definir tipos de dados personalizados. Com esta liberdade veio a rígida
checagem de tipos, que garantiu que tipos não se misturariam. Pascal pretendia ser uma
linguagem educacional, e foi amplamente adotada como tal. Pascal é de escrita mais livre,
diferente de FORTRAN, assim os estudantes não tinham que se preocupar com formatação.
Além disso, Pascal se parece muito com uma linguagem natural, tornando muito fácil o
entendimento do código escrito com ele.
Object Pascal é a extensão orientada a objetos da linguagem Pascal que foi
desenvolvida pela Apple em parceria com Wirth, inventor de Pascal. Ela descende de uma
tentativa anterior de produzir uma versão orientada a objetos de Pascal, chamada ClasCal,
que foi inicialmente utilizada nos computadores Lisa da Apple. Na realidade existiram
poucas modificações na sintaxe de Object Pascal em relação a Pascal. Um novo tipo de
dados foi adicionado, o objeto. Em adição, É possível especificar uma lista de
procedimentos e funções, referenciados como métodos, para um tipo de objeto particular.
Estes métodos definem as ações que aquele objeto deste tipo pode realizar. Como
adiantamos na introdução essa linguagem tem uma estreita relação com o IDE Delphi,
entenderemos como isso ocorre na próximo seção onde descreveremos de maneira breve a
história da evolução do Turbo Pascal ao Delphi.
2.2 Borland Pascal
Com o lançamento, em novembro de 1983, do Turbo Pascal 1.0, a Borland iniciou
sua jornada no mundo das Ferramentas e ambientes de desenvolvimento. Na criação do
Turbo Pascal a Borland licenciou um núcleo de compilador, desenvolvido por Anders
Hejlsberg, mais rápido e barato que os existentes na época. Turbo Pascal introduziu um
ambiente de desenvolvimento integrado (IDE), onde era possível editar o código, executar
o compilador, observar os erros e voltar para as linhas que contém esses erros. O
compilador Turbo Pascal foi um dos mais vendidos em todos tempos, o que tornou a
linguagem popular em PC’s.
2.3 Delphi
Delphi foi uma proposta da Borland para uma nova geração de ambiente de
desenvolvimento visual para Windows, baseado na linguem de programação Object Pascal.
Após o desenvolvimento de Turbo Pascal 1.0, Anders se tornou o arquiteto de todas as
versões do compilador Turbo Pascal e das primeiras três versões de Delphi. Como arquiteto
chefe da Borland, Hejlsberg secretamente tornou Turbo Pascal numa aplicação de
desenvolvimento de linguagem orientada a objeto, completa e com um ambiente realmente
visual com suporte para acesso a banco de dados, assim se originou o Delphi.
História do Delphi
Tudo começou com a primeira versão do Delphi. Na época, a estratégia baseada em
formulários e orientada a objetos, o compilador extremamente rápido, o ótimo suporte a
banco de dados, a íntima integração com a programação Windows e a tecnologia de
componentes atraíram a atenção da comunidade de desenvolvedores de software. O
elemento, mais importante desse produto, no entanto, era a sua linguagem, Object Pascal, a
fundação de todo o resto. O Delphi 2 apresentou novas características, como: objetos de
múltiplos registros, suporte à automação OLE, o tipo de dados variante, um suporte e uma
integração melhores com o Windows 95, o tipo de dados string longa e a herança visual de
formulários. O Delphi 3 incluiu a tecnologia de visão de código, o suporte à depuração
DLL, os modelos de componentes, o TeeChart, o Decision Cube, a tecnologia WebBroker,
os pacotes de componentes, os ActiveForms e uma grande integração com o COM. O
Delphi 4 incluiu o editor AppBrowser, novos recursos do Windows 98, melhor suporte a
OLE e COM, componentes de bancos de dados estendidos e muitas adições e melhorias nas
classes básicas da VCL. O Delphi 5 incluiu mais aperfeiçoamentos ao IDE, suporte
estendido a bancos de dados (com os conjuntos de dados específicos ADO e Interbase),
uma versão melhorada do MIDAS com suporte à Internet, a ferramenta de controle de
versão TeamSource, capacidades de conversão, o conceito de quadros e componentes
novos. O Delphi 6 adicionou todo esse suporte a recursos para o desenvolvimento
independente de plataforma com a CLX, uma biblioteca de tempo de execução estendida, o
mecanismo de bancos de dados dbExpress, serviços da Web, mais aperfeiçoamentos no
IDE e muitas classes e componentes. Por fim, chegamos ao Delphi 7. Essa versão tornou
mais robustas algumas dessas novas tecnologias com aperfeiçoamentos e correções (como
por exemplo, no SOAP e no DataSnap) além de oferecer suporte a tecnologias mais
recentes (como os temas do Windows XP e UDDI). Outra novidade é o fato de pela
primeira vez, a Borland fornecer um compilador que não vise o processador Intel, mas sim
a plataforma CIL do .NET.
Como podemos ver, o Delphi possui muitos recursos, e apesar de ser uma ótima
ferramenta e, até certo ponto, simples de usar, trata-se de um ambiente complexo de
programação que envolve muitos elementos. O leitor iniciante pode até ficar assustado com
tantas siglas e tantas tecnologias envolvidas. No entanto, no restante do texto, procuramos
fazer uma introdução às principais características da programação Delphi, focando
principalmente na orientação a objetos. Para maiores detalhes, consultar as referências no
final desse artigo.
3. Características
A linguagem Object Pascal possui muitas semelhanças com a linguagem Pascal.
Basicamente a estrutura básica da sintaxe não foi modificada. No entanto, há uma mudança
radical no paradigma da linguagem Object Pascal: A essa linguagem foram acrescentadas
características orientadas a objeto que mudam radicalmente o estilo de programação. Aqui
serão analisadas justamente essas novas características. Não será, portanto, discutido nesse
documento a parte básica da linguagem, vinda de Pascal.
Podemos citar as seguintes características como as mais importantes extensões que
foram acrescentadas à linguagem Pascal para obter a linguagem Object Pascal:
1. Definição de novos tipos por meio das palavras reservadas type e class.
2. Encapsulamento – É obtido usando os modificadores de acesso: public, protected e
private. Outro recurso poderoso que a linguagem apresenta para a obtenção de
encapsulamento são as propriedades.
3. Herança
4. Polimorfismo (Dynamic Binding) – o método a ser chamado é conhecido apenas em
tempo de execução, dependendo do tipo do objeto para o qual o método foi
chamado. Obtemos polimorfismo com o uso das palavras reservadas virtual (ou
dynamic) e override.
5. Métodos abstratos. Uma característica interessante de Object Pascal é que, ao
contrário da maioria das outras linguagens orientadas a objeto, é permitido criar
instâncias de classes com métodos abstratos (embora não seja permitido chamar tais
métodos, o que geraria uma exceção).
6. Exceções – O mecanismo de exceções de Object Pascal baseia-se em quatro
palavras reservadas: try, except, finally, raise.
7. Suporte a Multithreading.
4. Implementação
Aplicações em Delphi são compostas por um arquivo de projeto (.DPR), Forms e
Units. Um Form é uma janela na qual podem ser acrescentados componentes de interface
gráfica. Uma Unit é um arquivo do tipos .PAS, que guarda o código das Forms ou a
definição de tipos e funções.
4.1 Estrutura Geral de uma Unit
Uma Unit se divide em duas seções:
- Seção de Interface: aqui estão variáveis e definições de tipos. Essa é a parte visível da
Unit às outras Units. Tipos definidos aqui podem ser usados em qualquer outra Unit que a
utilize (por meio da cláusula ‘uses’).
- Seção de Implementação: Essa seção só é acessada de dentro da própria Unit. Nela estão
as definições (implementações) das funções e procedimentos declarados na seção de
interface.
*obs. Em Object Pascal duas ou mais classes podem ser definidas na mesma Unit. Como os
especificadores de acesso restringem o acesso apenas a código fora da Unit, se mais de uma
classe for definida na mesma Unit, uma poderá acessar livremente a implementação da
outra, independentemente dos modificadores de acesso.
4.2 A RTL e a biblioteca de classes do Delphi
Muitos recursos que os programadores Delphi têm à sua disposição vêm da RTL
(Run Time Library – Biblioteca de Tempo de Execução) da linguagem Object Pascal. Essa
biblioteca contém uma série de funções úteis agrupadas em Units.
O real poder da programação visual do Delphi, no entanto, está na sua enorme
biblioteca de classes. Nela encontramos centenas de classes, com milhares de métodos.
Essas classes podem ser usadas diretamente no código pelo programador ou
implicitamente, no projetista visual de formulários. Hoje, a biblioteca está dividida em
RTL, mencionada anteriormente, que contém classes e componentes não visuais, VCL
(Visual Component Library), que abriga os componentes visuais clássicos do Windows e a
CLX (Component Library for Cross-Platform), que contém componentes para várias
plataformas.
4.3 Um exemplo de programa em Delphi
O exemplo a seguir foi tirado do site http://www.marcocantu.com/md7/default.htm.
Esse é o site de um dos livros que foi usado como referência na construção desse artigo.
Nele você poderá encontrar todos os exemplos desse livro. Escolhemos esse exemplo, por
ser simples, mas ao mesmo tempo demonstrar, dentre outros, os conceitos de polimorfismo
e herança. O programa é composto basicamente de quatro arquivos: o arquivo de projeto
(.DPR), o arquivo de definição de tipos (.PAS) e os arquivos de definição do Form (.PAS e
.DFM). Só mostraremos dois deles que descrevem bem o que queremos mostrar. O
exemplo completo é fornecido em anexo.
*Vale ressaltar o fato mencionado anteriormente de que, ao chamar um método abstrato,
(nesse caso voice da classe TAnimal) ocorrerá uma exceção.
// Arquivo AbstractAnimals.dpr
program AbstractAnimals;
uses
Forms,
AnimF in 'AnimF.pas' {FormAnimals},
Anim in 'Anim.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormAnimals, FormAnimals);
Application.Run;
end.
// Arquivo Anim.pas
unit Anim;
interface
type
TAnimal = class
public
constructor Create;
function GetKind: string;
function Voice: string; virtual;
abstract;
private
Kind: string;
end;
TDog = class (TAnimal) // Herança
public
constructor Create;
function Voice: string; override;
function Eat: string; virtual;
end;
TCat = class (TAnimal) // Herança
public
constructor Create;
function Voice: string; override;
function Eat: string; virtual;
end;
implementation
uses
MMSystem;
constructor TAnimal.Create;
begin
Kind := 'An animal';
end;
function TAnimal.GetKind: string;
begin
GetKind := Kind;
end;
constructor TDog.Create;
begin
Kind := 'A dog';
end;
function TDog.Voice: string;
begin
Voice := 'Arf Arf';
PlaySound ('dog.wav', 0,
snd_Async);
end;
function TDog.Eat: string;
begin
Eat := 'A bone, please!';
end;
constructor TCat.Create;
begin
Kind := 'A cat';
end;
function TCat.Voice: string;
begin
Voice := 'Mieow';
PlaySound ('cat.wav', 0,
snd_Async);
end;
function TCat.Eat: string;
begin
Eat := 'A mouse, please!';
end;
end.
5. Utilização
Object Pascal é utilizado em dois ambientes de desenvolvimento, Delphi, para o
sistema operacional Windows e Kylix, para Unix e nestes ambientes é possível desenvolver
aplicações que necessitem da orientação a objetos.
No ambiente Delphi, por ser baseada em formulários, compilável, suportar acesso a
banco de dados e conter várias bibliotecas na plataforma Windows, que é a mais utilizada,
torna-se mais simples desenvolver aplicações que possuam interface gráfica com usuário
(GUI – Grafic User Interface). Dessa forma, é utilizada, dentre outras, em aplicações em
desktop, na web e principalmente em banco de dados.
6. ReferênciasBibliográficas
1. Sonnino, Bruno – Desenvolvendo Aplicações com Delphi 5, MAKRON Books, 2000.
2. Cantù Marco – Dominando o Delphi 7, MAKRON Books, 2003.
3. Wikipedia, the free encyclopedia(http://en.wikipedia.org/wiki/Main_Page)
4. www.borland.com
5. http://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/

Object pascal

  • 1.
    UNIVERSIDADE FEDERAL DEPERNAMBUCO CENTRO DE INFORMÁTICA PARADIGMAS DE LINGUAGENS COMPUTACIONAIS BRUNO EDSON MARTINS DE ALBUQUERQUE FILHO MARCELO RODRIGUES NUNES MENDES PABLO DE SANTANA BARBOSA OBJECT PASCAL Trabalho apresentado sobre a história e características da linguagem Object Pascal aos professores Hermano Perrelli e Luis Menezes. Recife, 20 de maio de 2004.
  • 2.
    OBJECT PASCAL 1. Introdução Naspáginas a seguir descreveremos resumidamente a linguagem Object Pascal. Não poderíamos, no entanto, deixar de falar um pouco sobre o ambiente de desenvolvimento integrado (IDE) Delphi. Como veremos no restante deste artigo, há uma relação muito estreita entre essa linguagem e o IDE. O nosso objetivo aqui é dar uma visão geral dessa linguagem, procurando dar ênfase nas origens dela. O artigo começa com a descrição da origem da linguagem Object Pascal (e do Delphi). A seguir veremos características que tornam essa linguagem tão diferente da conhecida linguagem estruturada Pascal. Depois falaremos sobre a especificação e a utilização da Object Pascal. 2. Origem 2.1 Pascal e Object Pascal Pascal foi definida em 1970 pelo Prof. Niklaus Wirth do Swiss Federal Institute of Technology (Zurich), como extensão do ALGOL (linguagem de programação voltada para computação científica). Em um congresso em Zurich, um comitê internacional designou o ALGOL como uma linguagem independente de plataforma. Isto deu mais liberdade para as características que eles poderiam colocar na linguagem, mas também tornou mais difícil a escrita de compiladores para ela. A carência de compiladores em muitas plataformas, combinada com sua carência de ponteiros e muitos tipos de dados básicos tais como caracteres, fez com que ALGOL não fosse amplamente aceito, o que fez com que essa linguagem acabasse quase totalmente abandonada, exceto como linguagem para descrição de algoritmos. A especificação formal de Pascal foi publicada em 1971. O nome da linguagem foi dado em homenagem ao filósofo e matemático francês Blaise Pascal que inventou uma máquina de calcular mecânica. Pascal é bastante orientado a dados, dando ao programador a capacidade de definir tipos de dados personalizados. Com esta liberdade veio a rígida checagem de tipos, que garantiu que tipos não se misturariam. Pascal pretendia ser uma linguagem educacional, e foi amplamente adotada como tal. Pascal é de escrita mais livre, diferente de FORTRAN, assim os estudantes não tinham que se preocupar com formatação. Além disso, Pascal se parece muito com uma linguagem natural, tornando muito fácil o entendimento do código escrito com ele. Object Pascal é a extensão orientada a objetos da linguagem Pascal que foi desenvolvida pela Apple em parceria com Wirth, inventor de Pascal. Ela descende de uma tentativa anterior de produzir uma versão orientada a objetos de Pascal, chamada ClasCal, que foi inicialmente utilizada nos computadores Lisa da Apple. Na realidade existiram poucas modificações na sintaxe de Object Pascal em relação a Pascal. Um novo tipo de dados foi adicionado, o objeto. Em adição, É possível especificar uma lista de procedimentos e funções, referenciados como métodos, para um tipo de objeto particular. Estes métodos definem as ações que aquele objeto deste tipo pode realizar. Como adiantamos na introdução essa linguagem tem uma estreita relação com o IDE Delphi,
  • 3.
    entenderemos como issoocorre na próximo seção onde descreveremos de maneira breve a história da evolução do Turbo Pascal ao Delphi. 2.2 Borland Pascal Com o lançamento, em novembro de 1983, do Turbo Pascal 1.0, a Borland iniciou sua jornada no mundo das Ferramentas e ambientes de desenvolvimento. Na criação do Turbo Pascal a Borland licenciou um núcleo de compilador, desenvolvido por Anders Hejlsberg, mais rápido e barato que os existentes na época. Turbo Pascal introduziu um ambiente de desenvolvimento integrado (IDE), onde era possível editar o código, executar o compilador, observar os erros e voltar para as linhas que contém esses erros. O compilador Turbo Pascal foi um dos mais vendidos em todos tempos, o que tornou a linguagem popular em PC’s. 2.3 Delphi Delphi foi uma proposta da Borland para uma nova geração de ambiente de desenvolvimento visual para Windows, baseado na linguem de programação Object Pascal. Após o desenvolvimento de Turbo Pascal 1.0, Anders se tornou o arquiteto de todas as versões do compilador Turbo Pascal e das primeiras três versões de Delphi. Como arquiteto chefe da Borland, Hejlsberg secretamente tornou Turbo Pascal numa aplicação de desenvolvimento de linguagem orientada a objeto, completa e com um ambiente realmente visual com suporte para acesso a banco de dados, assim se originou o Delphi. História do Delphi Tudo começou com a primeira versão do Delphi. Na época, a estratégia baseada em formulários e orientada a objetos, o compilador extremamente rápido, o ótimo suporte a banco de dados, a íntima integração com a programação Windows e a tecnologia de componentes atraíram a atenção da comunidade de desenvolvedores de software. O elemento, mais importante desse produto, no entanto, era a sua linguagem, Object Pascal, a fundação de todo o resto. O Delphi 2 apresentou novas características, como: objetos de múltiplos registros, suporte à automação OLE, o tipo de dados variante, um suporte e uma integração melhores com o Windows 95, o tipo de dados string longa e a herança visual de formulários. O Delphi 3 incluiu a tecnologia de visão de código, o suporte à depuração DLL, os modelos de componentes, o TeeChart, o Decision Cube, a tecnologia WebBroker, os pacotes de componentes, os ActiveForms e uma grande integração com o COM. O Delphi 4 incluiu o editor AppBrowser, novos recursos do Windows 98, melhor suporte a OLE e COM, componentes de bancos de dados estendidos e muitas adições e melhorias nas classes básicas da VCL. O Delphi 5 incluiu mais aperfeiçoamentos ao IDE, suporte estendido a bancos de dados (com os conjuntos de dados específicos ADO e Interbase), uma versão melhorada do MIDAS com suporte à Internet, a ferramenta de controle de versão TeamSource, capacidades de conversão, o conceito de quadros e componentes novos. O Delphi 6 adicionou todo esse suporte a recursos para o desenvolvimento independente de plataforma com a CLX, uma biblioteca de tempo de execução estendida, o mecanismo de bancos de dados dbExpress, serviços da Web, mais aperfeiçoamentos no IDE e muitas classes e componentes. Por fim, chegamos ao Delphi 7. Essa versão tornou
  • 4.
    mais robustas algumasdessas novas tecnologias com aperfeiçoamentos e correções (como por exemplo, no SOAP e no DataSnap) além de oferecer suporte a tecnologias mais recentes (como os temas do Windows XP e UDDI). Outra novidade é o fato de pela primeira vez, a Borland fornecer um compilador que não vise o processador Intel, mas sim a plataforma CIL do .NET. Como podemos ver, o Delphi possui muitos recursos, e apesar de ser uma ótima ferramenta e, até certo ponto, simples de usar, trata-se de um ambiente complexo de programação que envolve muitos elementos. O leitor iniciante pode até ficar assustado com tantas siglas e tantas tecnologias envolvidas. No entanto, no restante do texto, procuramos fazer uma introdução às principais características da programação Delphi, focando principalmente na orientação a objetos. Para maiores detalhes, consultar as referências no final desse artigo. 3. Características A linguagem Object Pascal possui muitas semelhanças com a linguagem Pascal. Basicamente a estrutura básica da sintaxe não foi modificada. No entanto, há uma mudança radical no paradigma da linguagem Object Pascal: A essa linguagem foram acrescentadas características orientadas a objeto que mudam radicalmente o estilo de programação. Aqui serão analisadas justamente essas novas características. Não será, portanto, discutido nesse documento a parte básica da linguagem, vinda de Pascal. Podemos citar as seguintes características como as mais importantes extensões que foram acrescentadas à linguagem Pascal para obter a linguagem Object Pascal: 1. Definição de novos tipos por meio das palavras reservadas type e class. 2. Encapsulamento – É obtido usando os modificadores de acesso: public, protected e private. Outro recurso poderoso que a linguagem apresenta para a obtenção de encapsulamento são as propriedades. 3. Herança 4. Polimorfismo (Dynamic Binding) – o método a ser chamado é conhecido apenas em tempo de execução, dependendo do tipo do objeto para o qual o método foi chamado. Obtemos polimorfismo com o uso das palavras reservadas virtual (ou dynamic) e override. 5. Métodos abstratos. Uma característica interessante de Object Pascal é que, ao contrário da maioria das outras linguagens orientadas a objeto, é permitido criar instâncias de classes com métodos abstratos (embora não seja permitido chamar tais métodos, o que geraria uma exceção). 6. Exceções – O mecanismo de exceções de Object Pascal baseia-se em quatro palavras reservadas: try, except, finally, raise. 7. Suporte a Multithreading. 4. Implementação Aplicações em Delphi são compostas por um arquivo de projeto (.DPR), Forms e Units. Um Form é uma janela na qual podem ser acrescentados componentes de interface gráfica. Uma Unit é um arquivo do tipos .PAS, que guarda o código das Forms ou a definição de tipos e funções.
  • 5.
    4.1 Estrutura Geralde uma Unit Uma Unit se divide em duas seções: - Seção de Interface: aqui estão variáveis e definições de tipos. Essa é a parte visível da Unit às outras Units. Tipos definidos aqui podem ser usados em qualquer outra Unit que a utilize (por meio da cláusula ‘uses’). - Seção de Implementação: Essa seção só é acessada de dentro da própria Unit. Nela estão as definições (implementações) das funções e procedimentos declarados na seção de interface. *obs. Em Object Pascal duas ou mais classes podem ser definidas na mesma Unit. Como os especificadores de acesso restringem o acesso apenas a código fora da Unit, se mais de uma classe for definida na mesma Unit, uma poderá acessar livremente a implementação da outra, independentemente dos modificadores de acesso. 4.2 A RTL e a biblioteca de classes do Delphi Muitos recursos que os programadores Delphi têm à sua disposição vêm da RTL (Run Time Library – Biblioteca de Tempo de Execução) da linguagem Object Pascal. Essa biblioteca contém uma série de funções úteis agrupadas em Units. O real poder da programação visual do Delphi, no entanto, está na sua enorme biblioteca de classes. Nela encontramos centenas de classes, com milhares de métodos. Essas classes podem ser usadas diretamente no código pelo programador ou implicitamente, no projetista visual de formulários. Hoje, a biblioteca está dividida em RTL, mencionada anteriormente, que contém classes e componentes não visuais, VCL (Visual Component Library), que abriga os componentes visuais clássicos do Windows e a CLX (Component Library for Cross-Platform), que contém componentes para várias plataformas. 4.3 Um exemplo de programa em Delphi O exemplo a seguir foi tirado do site http://www.marcocantu.com/md7/default.htm. Esse é o site de um dos livros que foi usado como referência na construção desse artigo. Nele você poderá encontrar todos os exemplos desse livro. Escolhemos esse exemplo, por ser simples, mas ao mesmo tempo demonstrar, dentre outros, os conceitos de polimorfismo e herança. O programa é composto basicamente de quatro arquivos: o arquivo de projeto (.DPR), o arquivo de definição de tipos (.PAS) e os arquivos de definição do Form (.PAS e .DFM). Só mostraremos dois deles que descrevem bem o que queremos mostrar. O exemplo completo é fornecido em anexo.
  • 6.
    *Vale ressaltar ofato mencionado anteriormente de que, ao chamar um método abstrato, (nesse caso voice da classe TAnimal) ocorrerá uma exceção. // Arquivo AbstractAnimals.dpr program AbstractAnimals; uses Forms, AnimF in 'AnimF.pas' {FormAnimals}, Anim in 'Anim.pas'; {$R *.res} begin Application.Initialize; Application.CreateForm(TFormAnimals, FormAnimals); Application.Run; end. // Arquivo Anim.pas unit Anim; interface type TAnimal = class public constructor Create; function GetKind: string; function Voice: string; virtual; abstract; private Kind: string; end; TDog = class (TAnimal) // Herança public constructor Create; function Voice: string; override; function Eat: string; virtual; end; TCat = class (TAnimal) // Herança public constructor Create; function Voice: string; override; function Eat: string; virtual; end; implementation uses MMSystem; constructor TAnimal.Create; begin Kind := 'An animal'; end; function TAnimal.GetKind: string; begin GetKind := Kind; end; constructor TDog.Create; begin Kind := 'A dog'; end; function TDog.Voice: string; begin Voice := 'Arf Arf'; PlaySound ('dog.wav', 0, snd_Async); end; function TDog.Eat: string; begin Eat := 'A bone, please!'; end; constructor TCat.Create; begin Kind := 'A cat'; end; function TCat.Voice: string; begin Voice := 'Mieow'; PlaySound ('cat.wav', 0, snd_Async); end; function TCat.Eat: string; begin Eat := 'A mouse, please!'; end; end.
  • 7.
    5. Utilização Object Pascalé utilizado em dois ambientes de desenvolvimento, Delphi, para o sistema operacional Windows e Kylix, para Unix e nestes ambientes é possível desenvolver aplicações que necessitem da orientação a objetos. No ambiente Delphi, por ser baseada em formulários, compilável, suportar acesso a banco de dados e conter várias bibliotecas na plataforma Windows, que é a mais utilizada, torna-se mais simples desenvolver aplicações que possuam interface gráfica com usuário (GUI – Grafic User Interface). Dessa forma, é utilizada, dentre outras, em aplicações em desktop, na web e principalmente em banco de dados. 6. ReferênciasBibliográficas 1. Sonnino, Bruno – Desenvolvendo Aplicações com Delphi 5, MAKRON Books, 2000. 2. Cantù Marco – Dominando o Delphi 7, MAKRON Books, 2003. 3. Wikipedia, the free encyclopedia(http://en.wikipedia.org/wiki/Main_Page) 4. www.borland.com 5. http://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/