Docsity
Docsity

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

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


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Biblia do Delphi 7, Manuais, Projetos, Pesquisas de Matemática

Livro de programação delphi versão 7

Tipologia: Manuais, Projetos, Pesquisas

Antes de 2010

Compartilhado em 30/01/2010

nilson-silva-3
nilson-silva-3 🇧🇷

4.8

(6)

1 documento

1 / 182

Toggle sidebar

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

Não perca as partes importantes!

bg1
Borland®
Desvendando o Caminho das Pedras
Fernando Anselmo
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Biblia do Delphi 7 e outras Manuais, Projetos, Pesquisas em PDF para Matemática, somente na Docsity!

Borland

Desvendando o Caminho das Pedras

Fernando Anselmo

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:

  • Delphi Client/Server , de alta performance e facilidade para o desenvolvimento de aplicações e suporte a bancos de dados do tipo Cliente/Servidor.
  • Delphi Desktop , de alta performance e facilidade para o desenvolvimento de aplicações e suporte a bancos de dados locais, permitindo total portabilidade à versão Client/Server.

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:

  • Windows©, Windows 95 ©^ e Windows NT ©;
  • Bancos de dados do tipo Cliente/Servidor: Oracle ©^ , Informix©^ , InterBase, SyBase©^ e Microsoft SQL Server

© ;

  • Alta performance, em sistemas críticos;
  • Base de Dados locais e aplicações do tipo network;
  • Ambiente gráfico, visual e multimídia.

Mas o que é possível fazer com ele? É possível criar, dentre outros, os seguintes tipos de aplicações em Delphi :

  • Usá-lo como a linguagem de desenvolvimento para bancos do tipo Cliente/Servidor;
  • Ambiente heterogêneo para captura e envio de informações em diversos tipos de arquivos de dados;
  • Um pacote corporativo de aplicações inteligentes e interpretadores de dados. Incorporando DLL’s e EXE’s externos;
  • Pacotes multimídia com desenho e animação;
  • Genéricos utilitários do Windows

© ;

  • Criação de bibliotecas (DLL) para leitura por outras aplicações.

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:

  • Delphi está sendo utilizado no momento por mais de 1.500 lugares incluindo as maiores corporações, consultores e organizações de treinamento;
  • Eleito pela Byte Magazines como Best of Comdex Award;
  • Vários livros escritos;
  • Grupos de discussão e periódicos com dicas de desenvolvimento na WorldWibe (Consulte às listas da InterNet através da palavra DELPHI );
  • Dezenas de bibliotecas e ferramentas para o suporte em Delphi ;
  • Dezenas de artigos em publicações do mundo inteiro, tais como PC Week, InfoWorld, Computer Reseller News, PC Magazine, Windows Sources e muitas outras.

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

  • Sempre que você localizar este símbolo significa que existe uma nota que lhe ajudará em caso de dúvida.

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:

  • Controle e acesso das subclasses do Windows ©^ (API);
  • Passar por cima das mensagens de loop do Windows ©;
  • Mensagens semelhantes as do Windows

© ;

  • Código puro da linguagem Assembler.

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: <= >= := .. ( ) (. .) //

  • O colchetes esquerdo ( [ ) e equivalente ao (. e o colchetes direito ( ] ) e equivalente a .). A chave esquerda ( { ) e equivalente ao (* e a chave direita ( } ) e equivalente a *).

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.

  • Exemplo de identificadores válidos: Form1, SysUtils.StrLen, Label1.Caption

with... do...;

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;

array [ ... ] of ...;

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.

begin... end;

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 ;

if... then... else...;

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;

goto... ;

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;

break; ou continue...;

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

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

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;

  • Junto com o Delphi 2.0 vem o manual de Object Pascal em formato .HLP , caso a linguagem seja novidade para você aconselho que você dê uma boa olhada (o Delphi 1.0 traz o mesmo manual, mas em formato .PDF ), mas não se preocupe com o que foi explicado acima já está mais do que suficiente para uma boa inicialização com o Delphi.

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.

  • Só por curiosidade, salve este arquivo, feche-o e abra o arquivo UNIT1.DFM (com a opção File | Open File... ) notaremos que o Delphi criou um arquivo com todas as propriedades dos objetos criados e que a declaração do objeto Form1 engloba todos os outros, noções de Encapsulamento.

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.

  • O Delphi modificará apenas os códigos gerados automaticamente pôr ele. Os códigos para a ação OnClick foram gerados por você e o Delphi não os modificará. Cabe a você a manutenção neste caso. Isto foi idealizado para preservar o conteúdo original do seu código.