




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Livro de programação delphi versão 7
Tipologia: Manuais, Projetos, Pesquisas
1 / 182
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































ii
Dez 1995 - Mai 1997
Desvendando o Caminho das Pedras
Copyright ©^ 1995-97 Fernando Antonio F. Anselmo.
Todos os nomes dos produtos citados são marcas registradas da Borland International, Inc. Outros produtos citados são marcas registradas no respectivo cabeçalho
As várias Marcas Registradas que aparecem no decorrer deste livro. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de exploração, ou ainda imprimir o logotipo das mesmas, o autor declara estar utilizando tais nomes apenas para fins editoriais, em benefício exclusivo do dono da marca registrada, sem intenção de infringir as regras de sua utilização.
Introdução
Bem-vindo ao Delphi , o mais novo produto de alta performance da Borland. Delphi é um produto único em sua categoria combinando códigos totalmente compiláveis, ferramentas visuais e tecnologia para a composição de bases de dados escaláveis, possui facilidades para um rápido
desenvolvimento em plataforma Windows ©^ e aplicações Client/Server.
Este trabalho será seu guia para uma rápida aprendizagem no desenvolvimento de sistemas que gerencie bancos de dados. O Delphi é encontrado em dois produtos:
Apresento-lhes a seguir algumas informações detalhadas para um perfeito desenvolvimento visual, sendo que ao final de cada capítulo prático é exibido o código fonte completo seguido de um resumo dos principais comandos mostrados. Ao final deste estudo você encontrará apêndices que lhe ajudarão a resolver pequenos problemas do dia-a-dia.
Delphi , como Solução para Desenvolvedores
Muitas vezes nos perguntamos, e somos questionados, no porque de adotar o Delphi como a linguagem para o desenvolvimento de sistemas? Inicialmente, é necessário conhecer que o Delphi oferece um rápido caminho para o desenvolvimento de aplicações nos ambientes:
© ;
Mas o que é possível fazer com ele? É possível criar, dentre outros, os seguintes tipos de aplicações em Delphi :
© ;
Mas porque arriscar em um ambiente novo quando existe no mercado linguagens mais difundidas? No mundo inteiro Delphi foi testado, e em 15 meses de vida produziu os seguintes resultados:
Por tudo aqui exposto fica claro que este no produto demonstra uma inovação para uma criação em alta performance de aplicações. Todos os recursos que você precisará para o desenvolvimento de seus produtos estão agora disponíveis.
Feliz desenvolvimento.
Fernando Antonio F. Anselmo
Ação - é a operação efetuada pelo objeto. Todas as janelas, por exemplo, controlam a iluminação e temperatura ambiente, dependendo do seu design.
Herança - um objeto novo nem sempre é criado do zero. Ele pode “herdar” atributos e ações de outros já existentes. Um basculante herda atributos das janelas e das persianas.
Polimorfismo - é a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão. O comando “abre”, por exemplo, faz um objeto entrar em ação, seja ele uma janela, uma porta ou uma tampa de garrafa.
Ligação - é quando um objeto conecta a sua ação a outro. Um sensor de claridade, por exemplo, ativa o acendimento automático da iluminação de rua.
Embutimento - Permite a um objeto incorporar funções de outros, como um liqüidificador que mói carne com a mudança do tipo da lâmina.
Object Pascal
Object Pascal é uma linguagem Orientada a Objetos não pura mas híbrida por possuir características de programação não só visual mas também escrita, para os programadores que já conhecem técnicas de estruturas de programação, com o C , Basic , Pascal ou x BASE entre outras linguagens a Object Pascal providência uma migração de forma natural oferecendo um produto de maior complexibilidade. Object Pascal força a você executar passos lógicos isto 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 todo o conceito da orientação a objetos incluindo encapsulamento, herança e polimorfismo. Algumas extensões foram incluídas para facilitar o uso tais como conceitos de propriedades, particulares e públicas, e tipos de informações em modo run-time, manuseamento de exceções, e referências de classes. O resultado de toda esta junção faz com que Object Pascal consiga suportar as facilidades de um baixo nível de programação, tais como:
© ;
Como deu para perceber a base de toda a programação Delphi é a linguagem Object Pascal , então neste capítulo trataremos exclusivamente deste tipo de programação.
Símbolos Especiais
A Object Pascal aceita os seguintes caracteres ASCII:
[AL1] Comentário:
9 Letras - do Alfabeto Inglês: A até Z e a até z. 9 Dígitos - Decimal: 0 até 9 e HexaDecimal: 0 até 9 e A até F (ou a até f ) 9 Brancos - Espaço ( ASCII 32 ) e todos os caracteres de controle ASCII ( ASCII 0 até ASCII 31 ), incluindo final de linha e Enter ( ASCII 13 ). 9 Especiais - Caracteres: + - * / = < > [ ]. , ( ) : ; ^ @ { } $ # 9 Símbolos - Caracteres: <= >= := .. ( ) (. .) //
Palavras Reservadas
A Object Pascal se utiliza das seguintes palavras reservadas, não podendo as mesmas serem utilizadas ou redefinidas:
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
Uma outra lista a seguir, apresenta as diretivas que são utilizadas em contextos de identificação de objetos:
Absolute Export Name Published
Abstract External Near Read Assembler Far Nodefault Resident
At Forward Override Stored Cdecl Index Private Virtual Default Interrupt Protected Write
Dynamic Message Public
Identificadores
Identificadores podem ser constantes, tipos, variáveis, procedures, funções, unidades, programas e campos de registros.
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 o carácter underscore ( _ ). O resto é formado por Letras, Dígitos, carácter underscore (ASCII $5F). Não é permitido a utilização de espaços para a formação do nome.
Delimita um determinado bloco de declarações para um identificador específico evitando a declaração deste identificador. A sintaxe do comando é: WITH {nome do identificador} DO {comandos};. Ex:
begin { ... comandos iniciais ... } with form1 do begin Caption := ‘Teste’; ò Equivalente a Form1.Caption BorderStyle := bsSizable; ò Equivalente a Form1.BorderStyle end; end;
Define um conjunto de variáveis ou constantes de um mesmo tipo. A sintaxe do comando é: array [{quantidade de ocorrencias}] of {Tipo};. Os arrays são controlados por três funções:
Função Valor de Retorno Low Primeiro elemento High Aponta para o último elemento SizeOf Tamanho do array Ex:
const t: array [1..50] of Char { Declara 50 elementos para o tipo Char } var s : array[1..100] of Real { Declara 100 elementos para o tipo real } ind: Integer; begin for Ind := Low (s) to High (s) do s[Ind] := 0; { Zera os elementos do array S } if SizeOf (t) = ‘C’ then exit; { Se o último elemento do array T for ‘C’ sai do bloco } { ... outros comandos... } end;
Declarações
Declarações descrevem ações de um algorítmo a serem executadas.
Prende um conjunto de declarações em um bloco de comandos determinado. A sintaxe do comando é: BEGIN {comandos} END;. Ex:
begin { ... comandos iniciais ... } begin { ... bloco 1 ... } end ; begin { ... bloco 2 ... } end ; { ... comandos finais ... } end ;
Esta expressão escolhe entre o resultado de uma condição booleana o caminho verdadeiro (then) ou falso (else). A sintaxe do comando é: IF {condição} THEN {bloco de comandos} ELSE {bloco de comandos};. Ex:
begin { ... comandos iniciais ... } if x > 2 then { ... Bloco verdadeiro ... } else { ... Bloco falso ... } ; end;
Transfere a execução de um programa para o ponto determinado pelo Label. A sintaxe do comando é: GOTO {Label};. Ex:
label primeiro; begin { ... comandos iniciais ... } if x = 2 then goto primeiro; { ... outros comandos ... } Primeiro: { ... comandos do Primeiro ... } end;
{ ... Bloco de comandos ... } end;
O comando break interrompe um bloco de repetição for , while ou repeat saindo do bloco. A sintaxe do comando é: BREAK; enquanto que o comando continue retorna a primeira instrução do bloco de repetição for , while ou repeat. A sintaxe do comando é: CONTINUE;. Ex:
begin { ... comandos iniciais ... } for i := 1 to 10 do begin if i = 8 then break; ò Salta para os [comandos C] {... comandos A...} if i = 5 then continue; ò Retorna para o comando for pulando os [comandos B] {... comandos B ...} end; {... comandos C ...} end;
Blocos de Procedimentos ou Funções
As procedures ou funções são declaradas na seção de tipos de declarações (abaixo do comando type ) pertencendo ao objeto ou serem do tipo public (públicas - executadas por outras unidades) ou private (particulares - restritas a unidade local).
procedure {cabeçalho}; var {declaração das variáveis}; {bloco de comandos};
O cabeçalho da procedure é composto pelo nome do procedimento e variáveis que serão recebidas (ou modificadas através da declaração var, ex: procedure teste( var x:string);).
procedure soma(a,b: integer); ò Início enviando as variáveis A e B do tipo inteiro. var ò Declaração de variáveis locais. c: integer; begin ò Corpo do procedimento. c := a + b; end;
function {cabeçalho} : {resultado}; var {declaração das variáveis}; {bloco de comandos};
As funções se diferem dos procedimentos pela obrigatoriedade do retorno de um resultado, podendo este resultado ser retornado pela declação: {nome da função} := valor ou result := valor.
function soma(a,b: integer) : integer; ò Início enviando as variáveis A e B do tipo inteiro.
begin ò Corpo do procedimento. soma := a + b; ò ou result := a + b; end;
Tudo o que vimos a cima é o que normalmente temos em outras linguagens comuns, mas o caracteriza realmente a linguagem Orientada em Objetos é o trabalho e a manipulação com os mesmos.
Características de Objetos
Mas afinal de contas, o que é um objeto? Como foi dito anteriormente, um objeto é qualquer tipo de elemento, ou componente, que envolva dados e código dentro de um único pacote.
Uma vantagem de programar na POO e quanto a Herança dos objetos, este método faz com que seja possível um objeto ‘Filho’ poder herdar todas as características e conteúdos de um objeto ‘Pai’. Tirando um pouco do Pascal da geladeira (a partir do Pascal versão 7.0 a Borland tornou possível a utilização simplificada de todo o conceito de POO) aqui vai um código completo de declaração de dois objetos, o primeiro chamado de TPai e o segundo de Tfilho:
TPai = object Nome: PChar; constructor Init (P: PChar); destructor Done ; procedure MudaNome(P: PChar); procedure ShowName; end ;
TFilho = object (TPai) procedure MudaNome(P: PChar); end ;
O segundo objeto TFilho herda do objeto TPai o ponteiro variável Nome , a constructor Init , o destructor Done e a procedure ShowName , apenas a procedure MudaNome terá o funcionamento como uma característica única para cada objeto. O Delphi possui inúmeros “pais” (classes de objetos) prontos para serem usados por você, tais como:
TForm : Centro das aplicações Delphi , utilizados na criação de janelas, caixas de diálogo entre outros. TMenu : Responsável pela concepção de menus e menu popup.
TButtonControl : Simplifica o refinamento do controle da janela serve de base para os componentes como: Botões, Check Box e Radio Box.
Adicionando alguns componentes ao formulário, veremos como o Delphi completará a aplicação escrevendo automaticamente o código, e permitindo que ao final tornar-se-á possível a
compilação (lembra-se do Clipper
© , com .EXE ), execução e distribuição da aplicação.
Em nosso formulário, colocaremos um botão que, em tempo de execução, ao ser dado um clique com o mouse sobre este objeto, o formulário mude sua cor. Aperte a tecla F12 para retornar a visão do formulário e na palheta de objetos ( Componnent Pallete ) clique no objeto
( button localizado na página Standard ) e clique no formulário. Na janela da Object Inspector clique na página Events e clique duas vezes sobre a ação OnClick e insira o seguinte código:
procedure TForm1.Button1Click(Sender: TObject); begin Form1.Color := clGreen; end ;
Reparando no código completo da aplicação, veremos:
unit Unit1;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class (TForm) Button1: TButton; ò Um novo dado foi aqui inserido procedure Button1Click(Sender: TObject); ò Declarado um novo método private { Private declarations } public { Public declarations } end ;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); ò O código do novo método begin Form1.Color := clGreen; end ;
end.
O novo objeto TForm1 agora apresenta um campo Button1 - o botão que você adicionou ao formulário. TButton e o tipo do objeto, e Button1 é o objeto botão propriamente dito. Com o tempo você colocará novos componentes ao formulário.
Rode o projeto, clicando no botão ( Run ), dê um clique no botão e veja o que acontece. Pare a aplicação fechando a janela com Alt+F.
Renomeando os objetos e os componentes
Você sempre deve utilizar a janela do Object Inspector para renomear os objetos criados. Por exemplo, o nome padrão do formulário e Form1 mude a propriedade Name para fCores. O Delphi se encarregará de mudar qualquer referência que existia ao Form1. Então o código apresentará a seguinte modificações:
unit Unit1;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;
type TfCores = class (TForm) ò Aqui foi modificado Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end ;
var fCores: TfCores; ò Aqui foi modificado
implementation
{$R *.DFM}
procedure TfCores.Button1Click(Sender: TObject); ò Aqui foi modificado begin Form1.Color := clGreen; ò Aqui não !!! end ;
end.