biblia_delphi

download biblia_delphi

of 157

Transcript of biblia_delphi

  • 8/3/2019 biblia_delphi

    1/157

    orland

    Borland

    Desvendando o Caminho das Pedras

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (1 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    2/157

    orland

    umrioDesvendando o Caminho das Pedras

    troduoDelphi, como Soluo para Desenvolvedores

    aptulo I

    Conceito de Programao Orientada a ObjetoOrientao a ObjetoObject Pascal

    Smbolos EspeciaisPalavras ReservadasNmeros

    ConstantesExpressesIdentificadoresDeclaraesBlocos de Procedimentos ou Funes

    Caractersticas de ObjetosProgramando com objetosDelphiRenomeando os objetos e os componentes

    aptulo II

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (2 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    3/157

    orland

    Conhecendo o DelphiElementos Visveis

    FormCode EditorComponent PaletteObject InspectorSpeedBar

    Elementos no VisveisProject ManagerMenu Designer

    Fields EditorRepositrio de Objetos

    Estrutura de Aplicaes com oDelphi 2.0Implementao efetiva

    Objetos Data ModuleDicionrio de Dados EscalvelHerdando os Formulrios

    Ferramentas Auxiliares de SQLMonitor SQLSQL ExplorerInterBase NT - Banco de Dados Relacional

    aptulo III

    Projeto PilotoCriando o Modelo RelacionalTrabalhando com DataBase Engine Configuration

    Criando o AliasTrabalhando com DataBase DeskTop

    Criando o Banco de Dados via EstruturaCriando os Relacionamentos via EstruturaCriando o Banco de Dados via SQLObservaes da utilizao do SQL com o dBase

    aptulo IV

    Trabalhando com o MenuMetendo a Mo na Massa

    Criando a janela do menuInserindo os Cdigos IniciaisIniciando os comandos do MenuColocando os comandos para o Auxlio

    Criando a janela Sobre o SistemaCriando e alterando os objetosAssociando o form Sobre o Sistema ao menu

    Criando a janela SplashCriando o acesso a Base de Dados

    aptulo V

    Janela para as TabelasReabrindo o seu ProjetoAlterando as Janelas CriadasDataModules ?

    Modificando as Tabelas e as LigaesAlterando os campos da tabela

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (3 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    4/157

    orland

    Codificando o DataModuleControlando a duplicao dos Campos-ChaveFinalizando o DataModule

    Alterando o FormulrioModificando os Labels e CamposObjeto DBNavigatorModificando os PaineisModificando a JanelaCriando o terceiro Painel

    Programando no formulrio

    Preservando as reas de MemriaCriando Funes GlobaisAlterando o Menu para receber o formulrio

    aptulo VI

    Trabalhando com janela Pai X FilhaCriando a janela automaticamenteSobre os DataModules

    Trabalhando com as TabelasTrabalhando com os Campos

    Controlando o DataModuleContadoresValidando os Campos

    Alterando a Janela CriadaOrganizando os PanelsModificando os campos e LabelsOrganizando os PanelsModificando a JanelaTrabalhando com GridsFinalmente, a programaoConsultaTrabalhando com a rea de TransfernciaUtilizando o objeto OpenDialogCriando o formulrio para o cadastro das msicasCriando novos Procedimentos Globais

    Alterando o Menu para receber o formulrio

    aptulo VII

    Trabalhando com consultasCriando consultas para tabelas

    Trabalhando com GridsProgramando no formulrioEnviando e recebendo variveis

    Alterando o formulrio fCategAlterando o formulrio fBasico

    Criando consultas para o cadastroConsultas SQLRealizando Consultas com FiltrosProgramando o formulrioCriando o formulrio Gerente do FiltroProgramando o formulrioEditando os registros

    aptulo VIII

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (4 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    5/157

    orland

    RelatriosTrabalhando com o ReportSmith

    Criando relatrio com o ReportSmithOrganizando os campos do relatrioAssociando o relatrio ao aplicativoProgramando o formulrioImprimindo atravs do FormulrioCriando o Cdigo

    Trabalhando com o QuickReport

    aptulo IX

    MultimdiaO que multimdia ?

    Delphi and MultimediaObjeto TMediaPlayerColocando as propriedade em modo RuntimePesquisando variveis em modo RunTime

    Inserindo o multimdia para o SistemaDesenvolvimento do CD Player

    aptulo X

    Novos ComponentesCriando Componentes

    A Classe TComponentUm Componente SimplesAdicionando o Componente a PalhetaCriando PropriedadesMtodos de AcessoCriando novos tipos

    Pensando em Objetos

    Construindo um ObjetoFinalmente

    pndice ADocumentaoHardware/Software requeridos

    pndice BConverso de Campos

    Tipos de Dados para o InterBase

    pndice CAplicao rpida com o Objeto Query

    pndice DImprimindo um Formulrio

    pndice ETrabalhando com Mscaras

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (5 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    6/157

  • 8/3/2019 biblia_delphi

    7/157

    orland

    Genricos utilitrios do Windows

    ;

    Criao de bibliotecas (DLL) para leitura por outras aplicaes.

    as porque arriscar em um ambiente novo quando existe no mercado linguagens mais difundidas ? No mundo inteiroDelptado, 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 corporaes, consultoorganizaes de treinamento;

    Eleito pela Byte Magazines como Best of Comdex Award;

    Vrios livros escritos;

    Grupos de discusso e peridicos com dicas de desenvolvimento na WorldWibe (Consulte s listas da InterNeatravs da palavraDELPHI);

    Dezenas de bibliotecas e ferramentas para o suporte emDelphi;

    Dezenas de artigos em publicaes do mundo inteiro, tais como PC Week, InfoWorld, Computer Reseller NewMagazine, Windows Sources e muitas outras.

    r tudo aqui exposto fica claro que este no produto demonstra uma inovao para uma criao em alta performance de

    icaes. Todos os recursos que voc precisar para o desenvolvimento de seus produtos esto agora disponveis.iz desenvolvimento.

    Fernando Antonio F. An

    Sempre que voc localizar este smbolo significa que existe uma nota que lhe ajudar em caso de dvida.

    Captulo I

    Conceito de Programao Orientada a Objeto

    ra compreendermos melhor a novo ambiente de desenvolvimento daBorlandoDelphi necessrio que voc, aprenda e, mente os conceitos de POO (Programao Orientada a Objetos), no confunda os conceitos com POE (Programao

    entada a Eventos) muito difundido com oAccess 2.0

    (um ambiente baseado em Objetos), mas ao longo deste captuloc vai notar as sensveis diferenas que existem entre esses dois conceitos.

    POO e a POE so facilmente confundidas, mas lembre-se a POO contm a POE mas a POE no contm a POO, um objede existir mesmo que no exista nenhum evento associado a ele, mas um evento no pode existir se no houver um objet

    associado. Outra caracterstica que pode causar confuso so ambientes Orientados a Objetos e ambientes Baseados emjetos. Em ambiente Orientado a Objetos consegue-se criar e manipular objetos enquanto que o Baseado em Objetos no ssivel a criao de objetos apenas a sua manipulao.

    POO um conceito desenvolvido para facilitar o uso de cdigos de desenvolvimento em interfaces grficas. Sendo aBora das primeiras a entrar neste novo conceito, possui suas principais linguagens de programao (tais como ObjectPasca), totalmente voltadas para este tipo de programao. A POO atraiu muitos adeptos principalmente pelo pouco uso de c

    e o projeto (diferente de sistema) carrega no programa fonte, ao contrrio das linguagens mais antigas como o Clipper8ito utilizado no final da dcada de 90 e incio da dcada de 90. O resultado desta limpeza no cdigo resulta que anuteno do projeto torna-se muito mais simples.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (7 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    8/157

    orland

    Orientao a Objeto

    tes de comearmos a falar realmente de linguagem orientada a objetos e necessrio que voc possua os conceitos bsicoentao a objetos, so eles:

    Objeto - qualquer estrutura modular que faz parte de um produto. Uma janela por exemplo,

    objeto de uma casa, de um carro ou de um software com interface grfica para o usurio.Atributos - So as caractersticas do objeto, como cor e tamanho, a janela, por exemplo, tematributos como o modelo, tamanho, abertura simples ou dupla, entre outros.

    Encapsulao - um mecanismo interno do objeto escondido do usurio. Uma pessoa podeuma janela girando a tranca sem precisar saber o que h dentro dela.

    Ao - a operao efetuada pelo objeto. Todas as janelas, por exemplo, controlam a iluminatemperatura ambiente, dependendo do seu design.

    Herana - um objeto novo nem sempre criado do zero. Ele pode herdar atributos e aes de outros j existentebasculante herda atributos das janelas e das persianas.

    Polimorfismo - a capacidade de objetos diferentes reagirem segundo a sua funo a uma ordem padro. O coman

    abre, por exemplo, faz um objeto entrar em ao, seja ele uma janela, uma porta ou uma tampa de garrafa.Ligao - quando um objeto conecta a sua ao a outro. Um sensor de claridade, por exemplo, ativa o acendimenautomtico da iluminao de rua.

    Embutimento - Permite a um objeto incorporar funes de outros, como um liqidificador que mi carne com amudana do tipo da lmina.

    Object Pascal

    ject Pascal uma linguagem Orientada a Objetos no pura mas hbrida por possuir caractersticas de programao no s

    ual mas tambm escrita, para os programadores que j conhecem tcnicas de estruturas de programao, com o [AL1]C,Bscal ou xBASEentre outras linguagens a Object Pascalprovidncia uma migrao de forma natural oferecendo um prodmaior complexibilidade. Object Pascalfora a voc executar passos lgicos isto torna mais fcil o desenvolvimento no

    biente Windows

    de aplicaes livres ou que utilizam banco de dados do tipo Cliente/Servidor, trabalha com o uso denteiros para a alocao de memria e todo o poder de um cdigo totalmente compilvel. Alm disso possibilita a criaotilizao (vantagem de re-uso to sonhado com a Orientao a Objetos) de objetos e bibliotecas dinmicas (Dynamic Lraries - DLL).

    ject Pascalcontm todo o conceito da orientao a objetos incluindo encapsulamento, herana e polimorfismo. Algumasenses foram includas para facilitar o uso tais como conceitos de propriedades, particulares e pblicas, e tipos de

    ormaes em modo run-time, manuseamento de excees, e referncias de classes. O resultado de toda esta juno faz ce Object Pascalconsiga suportar as facilidades de um baixo nvel de programao, tais como:

    Controle e acesso das subclasses do Windows

    (API);

    Passar por cima das mensagens de loop do Windows

    ;

    Mensagens semelhantes as do Windows

    ;

    Cdigo puro da linguagemAssembler.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (8 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    9/157

    orland

    mo deu para perceber a base de toda a programaoDelphi a linguagem Object Pascal, ento neste captulo trataremosclusivamente deste tipo de programao.

    Smbolos Especiais

    Object Pascalaceita os seguintes caracteres ASCII:

    Letras - do Alfabeto Ingls: A at Z e a at z.

    Dgitos - Decimal: 0 at 9 e HexaDecimal: 0 at 9 e A at F (ou a at f)

    Brancos - Espao (ASCII 32) e todos os caracteres de controle ASCII (ASCII 0 at ASCII 31), incluindo final dee Enter (ASCII 13).

    Especiais - Caracteres: + - * / = < > [ ] . , ( ) : ; ^ @ { } $ #

    Smbolos - Caracteres: = := .. (* *) (. .)//

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

    Palavras Reservadas

    Object Pascalse utiliza das seguintes palavras reservadas, no podendo as mesmas serem utilizadas ou redefinidas:

    d Exports Library Set

    ay File Mod Shl

    Finnaly Nil Shr

    m For Not String

    in Function Object Then

    e Goto Of To

    ss If On Try

    nst Implementation Or Type

    nstructor In Packed Unittructor Inherited Procedure Until

    Initialization Program Uses

    Inline Property Var

    wnto Interface Raise While

    e Is Record With

    d Label Repeat Xor

    ept

    ma outra lista a seguir, apresenta as diretivas que so utilizadas em contextos de identificao de objetos:

    olute Export Name Publishedtract External Near Read

    embler Far Nodefault Resident

    Forward Override Stored

    cl Index Private Virtual

    ault Interrupt Protected Write

    namic Message Public

    Nmeros

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (9 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    10/157

    orland

    possvel definir variveis e constantes de tipos deInteiro ouReal atravs de qualquer decimal ordinrio ( 0 a 9 ), mas a Oscaltambm aceita a notao Hexadecimal utilizados com o prefixo dollar ( $ ) ou a notao cientfica ( E ).

    Constantes

    ma constante um identificador com valor(es) fixo(s). Um bloco de declaraes constante possui a seguinte expresso:

    eclarao Constante] [Identificador] (=) [constante] (;)

    ista abaixo apresenta um conjunto de funes que podem ser utilizadas para a declarao das constantes:Length Ord SizeOf

    Lo Pred Succ

    Low Ptr Swap

    h Odd Round Trunc

    guns exemplos para a definio de Constantes:

    st Min = 0;x = 100;ntro = (Max - Min) div 2;a = Chr(225);

    mLetras = Ord('Z') - Ord('A') + 1;nsOla = 'Instruo invlida';nsErro = ' Erro: ' + MensOla + '. ';Err = 80 - Length(MensErro) div 2;

    10 = 2.302585092994045684;10R = 1 / Ln10;gNumericos = ['0'..'9'];rasAlpha = ['A'..'Z', 'a'..'z'];

    phaNum = LetrasAlpha + DigNumericos;

    Expresses

    expresses em Object Pascal (como em qualquer linguagem) formada por operadores e operandos; os operadores soididos em quatro categorias bsicas:

    cos @, Not

    ltiplicativos >, / , div, mod, and, shl, shr, as

    cionais +, -, or, xor

    acionais =, < >, , < =, > =, in, is

    expresses obdecem as regras bsicas de lgica para a precedncia da execuo das operaes.

    Identificadoresntificadores podem ser constantes, tipos, variveis, procedures, funes, unidades, programas e campos de registros.

    o existe limite de caracteres para o nome de um identificador mas apenas os 63 primeiros caracteres so significantes (ndendo ser idntico ao nome das palavras reservadas). O nome de um identificador deve ser iniciado por Letras ou o carcderscore ( _ ). O resto formado por Letras, Dgitos, carcter underscore (ASCII $5F). No permitido a utilizao depaos para a formao do nome.

    Exemplo de identificadores vlidos: Form1, SysUtils.StrLen, Label1.Caption

    th... do...;

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (10 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    11/157

    orland

    Delimita um determinado bloco de declaraes para um identificador especfico evitando a declarao deste identificador. A sintaxcomando : WITH {nome do identificador} DO {comandos};. Ex:

    in{ ... comandos iniciais ... }with form1 dobegin

    Caption := Teste; Equivalente a Form1.CaptionBorderStyle := bsSizable; Equivalente a Form1.BorderStyle

    end;d;

    ray [ ... ] of ...;

    Define um conjunto de variveis ou constantes de um mesmo tipo. A sintaxe do comando : array [{quantidade de ocorrencias}]{Tipo};. Os arrays so controlados por trs funes:

    Funo Valor de Retorno

    Low Primeiro elemento

    High Aponta para o ltimo elemento

    SizeOf Tamanho do array

    Ex:

    nst: array [1..50] of Char { Declara 50 elementos para o tipo Char }

    : array[1..100] of Real { Declara 100 elementos para o tipo real }nd: Integer;inor Ind := Low(s) to High(s) do s[Ind] := 0; { Zera os elementos do array S }fSizeOf(t) = C then exit; { Se o ltimo elemento do array T for C sai do bloco } ... outros comandos... }

    d;

    Declaraes

    claraes descrevem aes de um algortmo a serem executadas.

    egin... end;

    Prende um conjunto de declaraes em um bloco de comandos determinado. A sintaxe do comando : BEGIN {comandos} END;

    gin{ ... comandos iniciais ... }

    begin{ ... bloco 1 ... }

    end;begin

    { ... bloco 2 ... }end;{ ... comandos finais ... }d;

    .. then... else...;

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (11 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    12/157

    orland

    Esta expresso escolhe entre o resultado de uma condio booleana o caminho verdadeiro (then) ou falso (else). A sintaxe do comaIF {condio} THEN {bloco de comandos} ELSE {bloco de comandos};. Ex:

    in{ ... comandos iniciais ... }if x > 2 then

    { ... Bloco verdadeiro ... }else

    { ... Bloco falso ... };d;

    oto... ;

    Transfere a execuo de um programa para o ponto determinado pelo Label. A sintaxe do comando : GOTO {Label};. Ex:

    elrimeiro;in{ ... comandos iniciais ... }if x = 2 then

    goto primeiro;

    { ... outros comandos ... }meiro:{ ... comandos do Primeiro ... }

    d;

    ase... of... else... end;

    Consiste de uma lista de declaraes que satizfaz a condio de um seletor de expresses, se nenhuma parte da lista satisfizer ao seexecuta os comandos do sub-comando else. Para o seletor sero vlidos os tipos definidos, tipo Inteiros ou LongInt. A sintaxe docomando : CASE {seletor} OF {Expresso 1}: {comando da expresso 1}; {Expresso 2}: {comando da expresso 2}; {Exprn}: {comando da expresso n} ELSE {comando}; end;. Ex:

    in{ ... comandos iniciais ... }case x of

    1: { ... Bloco para x = 1 ... }2, 3: { ... Bloco para x = 2 ou X = 3... }4..6: { ... Bloco para 4

  • 8/3/2019 biblia_delphi

    13/157

    orland

    r... to (downto)... do...;

    Incrementa em 1 uma determinada varivel inteira, repetindo um bloco de comandos, at que esta atinja o valor final do intervalo, osubcomando downto realiza o incremento reverso. A sintaxe do comando : FOR {variavel} := {valor inicial} to (downto) {valorfinal} do {bloco de comandos};. Ex:

    in{ ... comandos iniciais ... }for i := 1 to 10 do Executa o [comandos A] para i = 1,2,3,4,5,6,7,8,9 e 10

    { ... Comandos A ... }for s := 10 downto 1 do Executa o [comandos B] para i = 10,9,8,7,6,5,4,3,2 e 1

    { ... Comandos B... }d;

    hile... do...;

    Repete um bloco de comandos enquanto que determinada condio booleana seja satisfeita. A sintaxe do comando : WHILE{condio} DO {bloco de comandos};. Ex:

    in{ ... comandos iniciais ... }while i := 1 do Repete o [Bloco de comandos] enquanto i = 1

    { ... Bloco de comandos ... }d;

    eak; ou continue...;

    O comando break interrompe um bloco de repetio for, while ou repeat saindo do bloco. A sintaxe do comando : BREAK; enqque o comando continue retorna a primeira instruo do bloco de repetio for, while ou repeat. A sintaxe do comando :CONTINUE;. Ex:

    in

    ... comandos iniciais ... }or i := 1 to 10 dobegin

    if i = 8 thenbreak; Salta para os [comandos C]

    {... comandos A...}if i = 5 then

    continue; Retorna para o comando for pulando os [comandos B]{... comandos B ...}

    nd;... comandos C ...}

    d;

    Blocos de Procedimentos ou Funes

    procedures ou funes so declaradas na seo de tipos de declaraes (abaixo do comando type) pertencendo ao objetoem do tipo public (pblicas - executadas por outras unidades) ou private (particulares - restritas a unidade local).

    rocedure

    ocedure {cabealho}; var {declarao das variveis}; {bloco de comandos};

    cabealho da procedure composto pelo nome do procedimento e variveis que sero recebidas (ou modificadas atravs clarao var, ex: procedure teste(var x:string);).

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (13 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    14/157

    orland

    cedure soma(a,b: integer); Incio enviando as variveis A e B do tipo inteiro. Declarao de variveis locais.

    integer;in Corpo do procedimento.:= a + b;

    d;

    unctionction {cabealho} : {resultado}; var {declarao das variveis}; {bloco de comandos};

    funes se diferem dos procedimentos pela obrigatoriedade do retorno de um resultado, podendo este resultado ser retora declao: {nome da funo} := valor ou result := valor.

    ction soma(a,b: integer) : integer; Incio enviando as variveis A e B do tipo inteiro.in Corpo do procedimento.

    oma := a + b; ou result := a + b;d;

    Junto com oDelphi 2.0 vem o manual de Object Pascal em formato .HLP, caso a linguagem seja novidade para voconselho que voc d uma boa olhada (oDelphi 1.0 traz o mesmo manual, mas em formato .PDF), mas no se preocupe ce foi explicado acima j est mais do que suficiente para uma boa inicializao com oDelphi.

    do o que vimos a cima o que normalmente temos em outras linguagens comuns, mas o caracteriza realmente a linguageentada em Objetos o trabalho e a manipulao com os mesmos.

    Caractersticas de Objetos

    as afinal de contas, o que um objeto ? Como foi dito anteriormente, um objeto qualquer tipo de elemento, ou compone

    e envolva dados e cdigo dentro de um nico pacote.

    ma vantagem de programar na POO e quanto aHerana dos objetos, este mtodo faz com que seja possvel um objeto Fider herdar todas as caractersticas e contedos de um objeto Pai. Tirando um pouco do Pascal da geladeira (a partir doscal verso 7.0 aBorlandtornou possvel a utilizao simplificada de todo o conceito de POO) aqui vai um cdigo compdeclarao de dois objetos, o primeiro chamado de TPai e o segundo de Tfilho:

    ai = objectNome: PChar;onstructor Init (P: PChar);

    destructor Done;procedure MudaNome(P: PChar);procedure ShowName;d;

    lho = object(TPai)procedure MudaNome(P: PChar);d;

    segundo objeto TFilho herda do objeto TPai o ponteiro varivel Nome, a constructor Init, o destructor Done e a proceowName, apenas a procedure MudaNome ter o funcionamento como uma caracterstica nica para cada objeto. ODessui inmeros pais (classes de objetos) prontos para serem usados por voc, tais como:

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (14 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    15/157

    orland

    orm: Centro das aplicaesDelphi, utilizados na criao de janelas, caixas de dilogo entre outros.enu: Responsvel pela concepo de menus e menu popup.

    uttonControl: Simplifica o refinamento do controle da janela serve de base para os componentes como: Botes, Check Box e Radio Box.

    Programando com objetos Delphi

    ando iniciado oDelphi, criado automaticamente um novo projeto e um objeto formulrio (derivado da classe TForm) uporte dos demais objetos. Explorando o Editor de Cdigos (Code Editor) voc poder observar a declarao do novo obclasse TForm que foi produzido automaticamente com a criao do novo formulrio. Examinando o contedo deste cdiado para o objeto, teremos:

    t Unit1; Abertura de uma nova unidade

    erface Parmetros do obejetos

    sysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Uso de outras unidadesorms, Dialogs;

    eForm1 = class(TForm) A declarao do objeto inicia aquirivate

    Private declarations }ublic

    Public declarations }nd; Aqui o final da declarao

    rorm1: TForm1; Atribui a varivel Form1 as caractersticas do objeto TForm1

    plementation Incio da parte a ser implementada

    R *.DFM} Diretiva de compilao que agrega o desenho da tela (em.DFM) com o mesmo nome da unidade

    d. Final da parte implementada

    m novo tipo de objeto TForm1, declarado derivado da classe TForm, que tambm um outro objeto. Relembre um objetipo de elemento capaz de guardar dados e cdigo dentro de um nico pacote. At agora, o tipo TForm1 no contm cam

    mtodos, isso acontecer com a adio de alguns componentes neste objeto.

    servando o cdigo, notamos que existe uma varivel declarada com o nome Form1 para o novo tipo de objeto TForm1:

    r

    Form1: TForm1;

    rm1 a chamada de instncia ao tipo TForm1. Esta varivel refere-se ao formulrio em si, aonde ser adicionadomponentes e desenhado a interface entre o computador e o usurio que for operar o sistema. sempre notado declaraea ou mais instncias referidas ao tipo de objeto. Futuramente ser mostrado o poder deste tipo de declaraes quandoarmos sobre janela MDI (Multiple Document Interface - Interface de documento mltiplos) gerenciando vrias janelashas, no permitindo que estas janelas filhas saiam do espao criado pela janela pai.

    icionando alguns componentes ao formulrio, veremos como oDelphi completar a aplicao escrevendo automaticame

    digo, e permitindo que ao final tornar-se- possvel a compilao (lembra-se do Clipper

    , com .EXE), execuo e

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (15 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    16/157

    orland

    tribuio da aplicao.

    m nosso formulrio, colocaremos um boto que, em tempo de execuo, ao ser dado um clique com o mouse sobre este obormulrio mude sua cor. Aperte a tecla F12 para retornar a viso do formulrio e na palheta de objetos (Componnent Pa

    que no objeto (button localizado na pgina Standard) e clique no formulrio. Na janela da Object Inspectorclique nginaEvents e clique duas vezes sobre a ao OnClicke insira o seguinte cdigo:

    ocedure TForm1.Button1Click(Sender: TObject);

    ginorm1.Color := clGreen;d;

    parando no cdigo completo da aplicao, veremos:

    t Unit1;

    erface

    sysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

    orms, Dialogs;

    eForm1 = class(TForm)Button1: TButton; Um novo dado foi aqui inseridoprocedure Button1Click(Sender: TObject); Declarado um novo mtodo

    rivatePrivate declarations }

    ublicPublic declarations }

    nd;

    rorm1: TForm1;

    plementation

    R *.DFM}

    ocedure TForm1.Button1Click(Sender: TObject); O cdigo do novo mtodoginorm1.Color := clGreen;

    d;

    d.novo objeto TForm1 agora apresenta um campoButton1 - o boto que voc adicionou ao formulrio. TButton e o tipo doeto, eButton1 o objeto boto propriamente dito. Com o tempo voc colocar novos componentes ao formulrio.

    de o projeto, clicando no boto (Run), d um clique no boto e veja o que acontece. Pare a aplicao fechando a janm Alt+F4.

    S por curiosidade, salve este arquivo, feche-o e abra o arquivo UNIT1.DFM(com a opo File | Open File...) notaremoDelphi criou um arquivo com todas as propriedades dos objetos criados e que a declarao do objeto Form1 engloba todo

    ros, noes de Encapsulamento.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (16 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    17/157

    orland

    Renomeando os objetos e os componentes

    c sempre deve utilizar a janela do Object Inspectorpara renomear os objetos criados. Por exemplo, o nome padro domulrio e Form1 mude a propriedadeName para fCores. ODelphi se encarregar de mudar qualquer referncia que exisForm1. Ento o cdigo apresentar a seguinte modificaes:

    t Unit1;

    erface

    sysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,orms, Dialogs;

    efCores = class(TForm) Aqui foi modificadoButton1: TButton;procedure Button1Click(Sender: TObject);

    rivatePrivate declarations }

    ublicPublic declarations }

    nd;

    rCores: TfCores; Aqui foi modificado

    plementation

    R *.DFM}

    ocedure TfCores.Button1Click(Sender: TObject); Aqui foi modificadoginorm1.Color := clGreen; Aqui no !!!

    d;

    d.

    ODelphi modificar apenas os cdigos gerados automaticamente pr ele. Os cdigos para a ao OnClickforam gerado

    c e oDelphi no os modificar. Cabe a voc a manuteno neste caso. Isto foi idealizado para preservar o contedo origseu cdigo.

    ocedure TfCores.Button1Click(Sender: TObject);ginCores.Color := clGreen;d;

    Captulo II

    Conhecendo o Delphi

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (17 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    18/157

    orland

    voc teve algumas dvidas no captulo anterior sobre a rea de trabalho do Delphi no se preocupe, neste captulo vocder san-las completamente, tambm ser mostrado o mtodo de estrutura de aplicaes Client/Server.

    Caso voc seja usurio doDelphi 1.0 na barra de menu selecione a opo Help e Interactive Tutors, voc receber uma On-Line sobre a nova rea de trabalho.

    elementos da interfaceDelphi foram divididos do seguinte modo:

    Elementos Visveis

    ambiente de trabalho doDelphi formado por objetos que esto visveis to logo que o aplicativo seja iniciado formandoa de trabalho.

    Viso Geral dos objetos visveis do Ambiente Delphi

    Form

    formulrios (objeto Form) so os pontos centrais para o desenvolvimentoDelphi. Voc se utilizar deles para desenhar municao com o usurio, colocando e organizando outros objetos. Estes objetos so arrastados da Component Palette,strada na janela localizada acima.

    c pode imaginar que o formulrio um objeto que contm outros objetos. Sua aplicao ficar localizada em um formuncipal e este interagir com outros formulrios criados. possvel aumentar, mover ou ocupar completamente a tela donitor, ou at mesmo ultrapass-la. Um formulrio bsico inclui os seguintes componentes:

    Controles de menu;

    Botes de maximizao e minimizao;

    Barra de ttulo; e

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (18 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    19/157

    orland

    Bordas redimensionveis.

    cdigo gerado, na rea conhecida como Code Editor, fica exatamente atrs do objeto formulrio, clique na barra de notasit1, se alguma coisa for desconhecida para voc, leia maiores explicaes no Captulo I.

    possvel enviar um formulrio para a impressora, para isto existem duas maneiras:

    1. Tipo um PrintScreen de Tela, coloque o seguinte comando [Nome do formulrio].Print; no eventoonShow do formulrio; ou

    2. Para imprimir um formulrio no tamanho de um papel A4, atravs do uso de comandos da bibliotecaPrinter, veja o Apndice D para maiores detalhes.

    Code Editor

    editor de cdigos providncia total acesso ao cdigo gerado pelo projeto, incluindo alguns dos mais poderosos recursos po. Pode ser selecionado tipos de cores para os elementos do programa (como por exemplo comentrios, palavraservadas, cdigos assembler, ...) para tanto a partir do menu principal entre em Tools | Options..., localize a pgina Color

    Para outras informaes adicionais sobre o modo de usar este editor, procure referncias noHelp OnLine no tpico Cod

    itor.

    ser aberto um novo projeto, oDelphi gera automaticamente na pgina do Code Editoruma Unitcom o arquivo cdigo (S). Para ver o cdigo de uma Unitem particular, simplesmente Clickna tabulao de pgina. O Code Editormostrar seome do arquivo corrente ativo na tabulao de pgina.

    possvel alternar entre o objeto Form e a Code Editor atravs do pressionamento da tecla F12, do boto boto

    (Toggle Form/Unit) da SpeedBar, ou ainda atravs das opes do menu View | Toggle Form/Unit. (curiosidade: o aceido atravs da tecla Alt + Letra sublinhada para esta opo est marcado sobre a letra G)

    Component Palettemponentes (ou objetos) so os elementos que voc usar para trabalhar com a aplicao. Foram includos objetos em vrginas, tais como caixas de dilogos e botes, a palheta inclui tambm alguns espaos em branco para ser permitida a adivos objetos. Alguns objetos no sero visveis enquanto a aplicao estiver executando, eles fazem parte do servio da Dynamic Data Exchange).

    objetos da palheta foram divididos em grupos de funcionalidade em diferentes pginas. Por exemplo, os objetos que

    resentam as janelas tradicionais do Windows

    (tais como fontes, palheta de cores, ...) foram colocados na pginaDialoheta.

    c poder criar seus prprios objetos como tambm instalar outros j prontos, para isso foi colocado os espaos vazios. P

    emplo poder ser instalado novos controles e objetos do Visual Basic 4.0 (Objetos OCX - ou para os portadores doDe

    o do Visual Basic

    3.0 os objetos VBX). Uma das principais vantagens da POO que muito em breve dever ser colomercado pacotes de objetos prontos para serem integrados aos sistemas o que facilitar ainda mais o desenvolvimento e nuteno dos mesmos.

    Object Inspector

    ovidncia a conexo entre a interface visual e o cdigo. Composto por duas pginas Properties (propriedades) eEvents

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (19 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    20/157

    orland

    ventos) que mostrar as propriedades e eventos do objeto selecionado.

    sponibiliza um fcil caminho para a personalizao dos objetos. Voc usar a pgina de Propriedades para personalizar etos colocados no formulrio (inclusive o prprio formulrio), e a pgina de Eventos para gerenciar a navegao entre ctes do cdigo do programa.

    eletor de objetos (Object Selector - localizado em um objeto do tipo ComboBox no topo do Object Inspector) mostra o ntipo de todos os componentes do formulrio corrente (inclusive o prprio). Voc pode usar o seletor de objetos para locilmente qualquer objeto no formulrio.

    SpeedBar

    ntm os botes mais freqentemente utilizados. Fornecendo deste modo um atalho de navegao ao menu principal dolphi.

    possvel a personalizao da SpeedBarcolocando nela os caminhos do menu principal que voc mais utiliza, bastando pao:

    1. Redimensione a SpeedBar. Para tanto posicione o cursor do mouse sobre o ponto de encontro da SpeedBarcomComponent Palette conforme o desenho abaixo:

    2. Quando o cursor do mouse mudar de formato, clique o boto esquerdo do mouse e arraste abrindo a rea daSpeedBar.

    3. Clique com o boto direito do mouse na rea aberta, aparea um menu PullDown contendo entre outras opesopo Properties, selecione-a.

    4. As categorias e os comando so divididos de acordo com o menu, clique em cima dos comandos disponveis earraste-os para a rea aberta de acordo com a sua necessidade, para retirar os botes da SpeedBarfaa o processoinverso.

    Elementos no Visveis

    guns elementos no esto prontamente visveis quando oDelphi iniciado mas voc poder ter acesso a eles bastando pao selecionar a opo na barra de menu.

    Project ManagerGerenciador de Projetoscontm uma lista de formulrios ou unidades utilizados pela aplicao, e serve para controlar estmulrios ou unidades, adicionando-os ou removendo-os do projeto, organizando as opes do projeto, entre outros.

    Voc tambm poder colocar um boto para iniciar o Gerenciador de Projetos atravs da SpeedBar ,

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (20 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    21/157

    orland

    Menu Designer

    Menu Designerpermite a criao de menus para os seus formulrios. Voc pode criar menus ou menus do tipopulldownavs dos objetosMainMenu ou PopupMenu (localizado na pgina Standardna Component palette). A criao completa enus ser colocada de forma mais abrangente no Captulo IV.

    Fields Editor

    ra oDelphi possvel editar e modificar as propriedades de quaisquer campos dos objetos de tabelas associadas ao bancodos, a Fields Editorem conjunto com a Object Inspectorcontrolam o modo de mostrar determinados campos de arquivoportante lembrar que esta modificao no afetar os campos da tabela, apenas para o formulrio ativo em questo. Sualizao efetiva ser mostrada a partir do Captulo V.

    d fields... responsvel pela adio de definies de campos da tabela, possvel inserir um ou mais campos, dependendo de suaizao para o formulrio.w field... permite a criao de um novo campo, este pode ser a derivao de um ou mais campos da tabela.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (21 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    22/157

    orland

    Cut envia para rea de transferncia e elimina todas as definies do camposelecionado.Copy copia para a rea de transferncia todas as definies do campo selecionadPaste recebe da rea de transferncia todas as definies do campo selecionadocriando-o.Delete exclui quaisquer definio para os campos.Select all seleciona todas as definies dos campos.Retrieve Attributes atualiza os atributos do campo selecionado com os camposdicionrio de dados.Save attributes salva os atributos do campo selecionado para o dicionrio de da

    Save attributes as... salva os atributos do campo selecionado para o dicionrio dados permitindo a renomeao do campo.Associate attributes... faz a associao dos atributos do campo selecionado comdeterminado campo do dicionrio de dados.Unassociate attributes remove a associao dos atributos do campo selecionaddeterminado campo do dicionrio de dados.

    Repositrio de Objetos

    O Repositrio de Objetos doDelphi 2.0 armazena e gerencia os objetosaplicao: Formulrios,Data Modules, geradores experts, e DLL (Dinam

    Linked Library - Bibliotecas de acesso dinmico). Na essncia, ele centralocalizaes dos objetos envolvidos agrupado-os. A proliferao dos objetos no repositrio incrementa as seguintes vant

    Suporte a equipe de desenvolvimento para referncia aos objetos da rede.

    Uma customizao de todo o desenvolvimento em grupos lgicos de objetos, facilitando o re-uso dos mesmos.

    Delphi possui diversas caractersticas quanto a sua utilizao. Tem os Tutors eExperts que so as ferramentas responsva guiar-nos atravs de tcnicas, tais como, manipulao de componentes e criao de simples aplicaes. Alm disso olphi oferece uma coleo de modelos para formulrios, janelas de dilogo e at mesmo aplicaes completas na ferramew Items. A janela doNew Items sempre chamada automaticamente quando a opo File | New... do menu principal ecutada.

    possvel para voc criar novas janelas, ou projetos, automticos noDelphi. Para a nossa sorte a Borland no esconde oo e mostra como se cria uma template visite o diretrio\BORLAND\DELPHI 2.0\OBJREPOS,o equivalente noDelpncontrado no diretrio\DELPHI\GALLERY, todos os exemplos so auto-explicativos.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (22 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    23/157

    orland

    Para definir o projeto padro que oNew Items executar no incio de cada projeto, clique com o boto direito acima da j

    scolha a opo Properties aparecer as listas Pages e Objects, defina quaisquer dos objetos comoNew Form ouMain F

    Observe que a segunda folha da janelaNew Items (ter o nome do seu arquivo com a extenso .DPR) o seu projetorente, ou seja, uma nova janela poder ser derivada, por caracterstica de herana, de uma outra janela j existente.

    Estrutura de Aplicaes com o Delphi 2.0m dos objetivos de desenhar aplicaes do tipo Client / Serverpara o desenvolvimento a reutilizao dos objetos, das renegcio e das telas do projeto. ODelphi Client / Server Suite 2.0 o nico que implementa uma arquitetura incorporandnologia RAD (Rapid Application Development- Desenvolvimento Rpido de Aplicaes) com o desenvolvimento totalm

    O (Object Orientation - Orientado a Objetos) para a reduo do tempo de desenvolvimento e manutenes improvveis.icionando, uma arquitetura aonde possvel a separao da GUI (Grafic Unit Interface - Unidade de Interface Grfica), ras de negcio lgicas e do desenho do banco de dados de acordo com o modelo representado abaixo:

    nefcios:

    1. A separao do desenho da GUI (atravs dos objetos Forms) com a rea de ligao lgica de dados (atravs dobjetos Data Modules) permite que se cause um menor impacto sobre ambas as reas. As mudanas podem serexecutadas nas telas de entrada ou nas ligaes, independentemente, de acordo com os requerimentos do usurio.

    2. A separao do desenho da GUI com a rea de ligao lgica de dados realizada com uma certa habilidade aoseventos envolvidos, poder no necessariamente dever ser controlada por um habilidoso DBA (DatabaseAdministrator- Administrador de Banco de Dados), com suas fantsticas regras de negcio, podendo inclusive sermantida por um analista de informaes.

    3. O desenho do banco de dados, a construo das metodologias de negcio e o desenho e a criao das janelas d

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (23 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    24/157

    orland

    entrada so efetivados dentro da aplicao. O desenvolvimento, ento paralelamente, resultar em uma maior rapid

    4. Herdando as janelas de entrada, em nveis de utilizao, reduz-se drasticamente o processo de codificao, e emconseqncia, o processo futuro de manuteno. As mudanas lgicas das regras de negcio ou a incorporao de npadres, so feitas automaticamente para todos os objetos herdados.

    5. O repositrio de objetos, os formulrios reusveis e a utilizao dos objetos Data Modules, envolve em eliminda duplicao de cdigos e de trabalhos com desenhos de janelas, e em conseqncia na reduo da equipe dedesenvolvimento.

    Implementao efetiva

    Objetos Data Module

    partir doDelphi 2.0 foi incorporado o uso de objetos conhecidos por Data Module, que servem para que suas aplicaesvidenciem um desenho centralizado da definio de acesso aos dados e das regras de negcio. Os objetos Data Module

    mbm podem ser separados por negcios lgicos (como exemplo por reas: compras, vendas, estoque, etc.) formandominhos de conexes simples.

    Os objetos Data Modules podem ser aplicados a objetos tais como Tables, Stored Procedures, ou Queriespermitindo a centralizao dos eventos envolvidos em antes e depois da gravao, excluso, insero ou edio dosdados. E at mesmo na colocao de novos objetos de controle para maior facilidade.

    As relaes de dadosMaster / Detail so definidas em menor quantidade. Possibilita ento ao desenvolvedor caplicaes do tipo Client / Serverde forma mais fcil, rpida, e segura se utilizando das propriedades dos objetosDatasources ou utilizando o Database Form Expert.

    Os formulrios das aplicaes, podem ser ligados diretamente a um ou mais objetos Data Module para apropagao das regras de negcio sem a necessidade de execuo de um cdigo extra.

    Os objetos Data Modules so classes de objetos que pertencem a interao dos dados do database server. Isol

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (24 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    25/157

    orland

    totalmente o acesso ao banco de dados com a aplicao Client,simplificando deste modo toda a manuteno realiza

    O Acesso aoDelphi aos bancos de dados se processa da seguinte maneira:

    stribuio Lgica da Aplicao:objetos Data Module foram desenvolvidos para criar uma centralizao lgica de todas as regras de negcio, separandoa de viso do usurio com a rea do desenho do Banco de Dados. Este slido fundamento de suporte so distribudos em

    nmero de aplicaes e arquiteturas servidoras disponveis, tais como CICS da IBM, TopEnd da ATT, Tuxedo da Novject Broker da Digital, IONA da Orbix e muitas outras.

    Dicionrio de Dados Escalvel

    dicionrio de dados utilizado para armazenar informaes sobre o uso dos dados contidos nas suas tabelas. O dicionrve ser como uma rvore genealgica trabalhando como um inspetor de modificaes que permitem um armazenamento

    ilitado. O dicionrio deve conter informaes dos atributos dos campos tais como: valores mnimo, mximo e comunslores default), mscaras utilizadas, etc. A utilizao do dicionrio de dados traz as seguintes vantagens:

    1. Consistncia: Campos idnticos so armazenados centralmente no dicionrio isto reduz o tempo de definioduplicidades. Um desenvolvedor poder criar os campos complementares com domnios e aplicaes apropriadas.

    2. Reduo do Trfico da Rede: ODelphi permite que a validao dos dados seja feita nas mquinas clientou nservidor. O Dicionrio de dados permite que a manuteno dos atributos dos campos do lado clientseja validado deforma eficiente reduzindo a necessidade do trfego da rede.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (25 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    26/157

    orland

    Herdando os Formulrios

    desenvolvimento de aplicaes corporativas de uma forma padronizada um fato de suma importncia para as empresasvolvidas. Mas conseguir e manter este padro uma tarefa considerada praticamente impossvel, j que as aplicaes devmodernizar na velocidade que o mercado de informtica exige. Os formulrios herdados doDelphi so simples extensegramao orientada a objetos, conseguindo manter, de forma automtica, os padres e as modificaes realizadas nosjetos. E em conjunto com o Repositrio de Objetos, padroniza, organiza e centraliza os formulrios resultando emdificaes de curtssimo tempo.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (26 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    27/157

    orland

    Ferramentas Auxiliares de SQL

    ra o trabalho com bases de dados padro SQL (Structure Query Language - Linguagem estruturada de Consultas), oDelnta com as seguintes ferramentas RAD que auxiliam ao desenvolvimento.

    Monitor SQL

    m monitor SQL um ferramenta para testes, depurao e execuo de consultas SQL em aplicaes Client / Server. Istoulta em um aumento da produtividade de desenvolvimento e melhor performance da aplicao.

    monitor SQL, intercepta as chamadas entre as mquinas cliente o servidor. Esta informao auxilia ao desenvolvedor eblemas relacionados as declaraes SQL e otimiza este tipo de transao. Uma srie de caminhos de interceptaes podtraados, dependendo da necessidade do desenvolvedor, para que as informaes a serem colocadas em um relatrio on

    am as mais imprescindveis o possvel. possvel inclusive salvar e imprimir o relatrio gerado para consultas ou testessteriores.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (27 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    28/157

    orland

    SQL Explorer

    ferramenta SQL Explorer providencia uma informao centralizada do gerenciamento das demandas da base de dados; tmo, suporte a modificao e criao de tabelas, sinnimos, procedimentos de gravao, triggers (gatilhos disparados pelonco) e execuo das regras de negcio interativas do SQL. Uma ferramenta grfica que proporciona um esquema deegridade da base da dados e contm as ferramentas essenciais para os administradores de bancos de dados.

    SQL Explorer, unicamente para oDelphi, administra de forma intuitiva e fcil o banco de dados. A simplicidade de usoerface grfica um perfeito caminho para representar o complexo relacionamento que existe no banco de dados do serviresenta um esquema para informaes em bancos como Oracle, Sybase, InterBase, Informix, DB2 e outros. Oenvolvedor poder trilhar campos, tabelas e procedimentos do banco dentro da construo da aplicaoDelphi rapidame

    dendo ser direcionado para mltiplos servidores e mltiplos bancos.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (28 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    29/157

    orland

    SQL Explorer, tambm administra o Dicionrio de Dados. Sua interface de uso simplicado permite facilmente definir nmnios para os atributos dos campos e associao entre tabelas.

    InterBase NT - Banco de Dados Relacional

    Delphi Client / Server Suite 2.0 inclui uma licena para dois usurios do uso do banco de dados InterBase NT.senvolvedores podem criar em mquinas standalone aplicaes usando este poderoso banco de dados (concorrente de bamo Oracle, Sybase, Informix, DB2 e outros). Com o crescimento do volume de dados e do tamanho da aplicaobos, o InterBase e oDelphi conseguem interagir de forma harmoniosa.

    InterBase um banco de dados de alta performance produzido pela Borland, como plataforma para SQL Server. Estponvel em mais de 15 sistemas operacionais incluindo: DOS e Windows 3.1, Windows 95, Windows NT, NetWO, Sun OS, Sun Solaris, HP-UX, IBM AIX, SGI IRIX, etc.

    InterBase um banco a nvelANSI SQL 92, suportando eventos programados e excees ocorridas no modelo por acessltiplos usurios. Oferece chaves de controle a nvel de registros para arquiteturas Multi-Gerenciais causando um performito superior a uma leitura das operaes de banco, em contrrio das leituras de blocagem de operaes escritas realizadaros bancos.

    verso local do InterBase, disponvel apenas com a cpia Client / Server Suite 2.0, providencia aos desenvolvedores umminho rpido para o desenvolvimento de prottipos e de sistemas com um banco de padroANSI 92 SQL. Esta verso

    picia as mesmas funcionalidades da verso multi-usurio para NT e Unix, incluindo controles de transaes, procedimegravao (stored procedures), uso de triggers (gatilhos disparados do banco), ou eventos de alerta. Imagine oenvolvimento de um grande sistema sendo realizado em umLaptop dentro de um trem, avio ou at mesmo na frente do

    ente, apenas o acesso ao banco de dados final que ser modificado.

    lizando oDelphi Client/Server Suite 2.0, desenvolvedores podero conceber e desenhar prottipos e testar a aplicao fiuma nica mquina. O InterBase oferece um excepcional acesso a interface grfica do Windows, incluindo a configu propriedades, um perfeito gerenciador de bancos nativo 32 bits, total interatividade com ferramentas SQL, e uma comp

    cumentao em formato deHelp do Windows (arquivos .HLP).

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (29 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    30/157

    orland

    Captulo III

    Projeto Piloto

    bvio que fica mais simples o aprendizado de uma nova ferramenta quando se faz algum tipo de aplicativo, principalmene seja til, ento ao longo deste estudo, iremos desenvolver um aplicativo destinado ao Cadastro de Compact Disc (CDsdas as pessoas hoje em dia tem montes de CDs, virou uma espcie de febre, ento, porque no fazer um sistema para

    dastr-los e control-los, quanto tempo voc j perdeu pensando em qual deles est aquela msica que voc quer ouvir? Oa capa que seu filho rasgou, que tal imprimi-la novamente? E no captulo multimdia aprenderemos um mtodo para toca

    D.

    ra darmos partida ao nosso primeiro aplicativo (Projeto Piloto), definiremos inicialmente as nossas necessidades:

    1. Permitir o cadastro completo e a consulta aos CDs;

    2. Ser possvel separar os CDs em categorias, facilitando deste modo a busca e o armazenamento;

    3. Quanto as msicas deve ser permitido o cadastro do autor e o tempo de durao;

    4. Permitir a incluso da foto da capa do CD; e

    5.

    Comportar relatrios de conferncia e reimpresso da capa.acessoDelphi a arquivos pode ser feito atravs de duas maneiras local ou remoto, sendo a segunda apenas possvel pela c

    IENT-SERVER voltadas a bases de dados mais complexas como ORACLE

    ou SYBASE

    , inicialmente, restringiremsso estudo a base de dados locais conseguida atravs da verso Desktop. Lembre-se que versoDesktop contm acessoao e a definio de bases dBase e Paradox, alm de outras conseguidas atravs de ODBC.

    m base no que foi sugerido acima, vamos definir as tabelas:

    TEGORIAetivo: Dados das categorias do CD.

    mpos: SIGLA DA CATEGORIA - Abreviao da descrio da categoria.

    SCRIO DA CATEGORIA - Descrio da Categoria.

    SICOetivo: Dados iniciais do CD.

    mpos: CDIGO DO DISCO - Cdigo do CD, encontrado na prpia capa.ME DO DISCO - Nome do CD.

    PO DO DISCO - Tipo de Gravao do CD: AAA, AAD, ADD ou DDD.TO DA CAPA - Armazenar a foto da capa do CD.

    GLA DA CATEGORIA - Ligao para o cdigo da Categoria.

    SICAS

    etivo: Dados das msicas do CD.mpos:DIGO DO DISCO - Ligao com o CD.

    UMERO DA FAIXA - Nmero da faixa.ME DA MSICA - Ttulo da msica.ME DO AUTOR - Nome do autor da msica.MPO DA MSICA - Tempo de durao da msica MMSS.

    Criando o Modelo Relacional

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (30 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    31/157

    orland

    ra criar um modelo relacional simples e trabalhar com bases locais voc pode optar por dois modos do tipo dBase ou Particularmente eu prefiro trabalhar com Paradox, mas voc rapidamente notar que tanto faz, trabalhe com aquela que vocta mais a vontade.

    Escolha a base de acordo com o porte do sistema: Para sistemas pequenos e simples e com poucos dados use o dBase, p

    temas mdio, multi-usurio, com uma boa quantidade de dados escolha a base Paradox e para sistemas complexos em vtaformas e acessos multi-usurio opte porInterBase.

    mos agora visualizar um modelo que demonstrar como as tabelas devero se relacionar no sistema, este modelo tambm

    ilitar as relaes e a integrao dos formulrios do sistema quando construiremos nossas consultas e relatrios.

    modelo de entidade e relacionamento acima l-se:

    1 registro da entidade Bsico se relaciona com 1 registro da entidade Categoria enquanto que 1 registro daentidade Categoria se relaciona com n registros da entidade Bsico,

    1 registro da entidade Msicas se relaciona com 1 registro da entidade Bsico enquanto que 1 registro da entidBsico se relaciona com n registros da entidade Msica.

    m o MER nas mos j se tem a idia de como deve ficar as estruturas das tabelas, ento, vamos queimar um pouco deurnios.

    Trabalhando com DataBase Engine Configuration

    Criando o Alias

    ALIAS simplesmente um apelido (sinnimo) a ser dado para o banco de dados, este apelido permitir que no lugar de

    armos para aoDelphi que a nossa base se encontra em C:\SISTEMA\... ou D:\DESENV\SISTEMA\..., simplesmente digencontra em AliasX ou AliasY, isto facilitar o seu trabalho quando voc por exemplo quiser modificar o diretrio dotema, basta mudar o endereo do ALIAS e no sair modificando vrios formulrios.

    Outra vantagem em se criar um Alias est na mudana da base, basta reapontarmos o Alias para outra base que o sistem

    omaticamente ver estas novas informaes. Lembre-se que para isto ser possvel necessrio que o nome das tabelas empos sejam necessariamente os mesmos, incluindo o tamanho e o tipo (no apndice B encontrado uma tabela para anverso das diversas bases de dados).

    ra trabalhar com ALIAS o caminho mais interessante e com oDatabase Engine Configuration, no arquivo de programas

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (31 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    32/157

    orland

    lphi d um duplo clique sobre o cone , a configurao do banco de dados se divide em vrias pginas:

    Drivers - Controla os arquivos de acesso locais e ODBC dos bancos de dados utilizados;

    Aliases - Controle dos sinnimos dos sistemas;

    System - Define os recursos do Windows que sero alocados pela aplicao;

    Date - Especifica os fo rmatos utilizados para campos tipo data;

    Time - Especifica os formatos utilizados para campos tipo hora; e

    Number - Especifica os formatos utilizados para campos tipo numrico.

    atualmente voc estiver utilizando a verso de desenvolvimento, os drivers que aparecero sero: dBase, InterBase eradox, na verso Client/Serveralm desses sero colocados: Oracle, Informix, SyBase entre outros.

    ude para a pginaAliases e click no boto New Alias, informe:

    w alias name: AliasDiscoas type: STANDARDto OK

    th: C:\SISTEMA\CADDISCOfault Driver: Paradox

    ste momento o seu ALIAS AliasDisco foi criado para a banco de dados Paradox, no formato Padro localizado no diretSTEMA\CADDISCO, no menu principal escolha a opo File e Save, oBDEsalvou o seu arquivo de configurao chamAPI.CFG.

    Crie com o Gerenciador de Arquivos o diretrio C:\SISTEMA\CADDISCO, aonde ser localizado o sistema.

    Para a base dBase a nica diferena seria o comando Default Driver: DBASE.

    cerre oDatabase Engine Configuration.

    Trabalhando com DataBase DeskTop

    Criando o Banco de Dados via Estrutura

    ra criar suas tabelas, dispe-se de duas maneiras: o modo declaraes em SQL ou pela janela de estrutura, inicialmente,lizaremos a janela de estrutura, pois alm de mais simples mais prtico, a menos que voc trabalhe com bases de acesso

    moto, evite o modo declaraes em SQL para manusear a estrutura de tabelas, principalmente tabelas simples como o caParadox ou o dBase, apesar que existem muitos fanticos por CREATE TABLE,ALTER TABLEeDROPs. Em seguidastrarei como criar as mesmas tabelas utilizando o mtodo SQL.

    Lembre-se de apagar as tabelas antes de cri-las novamente. Seno no ser possvel executar uma nica declarao SQ

    torne aoDelphi, no menu principal escolha a opo TOOLS|DataBase DeskTop, maximize a tela para permitir uma me

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (32 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    33/157

    orland

    ualizao.

    m o nosso sinnimo (ALIAS) criado iremos agora definir as nossas tabelas. Inicialmente vamos definir como nossa reabalho: No menu principal, opo File|Working Directory..., na opo Aliases: selecione AliasDisco, note que a opoorking Directory ser automaticamente modificada para :AliasDisco:, finalmente confirme clicando no boto OK. Oetrio apontado pelo Alias, agora ser o default, ou seja, tudo o que fizermos ser apontado para o diretrio.

    menu principal, opo File, opo New, e opo Table..., ser mostrada uma janela com os tipos de possveis repositr

    elas no Table Type escolha a opo Paradox 7 e clique no boto OK. Insira os seguintes campos:Field Name Type Size Key

    COD_DISCO N *

    NOM_DISCO A 60

    TIP_DISCO A 3

    FOT_CAPA B 3

    SIG_CATEG A 2

    Dos campos, o nico que merece uma explicao e FOT_CAPA ele foi escolhido neste formato (Binary) pois guardar u

    agem BitMap (extenso .BMP) da Capa do CD, todos os outros campos so caracteres alfanumricos, com a exceo do

    OD_DISCO que um campo Numrico e chave.

    ra esta tabela precisamos ainda criar um ndice secundrio, para tanto na opo Table properties: chame a opo Secon

    dexes e clique no boto Define..., marque no campo Nom_Disco (na lista Fields) e clique no boto o campo passoustaIndexed Fields, clique no boto OK e digite SI_NomDisco para o nome do indice e clique no boto OK.

    ra salvar sua tabela clique no boto Save as... na opo Nome do Arquivo: insira o nome da tabela - Basico.

    e agora as seguintes tabelas:

    Categor

    Field Name Type Size KeySIG_CATEG A 2 *

    DES_CATEG A 40

    Musica

    Field Name Type Size Key

    COD_DISCO N *

    NUM_FAIXA N *

    NOM_MUSICA A 60

    NOM_AUTOR A 40

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (33 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    34/157

    orland

    TMP_MUSICA A 4

    Criando os Relacionamentos via Estrutura

    relacionamentos entre as tabelas poderia ter sido criado no momento da construo das mesmas, mas acredito que destedo seja mais simples, a partir do menu principal, opo File, opo Open, e opo Table..., ser aberto uma janela com

    tabelas, clique na tabela BASICO e sua estrutura ser mostrada, clique no boto Restructure, ou a partir do menuncipal, opo Table, opo Restructure..., na opo Table properties: alterne para a opo Referential Integrity e cliboto Define..., no lado esquerdo (Lista Fields) d um duplo clique no campo SIG_CATEG e no lado direito (Lista Tabum duplo clique na tabela CATEGOR.DB, clique no boto de OK para confirmar e ser solicitado o nome para o ndice

    ra o nome do ndice crie um padro de FK_ + {nome do campo} + {nome tabela pai}, uma padronizao dos nomes dosices facilita a procura futuramente, ento para o nosso ndice crie FK_SigCateg_Basico.

    e agora o outro relacionamento entre a tabela MUSICA e BASICO conforme a figura abaixo:

    Tambm possvel acessar oDatabase Desktop atravs do cone localizado no grupo de trabalhoDELPHI.

    cerre oDatabase Desktop e retorne aoDelphi, ou apague as tabelas e...

    Criando o Banco de Dados via SQL

    ra os fanticos por declaraes SQL, vamos criar a mesma base de dados via SQL, se voc ainda no o fez, observe no tperior como colocar o ALIAS na rea de trabalho. Isto ser de muita utilidade quando formos salvar o nosso trabalho.

    menu principal, opo File, opo New, e opo SQL File, ser mostrada uma janela para ser digitada a declarao SQL

    serve na barra de comandos o boto Select Alias, ou a partir do menu principal opo SQL/Select Alias..., apenasserve que a rea de trabalho Work j est selecionada, clique em OK ou Cancel sem fazer nenhuma modificao, observtulo da janela SQL Editor :WORK:.

    gite o seguinte na janela:

    eate Table Basico(COD_DISCO Numeric(4,0),NOM_DISCO VarChar(60),TIP_DISCO Char(3),FOT_CAPA Blob(3,2),SIG_CATEG Char(2),Primary Key(COD_DISCO));

    que no boto Run SQL, ou no menu SQL/Run SQL, ou ainda pressione F8, aps executado o comando a tabela seada. Salve o SQL com a opo File/Save (digite BASICO .SQL)

    ra novas janelas e crie o resto das tabelas:

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (34 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    35/157

    orland

    eate Index SI_NomDisco on Basico (NOM_DISCO); Criando o indice secundrio da BASICO

    eate Table CATEGOR Criando a Tabela CATEGOR

    SIG_CATEG Char(2),DES_CATEG VarChar(40),Primary Key(SIG_CATEG);

    eate Table MUSICA Criando a tabela MUSICACOD_DISCO Numeric(4,0),NUM_FAIXA Numeric(2,0),NOM_MUSICA VarChar(60),NOM_AUTOR VarChar(40),TMP_MUSICA Char(4),Primary Key(COD_DISCO, NUM_FAIXA);

    SQL para o Paradox no consegue executar a criao de indices referenciais (ou Constraints) ento para criar este tipo ice crie-o atravs da janela de estrutura conforme mostrado anteriormente.

    Observaes da utilizao do SQL com o dBase

    elizmente o dBase no suporta a clusula Primary Key que permite a criao dos ndices muito menos a criao de chaverangeiras. Quanto as chaves estrangeiras no se preocupe pois oDelphi consegue manipular relacionamentos entre as tabsmo que elas no estejem vinculadas.

    so voc esteja utilizando este tipo de base os passos para as criaes das tabelas so os mesmos mas corte as clusulasmary Key necessrio criar os ndices separadamente. Abra uma nova declarao SQL, idntica a anterior, e digite o segjanela:

    eate Index PK_Unica on Basico (COD_DISCO);

    O comando correto para este ndice deveria ser Create Unique Index PK_Unica on Basico (COD_DISCO); mas istvoca um erro colocando que no possvel esta declarao, ento coloque a clusula UNIQUE atravs da janela de estr

    Se voc esqueceu de ativar o Select Alias coloque Create Index Cod_Disco on Basico.dbf (COD_DISCO);

    outras declaraes so:

    eate Index SI_NomDisco on Basico (NOM_DISCO); Criando o indice secundrioeate Index FK_SigCateg_Basico on Basico (SIG_CATEG); Criando a chave estrangeiraeate Index PK_Unica on Categor (SIG_CATEG); Criando a chave primria

    eate Index FK_CodDisco_Musica on Musica (COD_DISCO); Criando a chave estrangeira

    O comando correto para a criao da chave dupla da tabela MUSICA seria Create Index Chv_Unica on MusicaOD_DISCO, NUM_FAIXA); mas novamente provocado um erro mostrando a impossibilidade de execuo do comao crie este ndice atravs da janela de estrutura.

    facilmente percebido que oDataBase DeskTopat que tenta colocar todas as bases de dados compatveis com a linguL, mas infelizmente ainda no foi nesta verso.

    Para as tabelas do tipo ORACLE, INTERBASE, SYBASE e MS SQL Server a criao das tabelas podem ser feitas tanto

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (35 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    36/157

    orland

    do de estrutura quanto pelas declaraes SQL mas lembre-se que a alterao das mesmas s poder realizar-se atravs ddo de declaraes SQL. Aqui vo alguns exemplos destas declaraes:

    eate Table MUSICA Criando a tabela MUSICA

    COD_DISCO Numeric(4,0),NUM_FAIXA Numeric(2,0),NOM_MUSICA VarChar(60),TMP_MUSICA Char(4),Constraint PK_Unica Primary Key(COD_DISCO, NUM_FAIXA),

    Constraint FK_CodDisco_Musica Foreign Key (Cod_Disco)References USUARIO_AGENDA (Cod_ Disco)

    TER TABLE MUSICA ADD NOM_AUTOR VarChar(40) Adiciona o campo Nom_Autor

    OP TABLE MUSICA; Elimina a tabela MUSICA

    cerre oDatabase Desktop e retorne aoDelphi.

    Captulo IV

    Trabalhando com o Menu

    alquer projeto precisa de um menu, fica mais prtico para o nosso usurio navegar dentro de um projeto quando este mitado por um menu principal, iniciaremos o nosso projeto noDelphi com a criao do Menu Principal do Sistema.

    Metendo a Mo na Massapartir deste ponto, nossa aula se transforma em receita de bolo, a nica coisa que voc precisa fazer e seguir as orientaso a passo, no princpio pode parecer meio idiota, mas afinal o computador uma mquina idiota. Bom, vamos entotendo a mo na massa.

    Ao iniciar oDelphi, foi criado automaticamente um novo projeto, vamos descart-lo e iniciar um novo. Para ta1. Lembre-se: no captulo anterior criamos o diretrio que abrigar o sistema a ser desenvolvido - C:\SISTE\CADDISCO - aprendemos o que o Alias e estruturamos as nossas tabelas, se algum destes conceitos ficaramdispersos eu lhe aconselho que retorne ao captulo anterior

    2. Crie um novo projeto digitando File e New Application. (Responda negativamente quaisquer mensagem p

    gravar o projeto atual).

    Criando a janela do menu

    anela do menu principal e bem simples, como voc j deve ter visto em vrios aplicativos o menu o objeto que ficavindo de pano de fundo para toda a aplicao, todo o trabalho e realizado com o auxlio de suas chamadas, em conjunto

    menu teremos trs formulrios gerenciadores que daremos o nome de:

    F_Menu - Menu principal propriamente dito;

    F_Sobre - A janela Sobre o sistema...; e

    F_Inicio - Janela Splash que iniciar o nosso aplicativo.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (36 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    37/157

    orland

    Vamos criar inicialmente o nosso menu principal:

    1. Clique no boto (Main Menu), localizado na Component Palette na pgina Standard, e clique dentroobjeto Form1 (no se preocupe com a posio, pois este objeto ficar invisvel quando o aplicativo for executa

    Foi criado neste momento o objetoMainMenu1 derivado da classe de objeto TMainMenu, a partir deste objetovamos criar nosso menu:

    2. D um duplo clique em cima do objeto, ou clique na propriedade Items da Object Inspectoraparecer o bo

    . Clique neste boto. Observe a tela de propriedades do Object Inspector, neste momento vou me conter em falar das mais significamas futuramente retomaremos o assunto:

    Caption - Define o nome do item de menu, quaisquer nomes so vlidos, incluindo acentos, o caractere especi& deve ser colocado uma nica vez, ele causa o sublinhado da letra, tornando-a uma letra (em conjunto com tecla Alt) de acesso a opo.

    Enabled - Define se o item est disponvel ou no para o usurio.

    Name - Nome interno do item (colocado automaticamente na escolha do Caption).

    ShortCut - Combinao de teclas, para um rpido acesso ao item (alm da letra escolhida com &).

    Inserindo os itens iniciais:1. Digite &Arquivo na propriedade Caption, em seguida pressione a tecla Enter.

    2. Clique no novo espao aberto, criado lateralmente, e digite &Consulta na propriedade Caption, em segupressione a tecla Enter.

    3. Proceda da mesma forma criando as opes: &Relatrio e Au&xlio.

    4. Clique na opo Arquivo, aparecer um espao vazio abaixo, clique neste espao e digite &Tabela napropriedade Caption. Ao ser dado Enter oDelphi criar mais um espao abaixo, digite &Cadastro napropriedade Caption.

    5. Abaixo do Cadastro, digite - (sinal de menos) na propriedade Caption (oDelphi criar uma barra deseparao) e altere a propriedade Enabled para False.

    6. No novo espao criado, aps a barra, digite &Sair na propriedade Caption e altere a propriedade ShortCpara Ctrl+X.

    7. Clique na opo Tabela, clique com o boto direito do mouse, aparecer um menu pulldown, clique na opCreate Submenu.

    8. Digite &Categoria na propriedade Caption.

    Complete os prximos itens de modo que o menu fique:

    Arquivo Consulta Relatrio Auxlio

    Tabela Categoria CDs Geral Sobre o sistemaCadastro Msica por CDs Capa do CD Contedo

    Sair Ctrl+X Configura Impressora Tpicos de Ajuda

    Como usar a Ajuda

    Saia da janelaMenu Designerdigitando Alt+F4, o menu j existe no objetoform1.

    Altere as seguinte propriedades para o objetoform1:

    Propriedade Valor Descrio

    BorderStyle Single Estilo da borda da janela; modo simples.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (37 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    38/157

    orland

    Caption Compact Disc Digital Audio Label escrito na tarja superior da janela.

    Color clMenu Cor da janela, clMenu uma constante que guarda a cor padro dajanela definido pelo usurio no Windows.

    Name F_Menu Nome do objeto interno.

    WindowsState wsMaximized Modo de abertura da janela, modo Maximizado.

    Salvando o formulrio e o projeto:1. Salve o Formulrio nas opes de menu File e Save (ou pressione Ctrl+S), oDelphi questionar o nome ediretrio, o diretrio (conforme criado no captulo anterior) o C:\SISTEMA\CADDISCO e para o nome dig

    fMenu (note que o nome externo e o mesmo do nome interno diferenciado por _, isto facilitar a identificaformulrio e da sua unidade).

    2. Salve o Projeto digitando File e Save Project, salve o projeto no diretrio C:\SISTEMA\CADDISCO conome CDDA.

    Criando no menu uma linha de status:

    3. Clique no boto (StatusBar) na pgina Win95 da Component Palletee clique em qualquer posio doobjeto F_Menu.

    4. Clique no objeto criado StatusBar1 em seguida clique na propriedade Panels, para alterar esta propriedade

    clique no boto , aparecer a janela da Status Bar Panels Editor, clique sobre o boto New e para a proprieText coloque Bem vindo ao sistema... e clique no boto OK.

    5. Altere tambm a propriedadeName do objeto para LinhaStatus

    Caso voc esteje usando oDelphi 1.0 crie a barra de status do seguinte modo:

    1. Clique no boto (Panel) na Component Palletena pgina Standarde clique em qualquer posio doobjeto F_Menu.

    2. Clique no objeto criado StatusBar1 e altere as seguintes propriedades:

    Propriedade Valor Descrio

    Align alBottom Alinhamento dentro doform, todo no rodap

    Alignment taLeftJustify Alinhamento da Caption, justificado esquerda

    BevelInner bvLowered Borda 3D interna, tipo pressionado

    BevelOuter bvLowered Borda 3D externa, tipo pressionado

    BorderWidth 1 Tamanho da borda

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (38 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    39/157

    orland

    Caption Bem vindo ao sistema... Label do objeto

    Name LinhaStatus Nome do objeto

    Font MS Sans Serif, Estilo da fonte:Normal, Tamanho: 8, Cor: AzulMarinho

    Tipo de letra a ser mostrada no objeto, para alterar esta propriedade

    clique no boto

    Height 22 Altura do objeto

    Inserindo os Cdigos Iniciais

    mos inserir o cdigo para o objetoLinhaStatus, este objeto receber os contedos da propriedade hint dos diversos objetmando assim uma linha de ajuda on-line na parte inferior do menu.

    Clique no boto (Toggle Form/Unit) da SpeedBar, at voc alternar para o Code Editor.

    Abaixo da declarao: Private insira os cdigos:vate Procedures ou Funes Locais.Private declarations }

    procedure ShowHint (Sender: TObject); Cabealho de uma procedure Local.blic Procedures ou Funes Pblicas.

    Public declarations }

    d; Final da seo de declarao.

    Abaixo da diretiva de compilao: {$R *.DFM}R *.DFM} Diretiva de compilao associando o nome do

    recurso externo ao mesmo nome do objeto Form.ocedure TF_Menu.ShowHint (Sender: TObject); Cabealho da Procedure associado ao nome dogin objeto principal (TF_Menu).LinhaStatus.Panels.Items[0].Text := Application.hint; Atribui o valor do hint da aplicaco ao end;

    Item criado do objeto LinhaStatus.

    Clique no boto (Toggle Form/Unit) da SpeedBar, at voc alternar para o Form clique no objeto F_MenpginaEvents da Object Inspector, d um duplo clique no evento OnCreate.

    1. ODelphi criou a procedure FormCreate a ser iniciada quando o objeto F_Menu for criado.

    2. Digite o seguinte comando abaixo do comando begin:

    ocedure TF_Menu.FormCreate (Sender: TObject);ginApplication.OnHint := ShowHint; Atribui o valor da procedure ShowHint ao OnHint dad; aplicao.

    Clique no boto (Toggle Form/Unit) da SpeedBar, at voc alternar para o Form clique no objetoMainMe entre noMenu Designer, e para cada opo de Menu altere as propriedades hinte name do seguinte modo:

    o do Menu Hint Namequivo Cadastro e sada do sistema. Arquivo1bela Informaes bsicas do sistema. Tabela1egoria Tipos de categoria para os CDs. ItemTabela1

    dastro Incluso e manuteno dos CDs. Cadastro1r Sada do sistema e retorno ao Windows. Sair1nsulta Verificao e pesquisa dos CDs cadastrados. Consulta1s Localizao dos CDs atravs de um filtro estabelecido. ItemConsulta1s por msica Localiza o CD atravs de um ttulo de uma msica. ItemConsulta2

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (39 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    40/157

    orland

    atrio Emisses em papel dos CDs cadastrados. Relatorio1ral Impresso dos CDs por um intervalo de cdigo. ItemRelatorio1pa do CD Impresso de capas para os CDs. ItemRelatorio2nfigura Impressora Verifica a impressora a qual ser destinado os relatrios. ConfImpressora1xlio Formas de ajuda direta ao sistema. Auxilio1bre o sistema Ajuda direta com o responsvel pelo desenvolvimento. ItemAuxilio1ntedo Manual On-Line direto. ItemAuxilio2picos de Ajuda Exibe os tpicos de ajuda do Manual On-Line. ItemAuxilio3mo usar a Ajuda Mostra como utilizar o Auxlio On-Line. ItemAuxilio4

    Saia doMenu Designer, salve o formulrio e o projeto.

    Rode o projeto, clicando no boto da SpeedBar, ou no menu principal a opo Run e Run, ou ainda, digi

    Teste as opes do menu, veja na linha de Status os hints informados, saia com Alt+F4.

    Caso voc esteje usando oDelphi 1.0 troque a procedure ShowHint para:

    ocedure TF_Menu.ShowHint (Sender: TObject);gininhaStatus.Caption := Application.hint; Atribui o valor do hint da aplicaco a Propriedade end;

    Caption do objeto LinhaStatus.

    Iniciando os comandos do Menu

    m o menu pronto, comearemos a codificar os comandos que disponibilizamos ao nosso usurio:

    Automatizando o Comando SAIR: No objeto F_Menu, clique na opo Arquivo e clique na opo Sair. ODecriou o evento Click para o objeto Sair1.

    Digite o seguinte comando abaixo do begin:ocedure TF_Menu.Sair1Click (Sender: TObject);ginClose; proporciona o fechamento do formulrio ativo

    d;

    Colocando os comandos para o Auxlio

    Delphi implementa o auxlio on-line de maneira prtica e eficiente, no ensinarei aqui como construir um arquivo .HLP,stem diversos aplicativos que j o fazem automaticamente e fica a seu critrio o modo de cri-lo, apenas mostrarei comoplement-lo em seu projeto.

    Clique na opo Project | Options... e na pginaApplication localize o seu arquivo com a opo Help file,aproveite tambm para nomear o projeto, com a opo Title e colocar um cone para o projeto, opo Icon (clique boto Load Icon...) e ao trmino clique no boto OK.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (40 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    41/157

    orland

    Automatizando o Comando CONTEDO: No objeto F_Menu, clique na opo Auxlio e clique na opoContedo. Digite:

    ocedure TF_Menu. ItemAuxilio2Click(Sender: TObject);ginApplication.HelpCommand(HELP_CONTENTS, 0); Chama o arquivo de Ajudad;

    Automatizando o Comando TPICOS DE AJUDA: No objeto F_Menu, clique na opo Auxlio e clique naopo Tpicos de Ajuda. Digite:

    ocedure TF_Menu. ItemAuxilio3Click(Sender: TObject);nstEmptyString: pChar = ''; Cria uma constanteginApplication.HelpCommand(HELP_PARTIALKEY, LongInt(EmptyString)); Tpicos do Ajudad;

    Automatizando o Comando COMO USAR A AJUDA: No objeto F_Menu, clique na opo Auxlio e clique nopo Como usar a Ajuda. Digite:

    ocedure TF_Menu. ItemAuxilio4Click(Sender: TObject);ginApplication.HelpCommand(HELP_HELPONHELP, 0); Chama o auxlio do Windowsd;

    Quando fecharmos a nossa aplicao e necessrio que tambm desativemos o auxlio, no objeto F_Menu, cliqupgina de Events e clique no evento Destroy. Digite:

    ocedure TF_Menu.FormDestroy(Sender: TObject);ginApplication.HelpCommand(HELP_QUIT, 0); Desabilita o auxliod;

    Saia doMenu Designer, salve o formulrio e o projeto.

    Rode o projeto e teste as opes do menu, saia com Ctrl+X ou utilize o comando Sair.

    Caso o F1 no ative o auxlio On-Line, provavelmente o seu menu est com a propriedade FormStyle em modo fsMDIFoque-a no modo fsNormal. Se mesmo assim ainda no funcionou, mude a propriedadeHelpContextdo formulrio para

    As palavras-chaves para o comando HelpCommand so:

    mando Dados Ao

    LP_CONTEXT Inteiro longo, contendo o nmero docontexto. Mostra o auxlio a partir de tpico selecionadoidentificado a partir do nmero do contexto definidopela seo [MAP] do arquivo .HPJ

    LP_CONTENTS Ignorado. Normalmente passado 0. Mostra o contedo do primeiro tpico definido pelaseo [MAP] do arquivo .HPJ

    LP_SETCONTENTS Inteiro longo, contendo o nmero docontexto que foi designado como tpicode contedo.

    Determina a chamada do tpico determinado atravsdo uso da tecla F1

    LP_CONTEXTPOPUP Inteiro longo, contendo o nmero docontexto.

    Mostra uma janela Pop-Up com um tpico particularindentificado pelo nmero do contexto definido pelaseo [MAP] do arquivo .HPJ

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (41 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    42/157

    orland

    LP_KEY Ponteiro longo como uma stringcontendo o tpico designado.

    Mostra um tpico pesquisado em uma lista de palavraschaves. Esta palavra chave deve ser exatamente o textoprocurado.

    LP_PARTIALKEY Ponteiro longo como uma stringcontendo o tpico designado.

    Mostra um determinado tpico atravs de uma lista depalavras chaves. Se a palavra chave no for encontradaposiciona na palavra fontica mais perto.

    LP_MULTIKEY Ponteiro longo para uma estrutura deTMULTIKEYHELP. Esta estruturaespecfica de caracteres e palavraschaves.

    Mostra o tpico indentificado pela palavra chave ouuma chave da tabela alternada.

    LP_COMMAND Ponteiro longo, contendo a macro para aexecuo

    Executa um macro help.

    LP_SETWINPOS Ponteiro longo para uma estrutura deTMULTIKEYHELP. Esta estruturaespecfica contm o tamanho e a posioda janela do help primrio ou a janelasecundria para ser mostrado.

    Mostra um help do windows com um mnimo dememria, variando o tamanho e a posio de acordocom o dado passado.

    LP_FORCEFILE Ignorado. Normalmente passado 0. Executa o WinHelp mostrando o arquivo de auxliocorrijido.

    LP_HELPONHELP Ignorado. Normalmente passado 0. Mostra o auxlio de como usar o auxlio.

    LP_QUIT Ignorado. Normalmente passado 0. Solicita o fechamento do auxlio ativo.

    Criando a janela Sobre o Sistema

    m todo o sistema criado para o Windows

    includo uma janela Sobre o Sistema, por uma boa razo! todos os outros

    temas para o Windows

    possuem uma, e quem vai querer quebrar esta maravilhosa tradio e criar um sistema sem umaela destas ?

    ar o primeiro formulrio com oDelphi no uma tarefa assim to difcil, mas para perdemos o medo inicial vamos criaroutBox (ou CaixaSobre), observe:

    Criando e alterando os objetos

    Para criar o formulrio a partir do menu principal a opo File e New..., aparecer a janela daNew Items (maisinformaes retorne ao Captulo II) e clique na pgina Forms e no objeto entituladoAbout box.

    Altere os seguintes objetos (localize-os atravs da Object Inspector):

    AboutBox (classe TAboutBox):

    Propriedade Valor Descrio

    Caption Sobre o sistema Label escrito na tarja superior da janela

    Name F_Sobre Nome interno do objeto

    ProgramIcon (classe TImage):

    Propriedade Valor Descrio

    Picture Escolha o BitMap de sua preferncia Objeto imagem

    ProductName (classe TLabel):

    Propriedade Valor Descrio

    Caption CDDA Label do objeto

    Font Ms Sans Serif, Negrito Itlico, 18, Castanho Tipo de letra a ser mostrada no objeto

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (42 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    43/157

    orland

    Version (classe TLabel):

    Propriedade Valor Descrio

    Caption Verso Beta Teste Label do objeto

    Font Ms Sans Serif, Itlico, 8, Azul Marinho Tipo de letra a ser mostrada no objeto

    Copyright (classe TLabel):

    Propriedade Valor Descrio

    Caption

    Copyright

    1995 - Nome da Empresa

    Label do objeto

    Font Ms Sans Serif, Normal, 8, Azul marinho Tipo de letra a ser mostrada no objeto

    Para conseguir um pressione ALT+184 e um pressione ALT+169.

    Comments (classe TLabel):

    Propriedade Valor Descrio

    Caption Compact Disc Digital Audio - Cadastro de CDs Label do objeto

    Font Ms Sans Serif, Normal, 8, Preto Tipo de letra a ser mostrada no objeto

    Elimine o objeto OKButton (boto de OK), clique sobre ele e pressione Delete, clique no objeto F_Sobre e cl

    no objetoBitBtn , encontrado na Component Palette na pginaAdditional, e click novamente no F_Sobre

    Altere as seguintes propriedades:

    Propriedade Valor Descrio

    Kind bkOK Determina a classe a ser utilizada pelo boto, automaticamente seralterado as propriedades: Caption, Glyph e ModalResult

    Hint Retorna ao menu principal Ajuda on-line para o objeto especfico

    ShowHint True Mostrar o contedo da propriedade hint sob a forma de uma caixa deajuda on-line

    Name ButOK Nome do Objeto

    Width 92 Largura do objeto

    D uma organizada geral quanto a posio dos objetos para voc poder ter uma idia compare o desenho do seformulrio para ver se no ficou faltando nada:

    Salve o formulrio nas opes de menu File e Save (ou pressione Ctrl+S), oDelphi questionar o nome e odiretrio, o diretrio o C:\SISTEMA\CADDISCO e para o nome digite fSobre (note que novamente o nome ext

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (43 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    44/157

    orland

    e o mesmo do nome interno diferenciado por _).

    Associando o form Sobre o Sistema ao menu

    mos associar o form fSobre com o fMenu:

    Automatizando o comando SOBRE O SISTEMA: No objeto F_Menu, clique na opo Auxlio e na opo Soo Sistema. ODelphi criou o evento Click para o objeto item do menu ItemAuxilio1.

    Digite o seguinte comando abaixo do begin:

    ocedure TF_Menu.ItemAuxilio1Click(Sender: TObject);ginF_Sobre.ShowModal; Abre o Objeto F_Sobre em modo Modal.d;

    Abaixo da diretiva de compilao: {$R *.DFM}

    R *.DFM}

    sSobre; Utiliza a Unidade fSobre e todos os objetos dependentes dela.

    ocedure TF_Menu.ShowHint (Sender: TObject);

    Saia do Code Editore salve o formulrio e o projeto.

    Rode o projeto e teste o formulrio Sobre o Sistema, o modoModal no permitir que voc clique em nenhumoutro lugar at a finalizao desta janela, volte para o menu com o boto OK.

    Note que no foi preciso colocar nenhum cdigo para que ao pressionar o boto OK o formulrio fosse fechado, isto foi

    lizado graas a opo Kind, noDelphi voc encontrar outros modelos de boto padro do tipo: Cancela, Sim, No entreros.

    Criando a janela Splash

    anela Splash tida como a mais importante da aplicao. Esta janela aparece uma nica vez (no incio) durante a execuseu sistema informando ao usurio para ter pacincia e aguardar tranqilamente enquanto o sistema carregado, osmulrios so criados, etc.

    istem vrios tipos de janela Splash. O tipo mais comum aquela que mostra o nome da aplicao, o autor, a verso, direiorais (Copyright) e uma imagem ou cone que identifica a aplicao. Atravs da caracterstica de herana dos objetos vaer facilmente esta janela:

    1. No menu principal selecione a opo File e New..., clique na pgina CDDA e na figura entitulada F_Sobre

    Neste momento voc obteve uma cpia da janelafSobre o problema que a janelafSplash ter menos objetos que a jane

    bre, e por caracterstica de herana o filho sempre deve superar os pais nunca ao contrrio, ento necessrio que invertduas janelas.

    odificando o objeto F_Sobre

    1. Modifique a propriedade Name do F_Sobre para F_Splash e a propriedade BorderStyle para bsNone.

    le:///C|/cursos_e_livros_cd/informtica/programao/delphi/Cpia%20de%20Bblia%20do%20Delphi.htm (44 of 157)28/09/2004 18:41:02

  • 8/3/2019 biblia_delphi

    45/157

    orland

    2. Clique sobre objeto butOKe digite Ctrl+X, acerte o tamanho da janela.

    3. Salve o formulrio nas opes de menu File e Save As..., oDelphi questionar o nome e o diretrio, o dire o C:\SISTEMA\CADDISCO e para o nome digitefSplash.

    criando o objeto F_Sobre

    1. Clique no objeto F_Sobre1 e note que automaticamente ele adquiriu as modificaes do objeto fSplash.

    2. Aumente o tamanho da janela de modo a que caiba novamente o boto de OK e digite CTRL+V, troque apropriedade Caption doButOKpara &OK.

    3. Modifique a propriedade BorderStyle doform para bsDialog e a propriedade Caption para Sobre o Siste

    4. Salve o formulrio nas opes de menu File e Save (ou pressione CTRL+S), oDelphi questionar o nomediretrio, o diretrio o C:\SISTEMA\CADDISCO e para o nome digite fSobre (confirme a operao desobescrita).

    rganizando o objeto fSplash

    1. A partir do menu principal clique em Project | Options..., clique na pgina Forms e envie o objeto F_Spla(clicando sobre ele e clique no boto com o sinal de >) que est na listaAuto-create forms para a listaAvailablforms (para no ocupar espao em memria uma janela que s ser utilizada uma nica vez, criaremos esta janevia comandos), clique sobre o boto OK.

    2. No menu principal selecione a opo View e Project Source (estamos agora acessando o programa princique controla todas os outros formulrios ou units).

    3. Aps o comando begin adicione as seguintes linhas:

    Splash := TF_Splash.Create(Application); Cria o form como parte da aplicao.Splash.Show; Chama o form de modo no modal.Splash.Refresh; Mostra o form e devolve o controle para a

    aplicao.

    4. Antes do comando Application.Run; adicione a linha:

    Splash.Free; Libera o form da aplicao.

    Saia do Code Editore salve o formulrio e o projeto.

    Rode o projeto, qualquer problema compare com o cdigo abaixo:

    ogram CDDA;

    sFmenu in 'FMENU.PAS' {F_Menu},FSobre in 'FSOBRE.PAS' {F_Sobre};

    R *.RES}

    ginF_Splas