Buscar

Delphi1 Prof. Evandro César Freiberger

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem Comercial – Parte01 
 
Indice 
 
AMBIENTE INTEGRADO DE DESENVOLVIMENTO DO DELPHI ( IDE ) .......................................................3 
ELEMENTOS DO AMBIENTE .............................................................................................................................................3 
BARRA DE BOTÕES DE ATALHO ......................................................................................................................................5 
INSPETOR DE OBJETOS ....................................................................................................................................................6 
PERSONALIZANDO A BARRA DE BOTÕES DE ATALHO .....................................................................................................6 
MANIPULANDO UM PROJETO EM DELPHI.........................................................................................................8 
ARQUIVOS DE UM PROJETO DELPHI ................................................................................................................................8 
ARQUIVOS CRIADOS PELO COMPILADOR E LINKEDITOR .................................................................................................8 
CRIANDO UM NOVO PROJETO ..........................................................................................................................................8 
SALVANDO UM PROJETO NOVO EM DELPHI .....................................................................................................................8 
SALVANDO UM PROJETO COM OUTRO NOME .................................................................................................................10 
SALVANDO UM ARQUIVO ( UNIT, FORM) COM OUTRO NOME........................................................................................10 
SALVANDO UM PROJETO EM UM DISQUETE PARA TRANSPORTE....................................................................................10 
ESTRUTURA DE UMA UNIT.....................................................................................................................................11 
CABEÇALHO DE UMA UNIT ...........................................................................................................................................11 
CLÁUSULA INTERFACE..................................................................................................................................................11 
CLÁUSULA IMPLEMENTATION.......................................................................................................................................12 
CLÁUSULA INITIALIZATION...........................................................................................................................................13 
CLÁUSULA FINALIZATION.............................................................................................................................................13 
EXEMPLO DE UMA UNIT ................................................................................................................................................13 
OBJECT PASCAL.........................................................................................................................................................15 
PALAVRAS RESERVADAS ..............................................................................................................................................15 
EXPRESSÕES .................................................................................................................................................................15 
IDENTIFICADORES .........................................................................................................................................................16 
CONSTANTES ................................................................................................................................................................16 
VARIÁVEIS....................................................................................................................................................................16 
TIPOS DE DADOS DO OBJECT PASCAL............................................................................................................................17 
Tipos de Dados Numéricos Inteiros.........................................................................................................................17 
Tipos de Dados Numéricos Reais ............................................................................................................................17 
Tipos de Dados Lógicos...........................................................................................................................................17 
Tipos de Dados Caracter .........................................................................................................................................17 
Tipos Ordinais .........................................................................................................................................................18 
Tipo Variant .............................................................................................................................................................18 
Tipo Enumerado.......................................................................................................................................................18 
Tipo SubArange .......................................................................................................................................................19 
Tipo Conjuntos.........................................................................................................................................................20 
OPERADORES ................................................................................................................................................................20 
Operador de Atribuição...........................................................................................................................................20 
Operadores Aritméticos ...........................................................................................................................................21 
Operadores Lógicos.................................................................................................................................................21 
Operadores de Conjunto..........................................................................................................................................21 
Operadores de Classe ..............................................................................................................................................21 
TIPOS DE DADOS HOMEGÊNEOS ....................................................................................................................................21 
Array Unidimensional..............................................................................................................................................21 
Array Multidimensional ...........................................................................................................................................22 
TIPOS DE DADOS HETEROGÊNEOS .................................................................................................................................22 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 2 
Record ......................................................................................................................................................................22 
ESTRUTURAS DE CONTROLE EM OBJECT PASCAL .........................................................................................................24Comentários.............................................................................................................................................................24 
Bloco De Comandos “Begin... End” .......................................................................................................................24 
Estrutura Condicional Simples “If-Then”...............................................................................................................24 
Estrutura Condicional Composta “If-Then-Else” ..................................................................................................25 
Estrutura Condicional “Case-Of”...........................................................................................................................25 
Estrutura de Repetição “For-To, For-Downto”......................................................................................................26 
Estrutura de Repetição “While-Do”........................................................................................................................26 
Estrutura “Repeat-Untill” .......................................................................................................................................27 
SUBPROGRAMAS...........................................................................................................................................................27 
Funções ....................................................................................................................................................................27 
Procedimentos..........................................................................................................................................................27 
Passagem De Parâmetros........................................................................................................................................28 
PROGRAMAÇÃO ORIENTADA A OBJETOS COM DELPHI .............................................................................29 
O QUE É POO?..............................................................................................................................................................29 
CLASSES .......................................................................................................................................................................29 
Exemplo de definição de classe ...............................................................................................................................29 
ENCAPSULAMENTO .......................................................................................................................................................32 
Tipos de Encapsulamento ........................................................................................................................................32 
Atributo de Visibilidade Private...............................................................................................................................33 
Atributo de Visibilidade Protected...........................................................................................................................33 
Atributo de Visibilidade Public................................................................................................................................33 
Atributo de Visibilidade Published ..........................................................................................................................33 
HERANÇA .....................................................................................................................................................................34 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 3 
Ambiente Integrado de Desenvolvimento do Delphi ( IDE ) 
 
Elementos do Ambiente 
 
Menu principal / Barra de Botões de Atalho / Barra de Componentes 
 
 
 
Formulário ( Construção da Interface ) Imagem Gráfica 
 
 
 
Codificação da imagem gráfica ( arquivo DFM ) – acesso 
através do botão direito do mouse sobre o formulário, opção 
View as Text. Para voltar, botão direito no texto, opção View 
as Form. 
 
 Inspetor de Objetos (Configuração 
de propriedades e eventos dos 
componentes do formulário) 
 
 
 
Configuração de propriedades em 
tempo de projeto. 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 4 
 
 
 
Arquivo que contém o código fonte associado ao formulário – declara uma nova classe herdando as características 
da classe Tform. Irá conter todos os procedimentos manipuladores dos eventos associados aos componentes do 
formulário em questão. Para acessa-lo, selecione o formulário e pressione F12, para retornar, novamente F12. 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 5 
Tempo de Projeto 
 
 
Tempo de Execução 
 
 
 
 
Barra de Botões de Atalho 
 
 
 
Primeira linha de botões da esquerda para a direita 
 
− New – novo objeto ( unit, formulário, etc) 
− Abrir arquivos ( *.pas, *.dpr, *.dpk,) 
− Salvar arquivo selecionado 
− Salvar todos os arquivos do projeto 
− Abrir projeto ( *.dpr, *.bpg ) 
− Adicionar um arquivo já existente ao projeto 
− Remover um arquivo do projeto 
− Ajuda do Delphi 
 Segunda Linha 
 
− Lista de Unit que pertencem ao 
projeto em questão 
− Lista de formulários que 
pertencem ao formulário 
− Alternar entre formulário e Unit 
− Novo formulário 
− Executar aplicação 
− Executar passo a passo, 
entrando em sub-rotinas 
− Executar passo a passo, não 
entrando em sub-rotinas 
 
 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 6 
Inspetor de Objetos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Personalizando a Barra de Botões de Atalho 
 
Para personalizar a barra de botões dê um clique com o botão direito do mouse sobre a barra de botões e 
escolha a opção Custumize, será apresentada a tela abaixo que possui três guias, conforme figura. 
 
 
 
Nessa guia você poderá escolher quais barras de botões serão 
exibidas, assinalando os check’s 
 
 
 
Nessa guia você poderá escolher quais botões irão 
fazer parte da barra de botões. Para adicionar, 
selecione a categoria e em seguida escolha o botão e 
arraste-o até o local desejado na barra de botões. Para 
remover um botão existente na barra, arraste-o no 
sentido da barra para a tela de configuração. 
 
Na última guia, Options você poderá optar por exibir a legenda dos botões quando você passa com o mouse sobre os 
botões e também se deseja exibir as teclas de atalhos que existem para tais botões. 
Página de 
Propriedades 
Página de 
 Eventos 
Propriedades Valores 
 
Eventos 
Seletor de Objetos 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 7 
Project Manager 
 
 
 
 
Acesse através do menu View / Project Manager, nele 
você poderá incluir, remover elementos do projeto ( 
unit’s, form’s ) e selecionar o projeto que deseja 
trabalhar, caso esteja trabalhando com mais deum 
projeto ao mesmo tempo. 
 
 
Browser 
 
 
 
 
Acesse através do menu View / 
Browser, porém só terá acesso 
depois de ter compilado pelo 
menos uma vez o projeto. 
Nessa tela podemos visualizar a 
hierarquia de objetos do projeto 
em questão. 
 
Arquivo DPR 
 
 
 
Nesse arquivo são referenciados as 
unidades e formulários pertencentes ao 
projeto em questão. 
 
Para as unidades que não possuem 
formulário associado somente será 
exibido o nome da unidade e o arquivo 
que foi armazenada. 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 8 
 
Manipulando um Projeto em Delphi 
 
Arquivos de um Projeto Delphi 
 
Arquivo de Projeto ( .DPR ) - é usado para manter informações sobre formulários e unidades que compõem o 
projeto. Possui também código de inicialização do projeto. 
 
Arquivo de Unidade ( .PAS ) - é o código fonte do projeto. As unidades podem estar associadas a formulários 
ou apenas armazenar funções e procedimentos usados na aplicação. 
 
Arquivo de Formulário ( .DFM ) - é um arquivo binário criado pelo Delphi para armazenar informações 
sobre cada formulário. Cada arquivo de formulário possui um arquivo de unidade correspondente. 
 
Arquivo de Opções de Projeto ( .DOF e .CFG ) - armazenam ajustes de opções de um projeto (configurações 
de compilação e linkedição ). 
 
Arquivos de Recursos ( .RES ) - são arquivos binários que contém ícones, imagens e tabelas de strings da 
aplicação. Normalmente o arquivo de Recurso do Projeto, contém apenas o ícone da aplicação. Não é 
aconselhável alterar esse arquivo, pois o Delphi altera constantemente durante o projeto. 
 
Arquivos de Backup ( .~DP, .~DF, .~PA ) são arquivos de Backup dos arquivos de projeto, formulário e 
unidades respectivamente. 
 
Arquivos Criados pelo Compilador e Linkeditor 
 
Arquivos de Objetos de Unidade ( .DCU ) - é a versão Compilada do Arquivo ( .PAS ). 
 
Arquivos de Biblioteca de Ligação Dinâmica ( .DLL ) - contém código executável, mas precisa ser chamado 
por um arquivo executável ( .EXE ). 
 
Arquivos Executáveis - é a aplicação propriamente dita. É um arquivo independente e que será instalado no 
local de uso da aplicação. Caso o arquivo executável fizer uso de DLLs ou OCXs será necessário levar esses 
arquivos junto com o executável. 
 
Criando um novo projeto 
 
Quando iniciamos o Delphi, um novo projeto é sugerido, dessa forma podemos a partir desse iniciarmos 
a construção do novo projeto. Outra forma é acessar o menu File / New Aplication. 
 
Salvando um projeto novo em Delphi 
 
Como já vimos, um projeto desenvolvido em Delphi possui vários arquivos, para salvarmos pela 
primeira vez um projeto em Delphi devemos acessar a opção Save All, através do menu File ou através do botão 
, em seguida será apresentada a seguinte tela: 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 9 
 
 
1. Crie uma pasta para armazenar o novo projeto. Evite criar pastas para projetos dentro das pastas 
de instalação do Delphi. 
2. Selecione a nova pasta criada, através da caixa Salvar em: 
3. Configure o nome do arquivo que irá conter a Unit. É bom ter um padrão de nomes para a unit, 
exemplo: UcadastroProduto, Unit_Relatório_Clientes, etc. 
4. Clique no botão Salvar, e será apresenta a tela a seguir: 
 
 
 
 
1. Nessa tela iremos salvar o arquivo de projeto (.dpr), é conveniente manter a mesma pasta onde 
foi salva a unit ( tela anterior ). 
2. Configure o nome do projeto, na caixa Nome do arquivo. Da mesma forma é conveniente manter 
um padrão de nomenclatura para os arquivos de projeto, ex: ProjetoControleEstoque, 
PcontroleFinanceiro, etc. 
3. Por fim pressione o botão Salvar. Com isso o novo projeto foi salvo. 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 10 
Obs: É recomendado que o projeto seja salvo antes mesmo que o desenvolvimento 
propriamente dito seja iniciado, e que a cada novo arquivo que for inserido no projeto, este seja 
salvo novamente. 
 
 
Salvando um Projeto com outro nome 
 
Acesse o menu File e opção Save Project As..., em seguida informe um nome diferente para o projeto, 
veja que você poderá mudar também a localização do arquivo de projeto, escolhendo uma nova localização na 
caixa Salvar Em. 
 
Obs: esse procedimento somente salvará os arquivos ( DPR, RES, CFG, DOF) com nome e/ou 
localização diferente, os formulário e unit’s continuarão iguais. 
 
Salvando um Arquivo ( Unit, Form) com outro nome 
 
Selecione o arquivo desejado e em seguida acesse a opção de menu File/ Salve As... e informe o novo 
nome e ou a nova localização do arquivo em questão. 
 
Salvando um Projeto em um Disquete para Transporte 
 
Pelo fato de existirem vários arquivos que compõem um projeto, não vale a pena usar a opção Save 
As..., visto que esse procedimento deverá ser repetido para o arquivo de projeto e todos os formulário e unidades 
que compõem o projeto. Com isso o caminho menos trabalhoso e seguro é copiar a pasta onde o projeto foi 
salvo, usando o Windows Explorer. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 11 
Estrutura de uma Unit 
 
Units são os arquivos que o Delphi usa para implementar as classes de objetos, procedimentos e 
funções. Uma Unit pode ou não estar associada a um formulário, sendo que um formulário sempre terá uma Unit 
associada. 
 
Estrutura: 
 
Unit <nome da unit>; 
Interface 
 Uses <lista de unidades referenciadas> 
 Const <lista de constantes declaradas> 
 Type <lista de tipos definidos pelo programador> 
 Var <lista de variáveis declaradas> 
 Procedure 
 Function 
Implementation 
 Uses <lista de unidades referenciadas> 
 Const <lista de constantes declaradas> 
 Type <lista de tipos definidos pelo programador> 
 Var <lista de variáveis declaradas> 
 Procedure 
 Function 
Initialization 
 <Comandos> 
Finalization 
 <Comandos> 
End. 
 
Cabeçalho de uma Unit 
 
Define o nome da Unit, sendo que este deverá ser único. O nome de uma Unit poderá ter qualquer 
tamanho, porém o Delphi considera apenas os 63 caracteres. Não é necessário que o nome da Unit seja igual ao 
nome do arquivo (PAS) que a contém, mas é uma boa técnica usar esses nomes iguais, facilitando o uso dessas 
Units. 
 
Exemplo: 
 
unit unit_ola; 
Cláusula Interface 
 
Nesta área serão especificadas todas as Units necessárias para a Unit em questão e também tudo que 
poderá ser usado por outras Units, ou seja, todas as constantes, tipos, variáveis, procedimentos e funções 
definidas nesta área serão visíveis por unidades que usarem esta Unit. 
 
Exemplo: 
 
 
 
 
interface 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 12 
uses 
 SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, 
 Forms, Dialogs, StdCtrls; 
type 
 TForm_ola = class(TForm) 
 BotaoOla: TButton; 
 procedure BotaoOlaClick(Sender: TObject); 
 procedure FormClick(Sender: TObject);procedure FormResize(Sender: TObject); 
 private 
 { Private declarations } 
 public 
 { Public declarations } 
 end; 
 
var 
 Form_ola: TForm_ola; 
 
Cláusula Implementation 
 
Esta área da Unit é composta pelo código que implementa as ações da Unit ( funções e procedimentos ). 
A área de implementação pode conter uma cláusula Uses. É sempre melhor usar esta técnica para as Units que 
você desenvolver, sendo que dessa forma somente o código da parte de implementação que visualizara as Units 
incluídas na cláusula Uses. 
 
Exemplo: 
 
implementation 
 
{$R *.DFM} 
 
procedure TForm_ola.BotaoOlaClick(Sender: TObject); 
begin 
 ShowMessage ('Olá, pessoal'); 
 BotaoOla.Caption := 'Diga Olá Novamente'; 
end; 
 
procedure TForm_ola.FormClick(Sender: TObject); 
begin 
 ShowMessageDlg ('Você deu um clique fora do botão’); 
end; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 13 
Cláusula Initialization 
 
Serve para inicializar quaisquer variáveis ou estrutura de dados, sendo que a inicialização será feita 
apenas um única vez: quando a Unit for acessada pela primeira vez. 
 
Exemplo: 
 
Initialization 
 DataAtual := date; 
 HoraAtual := time; 
end; 
Cláusula Finalization 
 
Será a última tarefa executada antes de encerrar uma Unit. Sua aplicação normalmente será emprega 
nos casos de devem ser liberados recursos antes alocados. 
 
Exemplo: 
 
Finalization 
 MeuObejto.Free; 
end; 
 
Exemplo de uma Unit 
 
unit unit_ola; 
interface 
uses 
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; 
type 
 TForm_ola = class(TForm) 
 BotaoOla: TButton; 
 procedure BotaoOlaClick(Sender: TObject); 
 procedure FormClick(Sender: TObject); 
 procedure FormResize(Sender: TObject); 
 private 
 { Private declarations } 
 public 
 { Public declarations } 
 end; 
 
var 
 Form_ola: TForm_ola; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 14 
implementation 
 
{$R *.DFM} 
 
procedure TForm_ola.BotaoOlaClick(Sender: TObject); 
begin 
 MessageDlg ('Olá, pessoal', mtInformation, [mbOK], 0); 
 BotaoOla.Caption := 'Diga Olá Novamente'; 
end; 
 
 
 
procedure TForm_ola.FormClick(Sender: TObject); 
begin 
 MessageDlg ('Você deu um clique fora do botão', 
 mtWarning, [mbOK], 0); 
end; 
end. 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 15 
Object Pascal 
 
É uma linguagem Orientada a Objetos híbrida por possuir características de programação não só visual 
mas também escrita. Ela força a você executar passos lógicos o que torna mais fácil o desenvolvimento no 
ambiente Windows de aplicações livres ou que utilizam banco de dados do tipo Cliente/Servidor, trabalha com o 
uso de ponteiros para a alocação de memória e todo o poder de um código totalmente compilável. Além disso 
possibilita a criação e reutilização (vantagem de re-uso tão sonhado com a Orientação a Objetos) de objetos e 
bibliotecas dinâmicas (Dynamic Link Libraries - DLL). 
Object Pascal contém quase todos os conceitos da orientação a objetos incluindo encapsulamento, 
herança e polimorfismo. É capaz de suportar desde as facilidades do desenvolvimento visual até o 
desenvolvimento em um baixo nível de programação (acesso as APIs do Windows e programação com código 
Assembly). 
Como se pode perceber a base de toda a programação Delphi é a linguagem Object Pascal, então neste 
capítulo trataremos de alguns aspectos deste tipo de programação. 
 
 
Palavras Reservadas 
 
Palavras-chave ou palavras reservadas são aquelas usadas pela sintaxe da linguagem com significado 
específico e, portanto, não podem ser usadas com outra finalidade. O Object Pascal se utiliza das seguintes 
palavras reservadas: 
 
And Exports Library Set 
Array File Mod Shl 
As Finnaly Nil Shr 
Asm For Not String 
Begin Function Object Then 
Case Goto Of To 
Class If On Try 
Const Implementation Or Type 
Constructor In Packed Unit 
Destructor Inherited Procedure Until 
Div Initialization Program Uses 
Do Inline Property Var 
Downto Interface Raise While 
Else Is Record With 
End Label Repeat Xor 
Except 
 
Expressões 
As expressões em Object Pascal (como em qualquer linguagem) são formadas por operadores e 
operandos; os operadores são divididos em quatro categorias básicas: 
 
Unários @, Not 
Multiplicativos >, /, div, mod, and, shl, shr, as 
Adicionais +, -, or, xor 
Relacionais =, < >, <, >, < =, > =, in, is 
 
As expressões obedecem as regras básicas de lógica para a precedência da execução das operações. 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 16 
Identificadores 
 
Identificadores são usados para definir nomes de constantes, tipos, variáveis, procedimentos, funções, 
unidades, programas e campos de registros. Algumas regras devem ser observadas para a utilização de 
identificados em Object Pascal: 
• Não existe limite de caracteres para o nome de um identificador mas apenas os 63 primeiros caracteres 
são significantes (não podendo ser idêntico ao nome das palavras reservadas). 
• O nome de um identificador deve ser iniciado por Letras ou pelo carácter underscore ( _ ). O resto é 
formado por Letras, Dígitos, carácter underscore. 
• Não é permitido a utilização de espaços para a formação do nome. 
• O Object Pascal não faz distinção entre letras maiúsculas e minúsculas nos nomes de identificadores. 
 
Constantes 
 
Uma constante é um identificador com valor fixo. Um bloco de declarações constante possui a seguinte 
expressão: 
 
const <Identificador> = <valor>; 
 
Exemplos: 
 
const 
Min = 0; 
Max = 100; 
MensOla = 'Instrução inválida'; 
 
Variáveis 
 
Para que o Delphi possa usar nossas variáveis, devemos primeiro declará-las, isto é, informar o nome e 
o tipo desejado. Um bloco de declarações de variáveis possui a seguinte expressão: 
 
var <lista de Identificadores> : <tipo>; 
 
Exemplo: 
 
Idade, X : integer; 
Salário : Real; 
 
Note que a declaração do tipo de uma variável, em princípio não lhe atribui valores. Um erro comum em 
programação é tentarmos ler valores de variáveis não inicializadas, ou às quais ainda não se atribuiu valor. 
A seguir é apresentada uma lista dos tipos de variáveis mais comuns do Object Pascal com suas faixas 
de valores e o espaço ocupado em memória: 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 17 
Tipos de dados do Object Pascal 
Tipos de Dados Numéricos Inteiros 
 
Tipo Faixa de Valores Nº Bytes 
Integer -2.147.483.648 a 2.147.483.647 4 
Cardial 0 a 4.294.967.295 4 
ShortInt -128 a 127 1 
SmallInt -32.768 a 32.767 2 
LongInt -2.147.483.648 a 2.147.483.647 4 
Int64 -263 a 263 -1 8 
Byte 0 a 255 1 
Word 0 a 65.535 2 
LongWord 0 a 4.294.967.295 4 
 
Tipos de Dados Numéricos Reais 
 
Tipo Faixa de Valores Dígitos Significativos Nº Bytes 
Real48 2.9 x 10–39 .. 1.7 x 1038 11–12 6 
Single 1.5 x 10–45 .. 3.4 x 1038 7–8 4 
Double 5.0 x 10–324 .. 1.7 x 10308 15–16 8 
Extended 3.6 x 10–4951 .. 1.1 x 10493219–20 10 
Comp –263+1 .. 263 –1 19–20 8 
Currency –922337203685477.5808.. 
922337203685477.5807 
19–20 8 
 
Tipos de Dados Lógicos 
 
Tipo Faixa de Valores Nº Bytes 
Boolean True ou False ( 1 ou 0 ) 1 
ByteBool True ou False ( 1 ou 0 ) 1 
WordBool True ou False ( 1 ou 0 ) 2 
LongBool True ou False ( 1 ou 0 ) 4 
 
Obs: o tipo padrão para representar valores lógicos é o tipo Boolean, ou outros são basicamente para 
atender compatibilidades com outras linguagens e o ambiente Windows. 
Tipos de Dados Caracter 
 
Tipo Faixa de Valores Nº Bytes 
Char 1 caracter ASCII 1 
AnsiChar 1 caracter ASCII 1 
WideChar 1 caracter Unicode 1 
ShortString 255 characters 2 a 256 
AnsiString ~231 characters 4 a 2GB 
WideString ~230 characters - Unicode 4 a 2GB 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 18 
 Obs: quando usamos o tipo String estamos usando um tipo AnsiString, porém se inserirmos 
uma diretiva de compilação {$H-} estaremos usando o tipo ShortString. 
Tipos Ordinais 
Tipos ordinais são os tipos integer, Caracter, Boolean, enumeração, sub-intervalos, ou seja, são tipos de 
dados ao qual se conheça o seu valor absoluto, o seu predecessor e o seu sucessor. Existem uma série de 
operadores capazes de manipularem esses tipos de dados: 
 
 
Função Retorno 
Ord Valor da ordem do argumento 
Pred Valor predecessor do argumento 
Succ Valor sucessor do argumento 
High Maximo valor possível para a variável do tipo em questão 
Low Mínimo valor possível para a variável do tipo em questão 
 
Tipo Variant 
Esse tipo de dado pode conter qualquer tipo de informação, na realidade o tipo de dado que uma 
variável variant é definido em tempo de execução, quando atribuímos um valor para ela. Esse tipo de dado é 
bastante usado quando lidamos com OLE – Object Linking and Embbeding, que é usado como padrão de 
transferência de dados entre aplicações no Windows, já que não sabemos se receberemos um texto, uma imagem, 
um objeto multimídia, etc. 
 
Tipo Enumerado 
Esse tipo de dado pode ser usado para representar uma lista de possíveis valores que uma variável pode 
conter. Podemos usar o tipo enumerado para representar por exemplo: tipo de profissão (assalariado, autônomo, 
empresário), tipo de chamada telefônica (Local, DDD, DDI), consulta médica ( convênio, particular), operações 
aritméticas ( adição, subtração, divisão, multiplicação). O que vemos é que o tipo enumerado é na verdade uma 
forma de nomear uma seqüência de valores, visto que, internamente o Object Pascal representa a enumeração 
com números começando do zero, para o primeiro elemento, um para o segundo e assim sucessivamente. 
 
Exemplo: 
 
Type 
 TAlinhamento = (Direita, Esquerda, Centralizado, Justificado); 
Var 
 Alinhamento : TAlinhamento; 
 
No ambiente Delphi é muito comum o uso de enumerações, vamos ver alguns exemplos: 
 
 
 
 
 
 
 
 
 
 
 
Propriedade Align do componente Label e propriedade BorderStyle do fomulário. 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 19 
 
 
 
 
 O Delphi define essas propriedades com os seguintes tipos de dados: 
 
 type 
 
 TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient); 
 
 TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin); 
 
 
Tipo SubArange 
 
Da mesma forma que os tipos enumerados, os tipos SubArange são definidos pelo programador, sendo 
que este determina para o novo tipo um intervalo de valores tomando como base um tipo ordinal. 
 
Exemplo: 
 
Type 
 
TContador = 0..100; //um subintervalo do tipo ordinal Integer 
 
Tdigitos = ‘0’..’9’; //um subintervalo de caracteres do tipo char 
 
Var 
 
 Contador : Tcontador; 
 Dígitos : Tdigitos; 
 
Podemos definir SubArange de tipos enumerados, veja exemplo: 
 
Type 
 
 TDiaSemana = (Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado); 
 TDiaUteis = Segunda ..Sexta; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 20 
Tipo Conjuntos 
Através desse tipo de dados, suportado pelo Object Pascal, podemos manipular variáveis usando os 
conceitos de conjuntos da matemática. 
 
Exemplo: 
 
Type 
 
 TDiaSemana = (Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado); 
 TSemana = set of TDiaSemana; 
 
Var 
 
 Semana : TSemana; 
 
Com esse tipo, conforme já foi dito acima, podemos trabalhar com as operações matemáticas de 
conjuntos. Vejamos alguns exemplos: 
 
Semana := [ ] // conjunto vazio 
 
Semana := [Terça,Quinta]; //atribuição de dois elementos ao conjunto; 
 
Semana := Semana + [Quinta,Sexta]; // união de dois conjuntos 
 
Semana := Semana – [Terça]; //Diferença entre dois conjuntos 
 
Semana := Semana * [Quanta,Quinta]; //interseção de dois conjuntos 
 
If [Segunda] in Semana then // operação de pertinência de elementos 
 
If [Segunda, Terça] <= Semana then // está contido em semana 
 
If Semana >= [Quinta, Sexta] then // semana contém os dias quinta e sexta 
 
Operadores 
Operador de Atribuição 
Atribuição de valor literal 
 
A := 10; 
NomeFunc := ‘Fulano de Tal’; 
 
Atribuição de expressões 
 
Total := A * (B + 2); 
NomeFunc := Nome + ‘de Tal’; 
 
Atribuição de retorno de função 
 
Total := Soma( A,B); 
Totao := Soma(A,B) – Soma(C,D); 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 21 
Operadores Aritméticos 
 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão – conjunto de reias 
Div Divisão inteira 
Mod Resto da divisão inteira 
 
Operadores Lógicos 
 
And Operador lógico E 
Or Operador lógico OU 
Not Operador lógico de negação 
Xor Operador lógico Ou exclusivo 
Operadores de Conjunto 
 
+ União 
- Diferença 
* Intersecção 
In Pertence 
<= Está contido em 
>= Contém 
 
 
Operadores de Classe 
 
Is Questionamento se um objeto é de uma determinada classe 
As Afirmação que um objeto é de uma determinada classe 
 
Tipos de dados Homegêneos 
Array Unidimensional 
 
Arrays são conjuntos de variáveis com o mesmo nome e diferenciadas entre si por um índice. Eles são 
úteis para manipularmos grandes quantidades de dados de um mesmo tipo, pois evitam a declaração de diversas 
variáveis. 
 
Sintaxe: 
 
<NomeVariável> : array[i1..i2] of <tipo>; 
 
onde i1 e i2 representam os valores mínimo e máximo, respectivamente, do índice. 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 22 
O Object Pascal permite que i1 e i2 possuam qualquer valor desde que i1 seja menor ou igual a i2. 
Assim, poderíamos declarar um array de 100 variáveis inteira de várias formas diferentes : 
 
lista : array [1..100] of integer; 
ou 
lista : array [-100..-1] of integer; 
ou 
lista : array [0..99] of integer 
 
Array Multidimensional 
Arrays multidimensionais são conjuntos de variáveis com o mesmo nome e diferenciadas entre si por 
dois ou mais índices. Eles são úteis para manipularmos grandes quantidades de dados de um mesmo tipo, pois 
evitam a declaraçãode diversas variáveis. 
 
Sintaxe: 
 
<NomeVariável> : array[i11..i12, i21..i22, in1..in2 ] of <tipo>; 
 
onde i1 e i2 ... in1..in2 representam os valores mínimo e máximo para cada dimensão do array 
respectivamente. 
 
Tipos de dados Heterogêneos 
Record 
 
O Object Pascal permite que o usuário crie novos tipos de dados baseados em tipos pré-existentes. A 
declaração de novos tipos deve ser feita na cláusula type da unidade de código correspondente. 
O exemplo a seguir destaca a criação de um tipo estruturado, um registro (record) capaz de armazenar 
os dados de um funcionário. 
 
type 
 TFuncionario = record 
 Nome : string; 
 Sexo : char; 
 Salario : real; 
 DataNascimento : TdataTime; 
 end; 
 
 
Agora já podemos declarar variáveis do tipo Tfuncionario 
 
var 
Funcionario : TFuncionario; 
 
O acesso aos campos que compõe a variável Funcionario pode ser feito da seguinte forma: 
 
Funcionario.Nome := ‘Fulano de Tal’; 
Funcionario.Sexo := ‘M’; 
Funcionario.Salario := 542.45; 
Funcionario.DataNascimento := StrToDate(‘28/11/1972’); 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 23 
Ou ainda usando o operador With, teremos 
 
With Funcionário do 
Begin 
Nome := ‘Fulano de Tal’; 
Sexo := ‘M’; 
Salario := 542.45; 
DataNascimento := StrToDate(‘28/11/1972’); 
End; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 24 
Estruturas de Controle em Object Pascal 
 
Nos limitaremos a apresentar uma breve descrição da sintaxe dessas estruturas; os próximos exemplos 
demonstrarão melhor a sua utilização. 
 
Comentários 
Para incluir um comentário em qualquer parte do programa podemos fazer uso de três tipos de 
delimitadores: {} e (* *) e //. Os dois primeiros delimitadores permitem que os comentários sejam distribuídos 
por várias linhas. Eles marcam o início e o fim do comentário. 
 
 
Exemplos 
{ Este é um comentário } 
 (* Este é um comentário 
 com duas linhas *) 
 
O terceiro tipo de comentário se inicia com // e vai até o final da linha. 
Exemplo: 
 
 A := B; // Comentário até o final da linha. 
 
Bloco De Comandos “Begin... End” 
 
Prende um conjunto de declarações em um bloco de comandos determinado. 
Sintaxe : begin {comandos} end; 
Ex: 
 
begin 
 { ... comandos iniciais ... } 
 begin 
 { ... bloco 1 ... } 
 end; 
 begin 
 { ... bloco 2 ... } 
 end; 
 { ... comandos finais ... } 
end; 
 
Estrutura Condicional Simples “If-Then” 
 
Sintaxe: 
 
if (condição) then {Bloco de comandos se condição for verdadeira}; 
 
Exemplo: 
 
If A > B then C := 10; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 25 
Obs: Caso sejam necessários {Blocos de Comandos} com mais de uma linha, estes devem ser 
delimitados pelas cláusulas begin e end. 
 
Exemplo: 
 
If A> B then 
Begin 
 C := 10; 
 D:= C* 2; 
End; 
 
Estrutura Condicional Composta “If-Then-Else” 
 
Sintaxe: 
 
if (condição) then {Bloco de comandos se condição for verdadeira} else {Bloco de comandos se 
condição for falsa}; 
 
Exemplo: 
 
if A>B then A:= 10 Else A := 20; 
 
Obs: Caso sejam necessários {Blocos de Comandos} com mais de uma linha, estes devem ser 
delimitados pelas cláusulas begin e end. 
 
If A>B then 
Begin 
 A:=10; 
 B:= 10; 
End 
Else 
Begin 
 A:=20; 
 B:=20; 
End; 
 
Estrutura Condicional “Case-Of” 
 
Sintaxe: 
 
case expressão of 
 constante_1_1,...constante_1_n : bloco_de_comando_1; 
 constante_2_1,...constante_2_n : bloco_de_comando_2; 
 ... 
 constante_n_1,...constante_n_n : bloco_de_conabdi_n: 
 else 
bloco_de_comando; 
 end; 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 26 
O comando case é um substituto mais elegante e mais legível para if-then-else múltiplos. A expressão 
(ou seletor) deverá ser de tipo com o tamanho máximo de 2 bytes (Byte, Char, Word ou Integer). Segue-se um 
exemplo: 
 
case Ch of 
 'A'..'Z', 'a'..'z' : WriteLn('Letra'); 
 '0'..'9' : WriteLn('Digito’); 
 '+', '-', '*', '/' : WriteLn('Operador'); 
else 
 WriteLn(' Caracter Especial'); 
end; 
 
Estrutura de Repetição “For-To, For-Downto” 
 
Sintaxe: 
 
for contador := valor_inicial to valor_final do 
begin 
 {bloco_de_comandos} 
end; 
 
onde: 
contador é uma variável inteira; 
valor_inicial é o valor inicial do contador, que dever ser um número inteiro; 
valor_final é o valor final (para o qual o laço se encerrará) a ser assumido pelo contador, deve ser 
inteiro; 
Se desejar que o contador assuma valores decrescentes deve-se usar a seguinte sintaxe: 
 
for contador := valor_inicial downto valor_final do 
begin 
 {bloco_de_comandos} 
end; 
 
Note que as cláusulas begin e end só são necessárias para blocos com mais de uma linha. 
 
Estrutura de Repetição “While-Do” 
 
Sintaxe: 
 
while expressão_booleana do 
begin 
 {bloco_de_comando} 
end; 
 
Note que o bloco_de_comando é executado enquanto a expressão_booleana for verdadeira e que como a 
expressão_booleana é avaliada antes da execução do bloco_de_comando, se a expressão_booleana for falsa o 
bloco_de_comando não será executado nenhuma vez. 
 
As cláusulas begin e end só são necessárias para blocos com mais de uma linha. 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 27 
Estrutura “Repeat-Untill” 
 
Sintaxe: 
 
repeat 
{bloco_de_comando} 
until expressão_booleana; 
 
Note que o bloco de comando é executado em sequência, enquanto a expressão_booleana for verdadeira 
e que o bloco de comando é executado pelo menos uma vez, já que a expressão_booleana é avaliada depois dele. 
 
No comando Repeat não é necessário usar a cláusula begin e end, mesmo quando contiver mais de uma 
linha. 
 
 
SubProgramas 
Funções 
 
Uma função se define em Pascal de forma semelhante a definição matemática. Ela recebe valores como 
parâmetros e retorna um outro valor como resultado. A definição de função obedece a seguinte sintaxe : 
 
function nome_da_funcao(parametro_1:tipo_1,,,parametro_n:tipo_n) : tipo de retorno; 
var 
{declaração de variáveis locais á função} 
begin 
{corpo da função} 
end; 
 
O trecho de código a seguir define a função PRODXY, que retorna como resultado o produto de dois 
números reais X e Y: 
function PRODXY(X,Y:Real) : Real; 
begin 
PRODXY := X*Y; 
end; 
 
Observe que o sinal de atribuição em Object Pascal é := e, não o sinal de igual simplesmente. 
 
 
 
 
 
 
 
 
 
 
Procedimentos 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 28 
Um procedimento é semelhante a uma função, mas não retorna um valor. 
A definição de um procedimento obedece a seguinte sintaxe : 
 
procedure nome_do_procedimento(parametro_1:tipo_1,,,,parametro_n : tipo_n); 
var 
{declaração de variáveis locaisao procedimento} 
begin 
{corpo do procedimento} 
end; 
 
 
Passagem De Parâmetros 
 
Podemos passar parâmetros para uma função ou um procedimento por valor e por referência. Quando 
se passa um parâmetro por valor estamos realmente passando um valor ou a cópia de um valor armazendo numa 
variável. Quando a passagem se faz por referência, estamos passando o endereço da variável na memória e não o 
seu valor. Quando se altera, dentro da função, o valor de uma variável passada por por referência esta alteração 
surte efeito em todo o programa (fora da função). 
Para passarmos um parâmetro por referência devemos precedê-lo da palavra reservada var. 
Ex: procedure nome_do_procedimento(var parametro1 : tipo1 ; parametro2 : tipo2); 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 29 
Programação Orientada a Objetos com Delphi 
O que é POO? 
Programação orientada a objetos é um paradigma de desenvolvimento de programas. O Delphi não é 
totalmente orientado a objetos, porém traz características suficientes para tal. Toda base para os conceitos e 
desenvolvimento orientado a objetos está fundamentado em uma nova estrutura, denominada de classe de 
objetos. 
Classes 
É uma estrutura implementada através da união de dados e código numa mesma estrutura. Fazendo uma 
analogia com o Pascal, uma classe de objeto é semelhante a um tipo registro, porém acrescenta-se, a capacidade 
de conter código embutido nessa estrutura para manipulação dos seus próprios dados. 
De modo geral, uma linguagem para ser considerada como orientada a objetos precisa atender no 
mínimo os critérios de herança, encapsulamento e polimorfismo. 
 
Exemplo de definição de classe 
 
Cláusula Interface da Unit – definição da classe 
 
Type 
 
TEmpregado = class (TObject) 
 Private 
 FCodigo : word; 
 FUltimoCodigo : word; 
 FNome : string; 
 FNascimento : TDateTime; 
 Public 
 Constructor Criar; 
 Destructor Destruir; 
 Procedure SetNome(nome:string); 
 Function GetNome:string; 
 Procedure SetNascimento(data:TDateTime); 
 Function GetNascimento: TDateTime; 
 Function GetCodigo:Word; 
 Procedure Consulta; 
 Function CalculaIdade:string; 
 end; 
 
 
 
 
 
 
 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 30 
Cláusula Implementation – implementação da classe 
 
//-------------------------------------------------------------------------- 
 //implementação do método construtor Criar 
 //-------------------------------------------------------------------------- 
 Constructor TEmpregado.Criar; 
 begin 
 Fcodigo := 0; 
 FUltimoCodigo := 0; 
 end; 
 
 
 
//-------------------------------------------------------------------------- 
 //implementação do método Destrutor Destruir 
 //-------------------------------------------------------------------------- 
 Constructor TEmpregado.Destruir; 
 begin 
 Inherited Destructor; 
 end; 
 
 //-------------------------------------------------------------------------- 
 //implementação do método SetNome 
 //-------------------------------------------------------------------------- 
 Procedure TEmpregado.SetNome(nome:String); 
 begin 
 FNome := nome; 
 FCodigo := FUltimoCodigo + 1; 
 FUltimoCodigo := FCodigo; 
 end; 
 
 //-------------------------------------------------------------------------- 
 //implementação do método GetNome 
 //-------------------------------------------------------------------------- 
 Function TEmpregado.GetNome:String; 
 Begin 
 GetNome := FNome; 
 end; 
 
 //-------------------------------------------------------------------------- 
 //implementação do método SetNascimento 
 //-------------------------------------------------------------------------- 
 Procedure TEmpregado.SetNascimento(data:TDateTime); 
 begin 
 FNascimento :=data; 
 end; 
 
 
 
 
 
 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 31 
 //-------------------------------------------------------------------------- 
 //implementação do método GetNacimento 
 //-------------------------------------------------------------------------- 
 Function TEmpregado.GetNascimento:TDateTime; 
 Begin 
 GetNascimento := FNascimento; 
 end; 
 
 
 //-------------------------------------------------------------------------- 
 //implementação do método GetCodigo 
 //-------------------------------------------------------------------------- 
 Function TEmpregado.GetCodigo:Word; 
 Begin 
 GetCodigo := FCodigo; 
 end; 
 
 
 //-------------------------------------------------------------------------- 
 //implementação do método Consulta 
 //-------------------------------------------------------------------------- 
 Procedure TEmpregado.Consulta; 
 begin 
 ShowMessage('Dados do Funcionário(a): '+FNome+#13+ 
 'Matricula : '+intToStr(FCodigo)+#13+ 
 'Data Nasc : '+DateToStr(FNascimento)); 
 
 end; 
 
 //-------------------------------------------------------------------------- 
 //implementação do método CalculaIdade, que através da data de nascimento 
 //calcula a idade, tendo como base a data atual do sistema e devolve uma 
 //string com o número de anos,meses e dias que a pessoa tem. 
 //-------------------------------------------------------------------------- 
 Function TEmpregado.CalculaIdade:String; 
 var 
 numAno,numMes,numDia: word; 
 Diferenca : TDateTime; 
 begin 
 Diferenca := Date - FNascimento; 
 DecodeDate(Diferenca,numAno,numMes,numDia); 
CalculaIdade := 'A idade do(a) '+Fnome+' é de '+intToStr(numAno-1900)+ 
' Anos, '+intToStr(numMes)+' Mês e '+intToStr(numDia)+' Dias, '; 
 end; 
 
 
 
 
 
 
 
 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 32 
Usando a classe definida acima 
 
Var 
 Empregado : Tempregado; 
 Codigo : word; 
 Nome : String; 
Begin 
 Empregado := Tempregado.Criar; //cria uma instância da classe Tempregado 
 Empregado.SetNome(‘Fulano’); //atribui um novo nome 
 Empregado.SetNascimento(StrToDate(‘01/03/1975’)); //atribui a data de nasci. 
 ShowMessage(Empregado.CalculaIdade); //exibe a idade 
 Codigo := Empregado.GetCodigo; // busca o codigo 
 Nome := Empregado.GetNome; //busca o nome 
 Empregado.Destruir; //destrói a instância liberando memória 
End; 
 
Encapsulamento 
 
É a capacidade de ocultar a complexidade que foi necessária para sua implementação. Dessa forma o 
desenvolvedor que irá usar essa classe, não conhecerá a complexidade de sua implementação, facilitando e 
agilizando o processo de implementação da aplicação. 
 
Tipos de Encapsulamento 
 
São definidos através dos atributos de visibilidade, que devem ser colocados antes dos membros que 
possuem o respectivo atributo. Os atributos podem aparecer em qualquer ordem, porém é adotada como padrão a 
ordem alfabética ( private, protected, public, published).Exemplo: 
 
Type 
 
Tdialogo = Class 
Private 
Ffonte : Tfont; 
Fmin : Integer; 
Fmax : Integer; 
Procedure MudaFonte(Fonte:Tfont); 
Protected 
Procedure DesenhaTela; 
Property Fonte : Tfont read Ffonte write MudaFonte; 
Public 
Constructor Cria(nome : string); 
Destructor Destroi; 
Function Executa : Boolean; 
Published 
Property Min read Fmin write Fmin; 
Property Max read Fmax write Fmax; 
End; 
 
Obs : quando temos para o mesmo atribuito de visibilidade, métodos e campos, os campos devem vir 
antes que os métodos. 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 33 
 
Atributo de Visibilidade Private 
 
Esses membros ficam invisíveis para as units que irão usar a classe em questão, bem como para todas as 
classes que herdarem esses membros, ou seja, esses membros serão visíveis somente na classe que os definiu. 
 
Atributo de Visibilidade Protected 
 
Esses membros ficam invisíveis para as units que irão usar a classe em questão, porém poderão ser 
acessados na implementação dos métodos das classes que herdarem esses membros. 
 
Atributo de Visibilidade Public 
 
Não tem restrições de acesso, tanto usuários da classe quanto classes que herdam esses membros 
poderão acessa-los. 
 
Atributo de Visibilidade Published 
 
Da mesma maneira que os atributos públicos, não possuem restrições, porém será usado para definir 
propriedades dos novos componentes para o delphi. Essa propriedades serão inseridas no Object Inspector para 
que possam ser manipuladas em tempo de projeto. 
 
 
Obs: quando omitimos os atributos de visibilidade, serão admitidos como públicos. 
 
 
 
Curso de Programação em Delphi – Componentes Básicos do Delphi 
 Prof. Evandro César Freiberger Página 34 
Herança 
 
É a capacidade que uma classe tem de herdar características (dados e código) de uma classe ancestral, 
formando assim uma hierarquia de classes. No Delphi, qualquer classe pode herdar características de uma classe 
ancestral, com exceção da classe Tobject, que é a classe ancestral de todas as outras. A herança é o mecanismo 
que implementa o reaproveitamento de código. 
 
Exemplo de herança 
 
 Type 
 
TEmpregado = class (TObject) 
 Protected 
FCodigo : word; 
FUltimoCodigo : word; 
FNome : string; 
FNascimento : TDateTime; 
Procedure SetNome(nome:string); 
 Public 
Constructor Criar; Virtual; 
Function CalculaIdade:string; 
Procedure CalculaSalario; Virtual; Abstract; 
Procedure Demitir; Virtual; Abstract; 
Procedure Consulta; Virtual; 
property Matricula : Word read FCodigo; 
property Nome : String read FNome write SetNome; 
property Nascimento : TDateTime read FNascimento write FNascimento; 
 end; 
 
 
 TEmpregadoCLT = class (TEmpregado) 
 Private 
FSaldoFGTS:Double; 
FTempoServico:word; 
FTempoSemFerias:word; 
FNumFeriasPendentes: 0..2; 
FSalario:Double; 
 Public 
Constructor Criar; override; 
Procedure CalculaSalario; override; 
Procedure Demitir; override; 
Procedure TirarFerias; 
Procedure Consulta; Override; 
property Salario : Double read Fsalario write FSalario; 
 end;

Outros materiais