programaÇÃo inicial - delphi

Upload: wloebel

Post on 26-Feb-2018

257 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    1/94

    ETEC PROF MASSUYUKI KAWANOTUP-SP

    TCNICO EM WEB DESIGN

    LGICA DE PROGRAMAO

    PROGRAMAO INICIAL - DELPHI

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    2/94

    2

    INDICE

    Paradigmas da Programao ............................................................................................................................... 4Tipos Simples.......... ............ ............. .............. ............. ............. ............. .............. ............. ............ .............. ......... 10

    Tipos Enumerados.............. ............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 10Tipo Set............................................................................................................................................................... 11Tipos com Editor de Propriedades ............. ............ .............. ............. ............ .............. ............. .............. ............ . 11Manipulando Eventos .........................................................................................................................................11

    PROJETO EM DELPHI.........................................................................................................................................15CONVENO DE NOMEAO ......................................................................................................................... 19COMPONENTES .................................................................................................................................................... 27

    Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 29Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 30Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 30Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 31Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 32Crie um formulrio conforme lay-out abaixo............. ............. .............. ............ .............. ............. .............. ............ . 33A opoApaga Tudo s poder ocorrer aps confirmao do usurio ............ ............. .............. ............ .............. .. 33Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 33Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 33Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 34Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 35Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 36Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 36Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 36Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 38Mtodos................ ............. ............. ............. .............. ............. ............ .............. ............. .............. ............ .............. .. 38Propriedades.......... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 38

    CHAMADA DE FORMS ........................................................................................................................................ 52COMPONENTES (VCL).........................................................................................................................................53TRATAMENTO DE EXCEES ........................................................................................................................ 66UM POUCO MAIS SOBRE COMPONENTES (VCL) ..................................................................................... 72

    Opes............... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 73Valor ................................................................................................................................................................... 73Significado.......................................................................................................................................................... 73Principais Eventos... ............ ............. .............. ............. ............. ............. .............. ............. ............ .............. ......... 73Evento ................................................................................................................................................................. 73Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 73Principais Mtodos.......... ............. ............ .............. .............. ............. ............ .............. ............. .............. ............ . 74Mtodos................ .............. ............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 74Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 74Principais Propriedades... ............. ............ .............. .............. ............. ............ .............. ............. .............. ............ . 74Propriedade ......................................................................................................................................................... 74Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 74Opes............... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 74Valor ................................................................................................................................................................... 74Significado.......................................................................................................................................................... 74Principais Eventos... ............ ............. .............. ............. ............. ............. .............. ............. ............ .............. ......... 74Evento ................................................................................................................................................................. 74Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 74Principais Mtodos.......... ............. ............ .............. .............. ............. ............ .............. ............. .............. ............ . 75Mtodos................ .............. ............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 75Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 75Principais Propriedades... ............. ............ .............. .............. ............. ............ .............. ............. .............. ............ . 75Propriedade ......................................................................................................................................................... 75Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 75Opes............... .............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ . 75

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    3/94

    3

    Valor ................................................................................................................................................................... 75Significado.......................................................................................................................................................... 75Principais Eventos... ............ ............. .............. ............. ............. ............. .............. ............. ............ .............. ......... 76Evento ................................................................................................................................................................. 76Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 76Principais Mtodos.......... ............. ............ .............. .............. ............. ............ .............. ............. .............. ............ . 76Mtodos................ .............. ............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 76Descrio.............. ............. .............. ............ .............. ............. ............ .............. ............. .............. ............ ............ 76

    UM POUCO MAIS SOBRE COMPONENTES (VCL) ..................................................................................... 76Images ..................................................................................................................................................................... 82StateImages .............................................................................................................................................................82Items........................................................................................................................................................................ 82ShowButtons ........................................................................................................................................................... 82ShowLines............. .............. ............. ............ .............. ............. .............. ............ .............. ............. .............. ............ . 82ShowRoot.......... .............. ............. ............ .............. ............. .............. ............ .............. ............. ............ .............. ..... 82ReadOnly ................................................................................................................................................................ 82Eventos ................................................................................................................................................................... 82OnEditing................................................................................................................................................................ 82OnEdited ................................................................................................................................................................. 82

    Apndice A - A Linguagem Object Pascal ..................................................................................................... 84Apndice B - DICAS ............................................................................................................................................ 87Apndice C - INTRODUO ORIENTAO A OBJETOS ..................................................................... 92REFERNCIA BIBLIOGRFICA ........................................................................................................................... 94

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    4/94

    4

    Paradigmas da Programao

    "Paradigma uma forma de pensar e perceber o mundo real e determina o queescolhemos como significativo e o que descartamos ao compreender ou descrever o que existeou ocorre no mundo em torno de ns".

    A mudana de paradigma uma oportunidade de encontrar novas interpretaes paraantigas questes, bem como, para rever solues tidas como definitivas.

    Introduo

    Antes de comearmos seria interessante ressaltar que aprender a ser um bomdesenvolvedor envolve mais do que aprender a sintaxe de uma linguagem de programao emparticular, isto porque existem muitos outros aspectos do campo do sw, que tm pouca conexocom o ato em si de escrever cdigo.

    Se voc pode est pensando: "Ora, vamos, eu s quero aprender Delphi", deveria

    tambm pensar que a questo aqui que, se voc pretende desenvolver sw por dinheiro ou paramanter-se num emprego, e tem clientes ou chefes esperando que seu sw:

    Saia funcionando da caixa,Seja feito a tempo,Seja livre de erros eSeja barato,

    Ento, vamos ter que comear por aqui mesmo, comentando sobreproblemas como a crise de sw; o ciclo de vida e a engenharia de swporque apenas talento artstico indisciplinado(intuio) no resolve.

    Devemos nos lembrar que o objetivo mais direto do desenvolvimento de sw fazer oproduto final satisfazer a especificao dos requisitos. Precisamos portanto, dividir isso em algomais tratvel. Algum grupo menor ou mais preciso de objetivos que sejam mais alcanveis efceis de lembrar.

    Lembre-se de que se tem algo que sempre permanente a mudana. Conformesabemos, uma aplicao passar a maior parte de seu ciclo de vida na fase de manuteno. Ento, importante termos um conjunto de objetivos que transceda a mudana.

    Entre outros, os quatro objetivos geralmente excludos da engenharia de software so acapacidade de modificao, eficincia, confiabilidade e inteligibilidade. Devemos tambmdestacar a ergonomia.

    Programao Procedimental

    A maior parte dos programadores est acostumada a escrever cdigo que executadode forma sequencial. Tais programas possuem inicio, meio e fim bem definidos. Tipicamente,estes programas possuem telas de entradas de dados de algum tipo de processamento com estes

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    5/94

    5

    dados de forma sequencial. Esta forma de se programar dita procedimental. A figura 1 ilustra asequencialidade encontrada em programas que seguem tal paradigma.

    Esta forma de programar uma conseqncia direta dos sistemas computacionaisdisponveis no passado. Estes sistemas eram compostos por uma CPU responsvel peloprocessamento (mestre) e uma srie de perifricos (escravos), responsveis pela entrada e sadade dados.

    O custo da CPU era nitidamente superior ao de qualquer perifrico e at mesmo aocusto do trabalho de quem lidava com estes computadores. Consequentemente, todos os sistemas

    davam prioridade mxima ao processamento, em relao entrada e sada de dados.Os programas desenvolvidos visavam normalmente a soluo de problemas de naturezacientfica, que naturalmente requisitavam mais recursos de CPU do que de entrada e sada dedados.

    A popularizao dos computadores modificou este quadro: as aplicaes comerciaistpicas dos dias de hoje exigem uma ateno maior dos programadores (e dos sistemascomputacionais) para a entrada e sada de dados.

    A hierarquia rgida imposta pela estrutura de menus e a sequencialidade com que osformulrios so preenchidos pelo usurio impem limitaes srias na qualidade da interao dousurio com o computador na programao procedimental.

    Um exemplo no baseado em eventos

    Program Verif_Nome;

    Var Nome : String;

    Begin

    Write ('Digite um nome: ');

    Readln (Nome);

    If Nome = 'Ze Silva' then

    Incio

    Entrada deDados

    Processamento

    Fim

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    6/94

    6

    writeln ('Nome bem original cara')

    else

    writeln ('O que poderia dizer');

    End.

    Note que o fluxo do programa bem definido. Primeiramente ele pergunta o nome dousurio. Agora, voc pode esperar que o usurio introduza seu nome, e no precisa se preocuparcom nenhuma outra entrada ou ao que ocorra no ambiente.

    Depois que o nome informado, uma instruo if define o que o programa deve fazerem seguida e o programa termina. A lgica deste programa linear direta e sequencial. Omodelo baseado em eventos no pode utilizar controle de fluxo do incio at o fim, pois oaplicativo deve manipular todas as aes ou eventos possveis

    Programao Orientada a Eventos

    Um aplicativo baseado em eventos, na verdade, no faz nada - a no ser que ocorra um

    evento. isso mesmo, ele no tem um incio ou final lgico. Ele simplesmente precisa sabercomo responde aos diferentes tipos de eventos. Isto no quer dizer que voc no pode ter umevento que ocorra quando o programa comea ou quando vai se fechar; entretanto, voc precisapensar sobre seu modelo de programao de modo diferente.

    No exemplo anterior, voc sabia exatamente que aes o usurio executaria - digitar umnome. Contudo, pense em aplicativo processador de textos baseado no Windows. No h meiosde saber se o usurio digitar uma frase, escolher uma opo no menu ou dar um clique em umboto, na barra de atalho. Independentemente da ao que o usurio executa, o aplicativo precisaser consistente o suficiente para responder ao evento.

    A idia bsica por trs da programao dirigida a eventos que alguns eventosdeterminam o fluxo do aplicativo. Um programa gasta a maior parte de seu tempo aguardandoeventos e tem cdigo que responde a diversos deles (nem todos, j que normalmente umprograma ignora eventos nos quais no tem interesse). Por exemplo, quando o usurio d umclique em um dos botes do mouse, ocorre um evento. enviada uma mensagem descrevendoesse evento para a janela que est sob o cursor do mouse no momento. A aplicao intercepta amensagem e chama o mtodoassociado ao evento correspondente. Quando o metodo termina, oprograma retorna a um estado de espera.

    Como a explanao acima demonstra, eventos so serializados; cada evento manipulado somente aps o anterior ter sido completado. Quando uma aplicao estexecutando cdigo de resposta ao evento (ou seja, no est aguardando um evento), outroseventos para essa aplicao devem aguardar em uma fila reservada de multitarefa gerenciadaatravs de um manipulador de eventos.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    7/94

    7

    Aes Sistema Eventos

    O avano da tecnologia barateou o custo dos sistemas computacionais e introduziu recursos grficos para a

    interao com os usurios (GUI- Graphic User Interface).

    Uma aplicao que se utiliza de interface grfica, permite que o usurio decida aseqncia mais apropriada de interao. Esta abordagem muda completamente a forma de seconstruir programas.

    As interfaces grficas introduziram assim uma forma completamente nova de seprogramar. Nesta abordagem, uma aplicao constitui-se de um loop para tratamento de eventose de procedimentos associados a eventos especficos. Toda vez que ocorre um determinadoevento, o seu procedimento equivalente executado. Eventos acontecem em decorrncia dainterao do usurio com o sistema, gerados pelo sistema operacional ou ainda gerados naprpria aplicao. Exemplos de eventos: mover o mouse, pressionar uma tecla, selecionar umtem de menu, setar o foco para um determinado controle, etc.

    A cada ao do usurio corresponde um ou mais eventos enviados para a aplicao.Estes eventos devem ser identificados e tratados de maneira adequada pelo programa. Estaabordagem conhecida como programao orientada a eventos.

    As interfaces grficas tornaram a interao dos usurios com as aplicaes bastanteatraentes. Em compensao, introduziram uma complexidade enorme do ponto de vista deprogramao. Para se ter uma idia, o cdigo em linguagem C no windows para escreve na telaAl mundo possui cerca de 100 linhas.

    Se acrescentarmos a isto o fato de que 80% do cdigo escrito para uma aplicao consumido na elaborao de interface, fica difcil de massificar a programao em ambientes deinterface grfica.

    Felizmente, o paradigma da orientao a objetos consegui esconder do programador amaior parte da complexidade da programao nestes ambientes.

    Loop de Tratamento dos Eventos

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    8/94

    8

    IDE

    O ambiente de desenvolvimento do Delphi composto de vrias partes compondo umconjunto integrado de janelas que interagem entre si.

    Vamos abordar cada uma separadamente:

    O FORM DESIGNForm o termo utilizado para representar as janelas do Windows que compem uma

    aplicao. Os forms servem como base para o posicionamento dos componentes, que soresponsveis pela interao entre usurio e mquina.

    Para selecionarmos o form devemos clicar (uma vez) em sua rea interna ou naobject inspector, e no simplesmente em seu ttulo.

    As caractersticas iniciais do form como tamanho, botes (minimizar, maximizar, fechar,controle) e cone podem (e sero) ser modificadas atravs de recursos que veremos adiante.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    9/94

    9

    A BARRA DE MENU PRINCIPAL

    Como todo programa padro Windows, h uma janela onde esto situados os menus daaplicao, a barra que contem os menus tambm agrupa outras partes.

    A PALETA DE COMPONENTES

    Aplicativos orientados a objetos trabalham com elementos que denominamoscomponentes. No Delphi, os componentes encontram-se em uma paleta com vrias guias.

    Pode-se configurar a ordenao das guias clicando com o boto direito do mouse sobrequalquer componente e clicar na opo Properties.

    OBJECT INSPECTOR

    Uma das partes mais importantes da orientao a objeto a possibilidade de definircaractersticas personalizadas aos componentes.

    No Delphi, utilizamos a janela object inspector para realizar esta tarefa.

    H uma caixa de listagem1 que permitea escolha de qual componente deverser selecionado.

    Duas guias:

    Properties Define as propriedades evalores do Objeto selecionado.

    Events Define quais os eventos seromanipulados pelo desenvolvedor.

    Algumaspropriedadestrazem opesdiferenciadas para alterao.

    Por exemplo:

    1Componente ComboBox.

    Objeto atualselecionado

    Propriedade

    Valor atualdestapropriedade

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    10/94

    10

    Caption Permite a insero de umastring de caracteres.

    Color Permite a insero de um dosvalorespr-definidosna caixa de listagem.

    BorderIcons Toda propriedade que possui o sinal de + tem a caracterstica de mostrarsubpropriedades. Deve-se clicar no sinal de + para expandir e no sinal de para ocultar.

    Icon Exibe um boto de reticncias (...) que dar origem a uma caixa de dilogo.

    Os nomes definidos como valores das propriedades na object inspector sero os nomesusados na construo do cdigo em Object Pascal.

    Na parte superior da janela h uma caixa de listagem que permite a seleo de componentes jinseridos no formulrio. Duas guias (Properties e Events) separam as listas de propriedades eeventos.

    As propriedades so definidas atravs de tipos. Podemos citar no exemplo com o objeto form:

    Tipos SimplesSo tipos String ou valores numricos definidos ao digitar um valor na frente da

    propriedade. Exemplo: Name, Caption, Height e Width entre outros.

    Tipos EnumeradosSo tipos definidos por uma quantidade limitada de opes que devem ser previamente

    selecionadas, no simplesmente definidas pelo usurio.Exemplo: Cursor, BorderStyle e WindowState entre outros.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    11/94

    11

    Tipo SetAlgumas propriedades podem conter mltiplos valores. Um exemplo a propriedade

    BorderIcons com o sinal + indicando subpropriedades.

    Tipos com Editor de Propriedades

    As propriedades que so acompanhadas de um cone de reticncias (...) indicam queuma janela de dilogo ir auxiliar na escolha de seu(s) valor(es). Exemplo: Icon.

    Manipulando EventosA guia Events permite o desenvolvedor definir um handler2 em Object Pascal para um

    determinado evento que pode ser disparado pelo usurio ou pelo sistema.Um evento uma ao disparada dentro de uma aplicao orientada a Objeto. Podemos

    citar as ocorrncias dos principais eventos que so disponibilizados na maioria dos componentesem Delphi:

    Evento Ocorrncia

    OnClick Quando o usurio clicar uma vez com o boto esquerdodo mouse sobre o componente.

    OnDblClickQuando o usurio d um duplo clique no componentecom o boto esquerdo do mouse.

    OnEnter Quando o componente recebe o foco.OnExit Quando o componente perde o foco.OnKeyPress Quando pressiona uma nica tecla de caractere.

    Observe a construo do procedimento criado pelo prprio Delphi:

    procedure TForm1.Button1Click(Sender: TObject);begin

    end;

    CODE EDITOR

    O editor de cdigo responsvel por receber todas as declaraes criadas pelo Delphi ehandlers3criados pelo desenvolvedor.

    E no ambiente Code Editor que implementamos o algoritmo na linguagem Object

    Pascal.

    2Manipulador de evento3Manipulador de eventos.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    12/94

    12

    Na janela do editorpodehaver uma outra janela denominada Code Explorer. a parteesquerda da janela, onde podemos ter uma orientao sobre os objetos, procedimentos, funes eclasses utilizadas na aplicao. Para desligar o code explorerclique no pequeno X ao lado daguia do code editor, para visualiza-lo clique com o boto direito dentro do editor e escolha ViewExplorer ou pelo teclado Ctrl+Shift+E.

    Uma caracterstica muito importante do Code Explorer que quando inserirmoscomponentes no form, a sua declarao feita peloDelphide maneira automtica.

    Podemos considerar tambm o seguinte fato:Tudo o que o Delphi escrever, problema dele.

    Agora, Tudo o que voc escrever problema seu.

    CodeExplorer

    Code EditorNamedo formque define umanova classe

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    13/94

    13

    Problema no sentido de atualizao de cdigo, como veremos adiante. Quandoalteramos o nome do objeto, deve-se utilizar o mesmo nome nas rotinas implementadas. Agora, oque o Delphi declarou, ele se encarrega de atualizar.

    Pode-se personalizar o Editor atravs do menu Tools| Editor Options.

    CODE INSIGHT

    Um recurso que vai facilitar nossa vida no momento de desenvolvimento de cdigo oCode Insightdo Code Editor do Delphi.,

    Ele atua como um ajudante de complemento junto ao cdigo do desenvolvedor. Porexemplo, ao digitar o nome de um objeto seguido de ponto (.) abre-se uma listagem de mtodose propriedades que podem ser utilizadas neste objeto.

    Esta lista pode ser ordenada por nome, clicando com o boto direitodentro da listagem.

    No momento de chamada de procedimentos ou mtodos:

    Para forar ocode insightem determinada situao, utiliza-se: Ctrl + Barra de Espao - Para complemento de objetos; seus mtodos e

    propriedades. Ctrl + Shift + Barra de Espao Para complemento de parmetros.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    14/94

    14

    Prtica 1 - Vamos realizar um pequeno exemplo no Delphi para resultar na execuoabaixo:

    Siga os seguintes passos:

    1. Defina para o Formulrio no Object Inspector:Caption: P, que emoo caraName: Form1

    2. Insira um boto no formulrio (Ver Guia Standard na Barra de Ferramentas)3. Defina para o Botao no Object Inspector:

    Caption: Ol PessoalName: Btn_Ola

    4. D um click duplo no boto e aparecer no editor de cdigo:

    procedure TForm1.Btn_OlaClick(Sender: TObject);begin

    end;

    5. Digite o seguinte comando entre o begin / end;MessageDlg('Ol Pessoal', mtInformation, [mbok], 0);

    6. Execute a aplicao (Run).7. Observe o cdigo gerado

    Responda: O que ocorrer se clicarmos no formulrio?

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    15/94

    15

    PROJETO EM DELPHI

    O conceito de projeto em Delphi baseado em um conjunto de arquivos necessriospara gerar uma aplicao.

    Vamos destacar os principais arquivos:

    Extenso Tipo e descrio Criao Necessrio paracompilar?

    .PAS

    Arquivo Pascal: o cdigo-fonte de umaunidade Pascal, ou uma unidaderelacionada a um formulrio ou umaunidade independente.

    Desenvolvimento Sim.

    .DPRArquivo Delphi Project. (Contmcdigo-fonte em Pascal.)

    Desenvolvimento Sim.

    .DFM

    Delphi Form File: um arquivo binrio(na verso 5 pode ser convertido paratexto) com a descrio das propriedadesde um formulrio e dos componentesque ele contm.

    Desenvolvimento Sim. Todo formulrio armazenado em umarquivo PAS e em umarquivo DFM.

    .DCU

    Delphi Compiled Unit: o resultado da

    compilao de um arquivo Pascal.

    Compilao Apenas se o cdigo-fonte

    no estiver disponvel. Osarquivos DCU para asunidades que vocescreve so um passointermedirio; portanto,eles tornam a compilaomais rpida.

    .BMP, .ICO,

    .CUR

    Arquivos de bitmap, cone e cursor:arquivos padro do Windows usadospara armazenar imagens de bitmap.

    Desenvolvimento:Image Editor

    Normalmente no, maseles podem sernecessrios em tempo deexecuo e para edioadicional.

    .CFG

    Arquivo de configurao com opes deprojeto. Semelhante aos arquivos DOF.

    Desenvolvimento Necessrio apenas seopes de compilao

    especiais foramconfiguradas.

    .DOFDelphi Option File: um arquivo de textocom as configuraes atuais para asopes de projeto.

    Desenvolvimento Exigido apenas se opesde compilaoespeciaisforam configuradas.

    .DSK

    Arquivo de Desktop: contminformaes sobre a posio das janelasdo Delphi, os arquivos abertos no editore outros ajustes da rea de trabalho.

    Desenvolvimento No. Voc deve exclu-lose copiar o projeto em umnovo diretrio.

    .EXE

    Aquivo executvel: o aplicativoWindows que voc produziu.

    Compilao: Ligao(linking)

    No. Esse o arquivo quevoc vai distribuir. Eleinclui todas as unidadescompiladas, formulrios erecursos.

    .~PA

    Backupdo arquivo PascalPode ser ativado ou desativado atravsdo Menu Tools Editor Options - guiadisplay Item: Create backup file.

    Desenvolvimento No. Esse arquivo gerado automaticamentepelo Delphi, quando vocsalva uma nova verso docdigo-fonte.

    .TODOArquivo da lista to-do, contendo os itensrelacionados ao projeto inteiro.

    Desenvolvimento No. Esse arquivo contmnotas para osprogramadores.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    16/94

    16

    O Delphi possui um mecanismo de gerncia de arquivos de projetoinformando osprincipais arquivos e seupath. Clique em View Project Manager

    A figura acima um exemplo de um projeto inicial, ainda no salvo. O diretrio padropara criao dos arquivos projects, obviamente devemos definir na gravao pasta e nomes dearquivos mais especficos.

    .PAS E .DPR

    Para visualizarmos o cdigo fonte da unidade (.PAS) em Delphi basta selecionarmos ocode editor(F12).

    Para visualizarmos o cdigo fonte no arquivo de projeto (.DPR) basta selecionarmos omenu Project View Source. O arquivo de projeto exibido em uma guiano code editor.

    Para fechar a guia basta clicar com o boto direito e escolher close page.

    Unidades

    Existem trs tipos de unidades: unidades associadas aos formulrios (as mais comuns),arquivos de unidade usados para armazenar funes e procedures, e arquivos de unidade usadospara construir componentes.

    Vamos ver una unidade bsica associada a um formulrio:

    Unit Unit1;

    Interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

    Dialogs;

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    17/94

    17

    O cdigo acima, junto com o cdigo de arquivo de projeto, tudo de que precisa noDelphi para criar um executvel que abre uma janela. Ele no far muita coisa nesse ponto, mas um programa Windows funcional, na sua forma mais simples.

    Veja os nomes na clusula uses, do cdigo acima. Trata-se dos nomes de outrasunidades. Se voc decidisse escrever vrias funes e procedures teis, poderia criar suaunidade, colocar todo seu trabalho til nela e compil-la para uso futuro. Vamos ver as partes

    que constitui a unidade:Cabealho da unidade - Um cabealho de unidade identifica o cdigo como uma unit e

    seguido pelo nome.

    Interface - Marca o incio da parte unit interface, que usada para declarar variveis,tipos, procedures, etc. A parte interface determina o que nessa unidade est disponvel paraoutras unidades e partes do programa. A parte interface termina com o incio da parteimplementation.

    Type

    Tform1 = class(Tform)

    procedure FormCreate(Sender: Tobject);

    private

    {Declaraes privativas}

    public

    {Declaraes pblicas}

    end;

    var

    Form1: Tform1;

    implementation

    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: Tobject);

    begin

    end;

    end.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    18/94

    18

    Uses - A clusula uses informa ao compilador quais bibliotecas de funes eprocedures precisam ser compiladas no executvel final. O Delphi coloca, automaticamente,vrias delas l para voc.

    Type - A seo de declarao type usada para a criao de tipos definidos pelousurio. Esses tipos pode, ento, ser usados para definir variveis.

    Especificadores de visibilidade vm aps a clusula type na parte da interface. Osseguintes especificadores so usados para controlar como os objetos aparecem para outrosprogramas e objetos:

    Private - As declaraes nessa seo so tratadas como pblicas dentro do mdulo, massero desconhecidas e no acessveis fora da unidade.

    Public - As declaraes nessa seo so visveis e acessveis fora da unidade.

    Var - Usado para declara varveis e variveis de objeto. Em uma unidade deformulrio, var usado na parte de interface (o Delphi coloca essa declarao para voc) paradeclarar o formulrio como uma instncia do objeto Tform. Var tambm usado para declararvariveis na parte de implementao, assim como em procedures e funes.

    Implementation - onde todas as funes e procedures que foram declaradas na parteinterface sero realmente colocadas. Todas as declaraes feitas aqui so privativas da unidade(no disponveis para as outras unidades).

    {$R *.DFM) - Em uma unidade de formulrio. O Delphi insere essa entrada para voc.Ela liga o formulrio ao seu arquivo.dfm. No remova isso de seu programa, ou voc terproblemas.

    O bloco de cdigo a seguir executado quando seu formulrio criado. Voc devecolocar aqui, todo o cdigo de inicializao que precise ser executado quando o formulriocomear a ser carregado. Para criar essa procedure, use o Object Inspector para ver o menuEvents do formulrio e, depois, d um click duplo no evento OnCreate.

    End. - o end final, significa o final de sua unidade.

    importante manter os cabealhos, as clusulas, etc no lugar correto. O Delphi cuidamuito bem disso para voc, pois ele cria a unidade e o cdigo medida que so feitas alteraesno formulrio. Voc simplesmente insere seu cdigo na seo correta, conforme for necessrio.

    OPES DE PROJETOO Delphi permite a configurao de vrios itens do sistema atravs do menu Project Options.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    19/94

    19

    Forms Main form - Nesta guia permite a escolha do formulrioprincipalda aplicao. Available form - Os formulrios available(disponveis) em caso de criao em tempo de

    execuo.

    Application Title - Define um nome para a sua aplicao diferente do nome do arquivo de projeto

    (.DPR). Help file Define o nome do arquivo de Help (.HLP) associado aplicao. Icon Define o cone utilizado no arquivo executvel. (.EXE)

    Compiler Estas opes permitem especificar uma compilao personalizada, ou seja, cada projeto

    pode ser compilado com uma caracterstica.

    Linker

    Estas opes incluem informaes para a depurao.

    Directories/Conditionals Nesta guia pode-se configurar o diretrio de sada para os arquivos gerados pela

    aplicao.

    Version Info Estas informaes podem ser visualizadas no Windows atravs do menu rpido do mouse

    no arquivo executvel.

    Packages Os packages permitem um controle de distribuio atravs de DLLs bsicas externasao

    executvel entre outros recursos.

    CONVENO DE NOMEAO

    A propriedade mais importante de um componente a propriedadeName. ela que defineo nome internocom relao ao cdigo escrito em Object Pascal. Para organizar e facilitar oprocesso de desenvolvimento/manuteno do sistema, grande parte dos desenvolvedores

    adota uma nomenclatura para tornar o cdigo mais legvel possvel.

    O Delphi adota como nomenclatura padro o nome da classe da qual o componente instanciadoe um nmero crescente de acordo com o nmero de ocorrncia deste componente noform. Exemplo: Button1, Button2, etc... so componentes instanciadosda classe TButton .

    No obrigatria a utilizao da conveno de nomes utilizados nesta apostila, mas muito importantefazer uso de uma conveno mais clara possvel.

    Exemplo:

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    20/94

    20

    Nome gerado pelo Delphi Objetivo Conveno

    Button1 Sair da aplicao BtnSairEdit1 Receber nome do usurio EdtNomeLabel1 Indicar componente Edit LblNome

    A Lista de UnitsA janela de lista de units permite que voc alterne entre as units que fazem parte do

    projeto ativo, sem que elas tenham de estar todas abertas no editor de cdigo. Caso vocselecione uma unit que no esteja aberta, o Delphi a abrir e mostrar no Code Editor.

    Figura 31 A Lista de Units

    A lista de units pode ser ativada atravs do menu View, opo Units..., ou atravs doprimeiro cone inferior da SpeedBarou atravs da combinao das teclas .

    A Lista de Forms

    A janela de lista de forms permite, de forma anloga de lista de units, que vocalterne entre os forms que fazem parte do projeto ativo, sem que eles tenham de estar todosabertos. Caso voc selecione um form que no esteja aberto, o Delphi o abrir e mostrar paraedio no Form Designer.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    21/94

    21

    A lista de forms pode ser ativada atravs do menu View, opo Forms..., ou atravs dosegundo cone inferior da SpeedBarou atravs da combinao das teclas .

    A Lista de Janelas

    A janela de lista de janelas do ambiente, embora menos utilizada do que as de lista deunits e forms, apresenta uma forma rpida de encontrar-se uma janela, que esteja escondida atrsde muitas outras.

    A lista de janelas pode ser ativada atravs do menu View, opo Window List..., ouatravs da combinao das teclas .

    Prtica 2 - Exerccio de Gerenciamento de Projetos

    1. Finalidade: Demonstrao das diversas forma de Gerenciamento de Projetos

    2. Roteiro:

    a. Crie uma pasta Aulas Delphie dentro desta outra Gerencia de Projeto

    b. Inicialize o Delphi

    c. Insira um Label com Caption 'Formulrio 1'

    d. Salve o projeto com Projeto_1e a unidade com Unit_1. Atravs de:Opo File Save All do Menu FileOpo File Project AS do Menu File

    4 cone superior do Speed Bar (SB) (Projeto)3 cone superior do Speed Bar (SB) (Unidade)

    e. Observe o cdigo de Unit_1

    f. Insira novo formulrio ao ProjetoOpo New do Menu FileOpo New Form do Menu File4 cone inferior do SB

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    22/94

    22

    g. Salve a unidade com Unit_2

    h. Insira novo formulrio ao Projeto utilizando opo diferente da 1.

    i. Salve a unidade com Unit_3

    Observe que as unidades podem ser selecionadas pelas guias, que ou o clique no 3cone inferior do SB alterna entre unidade e formulrio ou utilizando o 1 ou 2 cone inferiordo SB..

    j. Salve todo o Projeto

    k. Remova a Unit_2 do ProjetoBoto Remove da Opo Project Manager do Menu ViewNo Project Manager, boto direito sobre o nome do projeto ou unit, opo Remove File ...Opo Remove from Project do Menu Project7 cone superior do SB

    l. Adicione a Unit_2 ao ProjetoNo Project Manager, clicar com boto direito sobre o nome do projeto, opo Add ...Opo Add to Project do Menu Project6 cone superior do SB

    m. Observando o cdigo do ProjetoOpo View Source do Menu Project - Observe seu nome na Guia de Units(para fechar utilize boto direito do mouse - Opo Close Page)

    n. Atente para a clusula uses e seu cdigo (begin ... end.)Qual o formulrio que ser criado quando a aplicao for executada?

    p. Execute a aplicao e vamos conferir qual o formulrio criado.

    q. Feche a aplicao

    r. Alterando o formulrio principal do ProjetoOpo Options do Menu Project, observando o nome do formulrio da ListBox Main Form

    s. Altere o nome do formulrio principal para Unit_2

    t. Observe o cdigo do Projeto e execute-o

    u. Torne a Unit_2 disponvel

    v. Observe o cdigo do projetoO que ele nos informa?

    w. Feche a Aplicao

    x. Abra novamente a aplicao e observe quantos forms so trazidos para voc inicialmente

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    23/94

    23

    Para ativar os forms que deseja trabalhar, utilize o 2 cone inferior do SB ou ViewProject Manager, selecione o form, clique com boto direito e escolha a opo Open.

    Modularizao

    muito indicado que voc modularize o seu projeto. Isto implica tambm em nomisturar funcionalidades diferentes na mesma unit.

    Como assim? Voc no deve colocar strings nem valores constantes diretamente nocdigo. Isto aumenta o trabalho quando for necessrio alterar determinado valor. Teremos queprocurar em todos os mdulos para saber onde fazemos referncia quele valor. E cuidado parano confundir com uma mesma constante que possua, por coincidncia, o mesmo valor que a queestamos procurando.

    Para resolver este problema, voc deve criar constantes e atribuir valores a estasconstantes. Mas no defina estas constantes em qualquer unit. Crie uma unit que ir abrigarsomente a definio das constantes do projeto. Voc pode nomear esta unit com qualquer nome,exceto Const.Pas, porque const uma palavra reservada.

    Diretrios

    Via de regra, aconselhado utilizar um diretrio para cada projeto Delphi. Isto porquefacilita bastante a identificao dos vrios arquivos.

    Um dos pontos mais importantes de um projeto saber quais arquivos so necessriospara uma compilao completa (build). Quando temos mais de uma aplicao por diretrio, estaidentificao passa a ser um problema.

    Exemplo: C:\SistemaC:\Sistema\Doc

    C:\Sistema\DadosC:\Sistema\DllC:\Sistema\Icones

    No perca este objetivo de vista: projeto e organizao so os requisitos maisimportantes para um bom desenvolvimento.

    Para aprendermos a depurar um programa, defina uma aplicao conforme o form ecdigo abaixo:

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    24/94

    24

    unit Unit1;

    interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    procedure SomaNum;

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.SomaNum;

    var Value1, Value2, Total : integer;

    begin

    Value1 := StrToInt (Edit1.text);

    Value1 := StrToInt (Edit2.text);

    Label1.Caption := IntToStr(Value1 + Value2);

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    SomaNum;

    end;

    end.

    Agora, execute o programa, introduza dois nmeros pequenos, pressione o boto Ok eobserve que o resultado est incorreto. Para descobrir por que, vamos usar o depurador parapercorrer o cdigo e ver o que aconteceu.

    Definindo um Ponto de Quebra (BreakPoint)

    Um ponto de quebra permitir que o programa seja executado normalmente, atencontr-lo, e ento o depurador parar na linha em esse ponto foi definido, sem execut-la.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    25/94

    25

    Para definir um ponto de quebra, d um duplo clique na mediamiz (a rea cinza esquerda do cdigo no editor) ao lado da linha para a qual voc quer definir o ponto de quebra,ou ento tecle na desejada. Na realidade, esses procedimentos ativam e desativam pontosde quebra.

    O editor de cdigo mostrando a mediatriz com um ponto de quebra assinalado

    Execute o programa. digite 4 e 5 e depois pressione o boto Ok. O editor deve aparecer,mostrando a posio em que o ponto de quebra foi definido, conforme figura 27. Agora o pontode quebra tem uma marca verde na mediamiz, mostrando que voc parou neste ponto, e uma setaverde apontando para a direita aparece na mediamiz, mostrando sua posiao no cdigo. Estalinha aindano foi executada, ou seja, a seta verde aponta para a prxima linha de execuo.

    O editor de cdigo no modo debug, mostrando o programa interrompido em um ponto de quebra

    Voc pode definir pontos de quebra especiais que interrompero a execuo apenas se

    certas condies ocorrerem ou em uma passagem por um loop em particular. Isto podeser muito til, se seu cdigo falha somente em certas condies ou no meio de umloop muito grande. Para definir condies ou contagem de passagem, voc usa a opode menu Run | Add Breakpoint para acessar a caixa de dilogo Edit Breakpoint.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    26/94

    26

    Opes de Depurao

    O menu Run do Delphi contm algumas opes de depurao adicionais, que tmtoques de tecla de atalho correspondentes:

    Opo Significado

    Run (F9) Compila e executa iu, no modo depurador, continua a executar a partir desseponto.

    Step Over (F8) Executa cada linha do cdigo, mas no entra nas chamadas de funes eprocedures.

    Trace Into (F7) Permite que o depurador siga o cdigo de uma chamada de funo ouprocedure.

    Trace to Next Source Line(Shift F7)

    Segue at a prxima linha executvel.

    Runt to Cursor (F4) Executa at a posio corrente do cursor, na janela do editorShow Execution Point Coloca o cursor no ponto de execuo corrente.Program Reset (Ctrk F2) Finaliza a execuo do programa

    Como examinar valores variveis com Sentinelas

    Existem duas maneiras de examinar o valor armazenado em variveis: usandosentinelas e usando o novo recurso ToolTip Expression Evaluation (que j foi discutidoanteriormente).

    Uma sentinela permite que voc especifique nomes de varivel que deseja monitorar eapresentar seus valores numa pequena janela. Para inserir uma sentinela, voc pode pressionar ou selecionarRun |Add Watch para acessar a caixa de dilogo Watch Properties,conforme a figura. Em uma sentinela, voc pode especificar nomes de varivel e expressescomo Valor1 + Valor2 ou StrToInt(Valor1).

    A caixa de dilogo Watch Properties

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    27/94

    27

    A janela Watch List

    Na caixa de dilogo Watch Properties, digite Value1 na caixa de texto Expression. Istocria a janela Watch List, onde as variveis controladas e seus valores correntes seroapresentados, como na figura.

    Se a varivel ainda no foi criada ou atribuda, vrias mensagens sero apresentadas,indicando o status da varivel em que o valor normalmente estaria. A mensagem pode indicarProcess not accessible, o que significa que o cdigo que cria essas variveis no foi iniciado ou

    que ele terminou e as variveis foram retiradas da memria.Voc tambm poderia ver a mensagem Inaccessible here due to optimation, que

    normalmente significa que a varivel ainda no foi atribuda. Quando as linhas de cdigo quetratam da varivel que voc atribuiu uma sentinela so executadas, o valor apresentado na

    janela Watch List.

    COMENTRIOS

    Os comentrios no cdigo fonte so importantes e podem ser feitos atravs dosseguintes smbolos:

    //Comentrio de linha

    { Comentrio de bloco }

    (*Comentrio de bloco *)

    COMPONENTES

    Agora definiremos resumidamente os principais componentes do Delphi, bem como assuas principais propriedades e eventos. Logicamente, este material no se constitui num manualdos componentes do Delphi, mas sim visa introduzir o programador nos recursos disponveis.

    Antes de iniciarmos as discusses sobre os componentes, iremos nos ater explicao

    de algumas peculiaridades das propriedades dos componentes. O primeiro ponto a ser observado,est no fato de que algumas propriedades s so acessveis em tempo de execuo. Quandoacontecer tal fato, chamaremos ateno a esse respeito.

    Finalmente, existem propriedades onde o Delphi incorpora um construtor de valores.Para estes casos, aparece um boto com reticncias no canto da coluna valor, do ObjectInspector, isto quando a propriedade selecionada. Para abrir o construtor de valores basta umclique neste boto, ou um duplo clique na propriedade.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    28/94

    28

    bom lembrar que ao criarmos uma aplicao, um dos detalhes mais importantes quedevem ser considerados a interface com o usurio. Porque se ela for feia ou difcil de serentendida ser mal usada e isto a linha que divide o sucesso do fracasso no ramo de software.

    O que se segue uma referncia dos componentes de interface mais utilizados.Vamos considerar alguns objetos e suas principais propriedades, mtodos e eventos.

    Principais Eventos

    Os eventos recaem em trs categorias: de Mouse, de teclado, ou de Sistema. A maioriados componentes possui um evento padro. Para verificar isso d um duplo clique sobre ocomponente no formulrio.Os trs eventos padro so OnChange, OnClick e OnCreate, nestaordem.

    Se um componente no responder a nenhum deles, significa que ele no possui eventopadro.

    Verificao: D um duplo clique na rea do formulrio e ter seu evento padro,depois faa o mesmo no Label. Insira um Edit e d um duplo clique.

    Evento DescrioOnChange Acontece quando o objeto ou seus dados mudamOnClick Clique simples do mouse sobre o componente ou Enter no componenteOnDblClick Duplo clique do mouse sobre o componenteOnEnter Ocorre quando o componente recebe focoOnExit Ocorre quando o componente perde focoOnMouseDown O boto do mouse pressionado sobre o componenteOnMouseMove O ponteiro do mouse passa sobre o componenteOnMouseUp O boto do mouse liberado sobre o componenteOnKeyDown Uma tecla pressionada. enviado para o componente com o foco de entrada.OnKeyPress Uma tecla de caractere pressionada. Idem

    OnKeyUp Uma tecla liberada. IdemOnDragDrop O componente est sendo arrastado e solto num local permitidoOnDragOver O componente est sendo arrastado e passa sobre outro componenteOnEndDrag O componente est sendo arrastado e solto num local permitido ou noOnStartDrag Acontece quando o usurio comea a arrastar; enviado para o componente que originou

    a operao de arrasto.

    Principais Mtodos

    Mtodo DescrioBringToFront Coloca o componente na frente dos outros

    CanFocus Determina se o controle pode receber o focoCreate Cria uma instncia do componenteDestroy Destri a instncia. Na verdade, deve-se utilizar o FreeFocused Retorna se o foco est sobre o componenteFree Destri a instncia e desaloca a memriaHide Torna o controle invisvelSetFocus Faz com que o controle receba o focoSendToBack Coloca o componente atrs dos outrosShow Torna o controle visvel

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    29/94

    29

    Clear Limpa o contedo do componente

    Objeto Form (Formulrio)

    Paleta Standart

    Importncia: o principal componentecontainer pois permite posicionar os demaiscomponentes em si mesmo. literalmente a implementao do conceito dejanelas do sistema operacional Windows.

    PropriedadesActiveControl Permite definir qual oprimeirocomponente a receberfocoassim que o formulrio

    criado.

    Align Altera o alinhamento e preenchimento do objeto.AutoScroll Permite habilitar as barras de rolagem.AutoSize Determina se o controle ser automaticamente redimensionado.BorderIcons Determina os cones a serem exibidos na barra de ttulo do formulrio.BorderStyle Define o estilo da borda do formulrio.

    bsDialog Borda no redimensionvel, comum em caixa de dilogobsSingle Borda simples e redimensionvel.bsNone Borda invisvel, no redimensionvel, sem botes de controle.bsSizeable Borda padro redimensionvel.

    BorderWidth Define a espessura da borda.Caption Indica o rtulo exibido para o componente.ClientHeight /ClientWidth

    Define a altura e largura da rea cliente.

    Color Define a cor de fundo de um componente.

    Cursor Indica a imagem exibida pelo ponteiro do mouse quando este ficar sobre o objeto.DefaultMonitor Associa o form a um monitor especfico em uma aplicao que utiliza vrios monitores.Enabled Define se o componente est habilitado ou no.Font Permite controlar os atributos do texto exibido em um componente.FormStyle Determina o estilo do formulrio.

    fsNormal Definio padro do formulrio.fsMDIChild O formulrio ser uma janela-filha de uma aplicao MDI.fsMDIForm O formulrio ser o formulrio-pai de uma aplicao MDI.fsStayOnTop O formulrio permanece sobre todos os outros formulrios do projeto,exceto aqueles que tambm tm a propriedade FormStyle igual a fsStayOnTop.

    Height Define a altura do objeto.HelpContext Define o tpico do arquivo help que ser exibido ao pressionar a tecla F1.HelpFile Define um arquivo de help especfico.Hint Permite exibir um texto de auxlio no momento em que o ponteiro do mouse permanece

    sobre o controle.HorzScrollBar Define o comportamento de uma barra de rolagem horizontal.Icon Define o cone que ser usado pelo formulrio.KeyPreview Define se o formulrio deve ou no responder a um pressionamento de tecla, atravs do

    evento OnKeyPress, por exemplo.Left Define a coordenada da extremidade esquerda de um componente.Menu Permite escolher entre mais de um componente MainMenu.Name Define o nome interno que identifica o componente dentro da aplicao.PopupMenu Define o componente PopupMenu a ser utilizado pelo objeto.Position Permite definir o tamanho e posio de um formulrio no momento em que ele aparece

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    30/94

    30

    na sua aplicao.ShowHint Define se a string de auxlio deve ou no ser exibida quando o usurio mantm o

    ponteiro do mouse sobre um controle.Tag A propriedade Tag uma varivel do tipo Longint que o Delphi coloca disposio do

    usurio, que pode atribuir o significado mais conveniente.Top Define a coordenada da extremidade superior de um componente.VertScrollBar Define o comportamento de uma barra de rolagem vertical.

    Visible Define se o componente aparece ou no na tela.Width Define a largura do objeto.WindowMenu Permite definir qual o menu responsvel por manipular as janelas-filhas de uma

    aplicao MDI.WindowState Define o estado de exibio de um formulrio.

    MtodosShow Exibe o formulrio de manipulao no-modal.ShowModal Exibe o formulrio de manipulao modal.Close Permite fechar o formulrio.

    Objeto Button1 (Boto)

    Paleta Standart

    Importncia: um dos objetos mais utilizadospara confirmar e disparar rotinas associadas.

    PropriedadesAction Referencia uma ao definida em um objeto TActionList.Anchors Permite manter a posio relativa do objeto ao objeto parente quando este

    redimencionado.

    CancelAssocia o evento OnClick do objeto ao pressionamento da tecla Esc.

    DefaultAssocia ao evento OnClick do objeto ao pressionamento da tecla Enter.

    ModalResult Propriedade utilizada para encerrar a execuo de um formulrio Modal quandoselecionado um valor diferente de mrNone.

    Parent... As propriedades Parentpermitem que o componente receba a mesma formatao do

    objeto proprietrio.TabOrder Define a ordem na passagem de foco no momento de pressionamento da tecla TAB.TabStop Define se o focoprano componente.

    MtodosSetFocus Envia o foco do windows para o componente.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    31/94

    31

    Objeto Edit (Caixa de edio)

    Paleta Standart

    Importncia: Um dos principais componentespara a entrada de dados do usurio do sistema.

    PropriedadesAutoSelect Define se o texto exibido pelo controle ser selecionado quando este receber o foco da

    aplicao.AutoSize Para componentes TEdit a propriedade determina se a altura do controle ser

    redimensionada quando o tamanho da fonte foralterado.BorderStyle Determina o tipo da borda do componente.CharCase Determina o se tipo da fonte ser maiscula, minscula ou normal.HideSelection Define se o texto perde a seleo ao perder o foco.Maxlength Define um limite para a insero de caracteres.PasswordChar Define qual caractere ser usado para ocultar o texto inserido no componente.

    TextPermite manipular os caracteres inseridos no componente pelo usurio.

    MtodosClear Limpa o contedo da propriedade text.SetFocus Envia o foco do windows para o componente.

    ExerccioConfeccione um formulrio conforme esquema abaixo:

    Funcionalidade:1. As caixas de edio e os rtulos s ficaro habilitados se Delphi for digitado na 1 caixa

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    32/94

    32

    2. O boto Ok s ficar habilitado se o texto das ltimas caixas forem iguais e diferentes debranco.

    Altere as seguintes props do formulrio:Ctl3D = False, BorderStyle = bsDialog, Height = 225, Width = 280 e Position = poCenter

    Faa com que as teclas ou finalize a aplicao.Faa as trs caixas de edio ficarem sem texto e que para cada caractere digitado um @ sejaexibido.Faa com o acesso mnemnico aos rtulos ative a caixa de edio correspondente.Defina o evento para fechamento do formulrio atravs do clique nos botesDesabilite o boto Ok, os dois ltimos rtulos e as duas ltimas caixas de edio.

    Objeto Label (Rtulo de orientao)

    Paleta Standart

    Importncia: Orientar o usurio escolha decomponentes bem como sua utilizao.

    PropriedadesAlignment Define o alinhamento da string na rea do componente.AutoSize Para componentes TDBText e TLabel, esta propriedade define se o controle ser

    automaticamente redimensionado para acomodar o texto.

    FocusControlDefine qual o componente receber foco quando o usurio selecionar a combinao deteclas aceleradoras (atalho) se existir.

    Layout Define o alinhamento vertical do texto na rea do componente.ShowAccelChar Define se o caracter & ser um literal ou tecla de aceleradora (atalho).Transparent Define se o fundo do componente ser transparente ou no.WordWrap Define se o texto poder utilizar o retorno automtico em caso de ultrapassar a largura

    definida e se a propriedadeAutoSizeestiver falsa.

    Objeto Memo (Memorando)

    Paleta Standart

    Importncia: Permite o usurio entrar comdados do tipo TStrings, compara-se funcionalidade do software bloco de notas.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    33/94

    33

    Exerccio:Crie um formulrio conforme lay-out abaixoPara as opes deAdiciona na Posio eApaga Linha, a Caixa de Edio Linha, deve

    ser preeenchida com um valor menor que a da Caixa de Edio Total de LinhasA opoApaga Tudo s poder ocorrer aps confirmao do usurio

    Antes de Carregar e Salvar Arquivo, verificar se o nome do arquivo foi fornecido naCaixa de Edio Arquivo

    A Caixa de Edio Total de Linhas dever se alterar obviamente toda vez toda vez queo contedo do memo for alterado e o seu valor no pode ser alterado pelo usurio

    PropriedadesLines Propriedade do tipo TStrings que contm as linhas de texto do componente.MaxLength Define o limite mximo de caracteres no componente em sua propriedade Lines.ReadOnly Define se o componente do tipo somente leitura.ScrollBars Define se o componente pode trabalhar com barras de rolagem.WantReturns Define se a tecla ENTER ser utiliza para quebra de linha.WantTabs Define a tecla Tab como tabulao ou mudana de foco. Caso falso pode-

    se utilizar CTRL+TAB para produzir o efeito desejado.

    MtodosLoadFromFile Permite carregar um arquivo para a propriedade Lines.SaveToFile Permite salvar o contedo da propriedade Lines em um arquivo especificado.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    34/94

    34

    Objeto CheckBox (Caixa de verificao)

    Paleta Standart

    Importncia: Permite verificar opes boolenaspr-definidas ou re-definidas pelo usurio.

    PropriedadesAllowGrayed Define caso verdadeiro, trs estados possveis para o checkbox: checked (ligado),

    unchecked (desligado) e grayed (parcial). Caso falso, dois estados: checked (ligado) eunchecked (desligado).

    CheckedDefine se o componente est ligado ou no, caso tenha apenas dois estados.

    State Permite definir trs estados se AllowGrayed forverdadeiro.

    Exerccio

    Confeccionar uma aplicao conforme lay-out abaixo.

    Defina o codigo inicialmente prevendo que os CheckBoxs tenham a prop. AllowGrayed = Falsee execute. Depois defina o cdigo com essa prop. = True

    Funcionalidade: Ao se marcar um item, adicionar 1 na Caixa de Edio Total de Itensassinalados. E ao se desmarcar um, decrementar o valor desta Caixa.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    35/94

    35

    Objeto RadioButton (Boto de radio)

    Paleta Standart

    Importncia: Permite escolher entre um grupo,pelo menosuma opo.

    Propriedades

    CheckedDefine se o componente est ligado ou desligado.

    ExerccioConfeccionar uma aplicao conforme lay-out abaixo. Insira primeiro o GroupBox e

    depois os botes de rdio. Observe que interessante definir acessos mnemnicos para osbotes.

    Funcionalidade: Para Nada a Fazer, tire a marca do boto assinaloado e para O queFazer exiba como mensagem o Caption do boto assinalado.

    Objeto ListBox (Caixa de listagem)

    Paleta Standart

    Importncia: Permite o usurio entrar oumanipular uma lista de dados.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    36/94

    36

    Propriedades

    ItemsDefine uma lista de Strings que aparece no componente.

    MultiSelect Permite selecionar vrios itens (Strings) no componente.Sorted Define se a lista de Strings ser ordenada ou no.

    MtodosClear Permite limpar o contedo da propriedade Items.LoadFromFile Permite carregar um arquvo para a propriedade Items.SaveToFile Permite salvar o contedo da propriedade Items para um arquivo.

    Objeto ComboBox1 (Caixa de listagem em formato de cortina)

    Paleta Standart

    Importncia: Permite o usurio entrar oumanipular uma lista de dados.

    Propriedades

    ItemsDefine uma lista de Strings que aparece no componente.

    Sorted Define se os dados sero ordenados.

    TextDefine o texto atual da Combobox.

    MtodosClear Permite limpar o contedo da propriedade Items.LoadFromFile Permite carregar um arquvo para a propriedade Items.SaveToFile Permite salvar o contedo da propriedade Items para um arquivo.

    Exemplo:

    Insira uma ComboBox num formulrio limpo e defina as propriedades:

    Sorted = True, Style = csSimple (redimensione a caixa para poder ver parte dela)

    No evento OnKeyPress, defina

    If key = # 13 then // Se teclou

    Begin

    if (ComboBox1.Text ) and (ComboBox1.Items.IndexOf(Combox1.Text) < 0) then // no duplic.

    ComboBox1.Items.Add(ComboBox1.Text);

    ComboBox1.Text := ;

    Key := #0;

    End;

    Assim, toda vez que o for teclado, a digitao realizada ser inserida na ComboBox.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    37/94

    37

    Exerccio:

    Utilizando a figura abaixo, produzir um aplicao que apresente a seguinte funcionalidade:

    pressionamento do boto Adicionar, aciona o nome escrito na caixa de texto na ComboBox.

    pressionamento do boto Nova, habilita o boto Adicionar, seta o foco da aplicao na Caixade texto, desabilita o boto Nova e Excluir.

    pressionamento do boto Limpar, limpa o contedo da Caixa de Texto e todos os elementosda ComboBox.

    pressionamento do boto Fechar encerra a aplicao.

    No evento click da ComboBox os botes Nova e Excluir ficam habilitados e Adicionardesabilitado.

    Objeto ComboBox1 (Caixa de listagem em formato de cortina)

    Paleta Standart

    Importncia: Permite o usurio entrar oumanipular uma lista de dados.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    38/94

    38

    Propriedades

    ItemsDefine uma lista de Strings que aparece no componente.

    Sorted Define se os dados sero ordenados.

    TextDefine o texto atual da Combobox.

    MtodosClear Permite limpar o contedo da propriedade Items.LoadFromFile Permite carregar um arquvo para a propriedade Items.SaveToFile Permite salvar o contedo da propriedade Items para um arquivo.

    Objeto GroupBox (Caixa de agrupamento)

    Paleta Standart

    Importncia: Permite agrupar componentes eestabelecer um ttulo na propriedade Caption.

    PropriedadesAlign Pemite definir um alinhamento no objeto proprietrio.Caption Define o texto informativo na parte superior do componente.

    Objeto RadioGroup (Grupo de botes radio)

    Paleta Standart

    Importncia: Permite estabelecer um grupo debotes de radio e manipula-los pelapropriedade ItemIndex.

    PropriedadesItems Define os itens disponveis ao usurio.ItemIndex Define qual dos itens est selecionado.Columns Define o nmero de colunas para organizao dos componentes.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    39/94

    39

    Exerccio 1:Utilizando-se da interface mostrada na figura abaixo, produzir uma aplicao que apresente aseguinte funcionalidade:

    O Clique no boto OK dever incrementar a quantidade de votos de cada equipe e aquantidade de entrevistados dos dois sexos.

    Sexo um RadioGroup e as demais caixas GroupBox

    Exerccio 2:

    Defina uma aplicao para conforme o lay-out abaixo.

    Linguagem e Verbo so GroupBoxAdjetivo um RadioGroupEm tempo de projeto ative um boto de cada agrupamentoAlterar o contedo da Caixa de Edio Frase quando qualquer uma das Caixas for alterada.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    40/94

    40

    Objeto Panel (Painel)

    Paleta Standart

    Importncia: Permite agrupar outros objetos eestabelecer um efeito visual nas aplicaes.

    PropriedadesAlign Define o alinhamento do componente em relao ao seu proprietrio.Bevel... Define a caracterstica das bordas (interna e externa) bem como sua

    espessura.

    BorderStyle Define o tipo da borda.

    Exerccio

    Utilizando uma Panel como Barra de Status para exibio de Dicas Flutuantes

    Insira um Panel no formulrio limpo e defina as propriedades:Align = alBottomAlignment = ta LeftJustifyBevelInner = bvLoweredCaption = (nenhum)

    Manipulador para o evento OnClick do Panel digite: Panel1.Caption := Application.Hint

    V no Object Inspector e exclua a conexo do Panel com esse manipulador.Atravs do menu Search | Replace, troque as ocorrncias Panel1Click para DoShowHint.

    No manipulador de evento OnCreate do formulrio, digite: Application.OnHint := DoShowHint;Insira alguns componentes no formulrio e defina dicas atravs da prop. Hint. Seja criativo.ExecuteObserve que sempre que o cursor estiver sobre um dos componentes, a dica aparecer na Barrade status.Poder ocorrer algum problema se a dica da Barra de status for muito grande e o componentetambm utiliza dica instantnea (showHint = True), que geralmente curta.

    Para resolver isso, selecione um componente e na prop. Hint defina dica instantnea | dicaflutuante.Assim, quando o cursor passar sobre o componente, o texto da dica instantnea ser exibidaprximo ao mesmo e o texto da dica flutuante, na linha de status.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    41/94

    41

    Objetos MainMenu e PopupMenu (Menu principal e Menu rpido)

    Paleta Standart

    Importncia: Define os Menus utilizados pelousurio pelo boto esquerdo (MainMenu) oupelo boto direito (PopupMenu) do Mouse.

    PropriedadesItems Define um novo item de Menu.

    Images Define um objeto do tipo ImageList.

    O objeto MainMenu permite a construo de sub-menusatravs de seu construtorclicando no item com o boto direito e escolhendo a opo Create submenu. Pode-setambm excluir ou incluir items aleatoriamente atravs do boto direito no item desejado.

    Para criar um separador de menus, utilize o operador de subtrao (-) e confirmecom a tecla Enter.

    Diferentes ppeis dos itens de menu

    Independentemente da posio deles na estrutura dos menus, h trs tipos fundamentaisde itens de menu:

    Comandos: So itens de menu usado para dar um comando, para executar uma ao. Eles nooferecem nenhuma pista visual.

    Definidores de Estado: So itens de menu usados para alternar uma opo entre ligado edesligado, para mudar o estado de um elemento em particular. Quando h dois estados, estes

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    42/94

    42

    comandos usualmente tm uma marca de verificao esquerda se estiverem ativos. Neste caso,selecionar o comando produz a ao oposta.

    Itens de Dilogo: So itens de menu que fazem com que uma caixa de dilogo aparea. A realdiferena entre estes e os outros itens de menu que o usurio ter condies de explorar ospossveis efeitos da caixa de dilogo correspondente e de finalmente abort-los atravs do boto

    Cancelar da caixa. Esses comandos devem ter uma pista visual, que consiste em trs pontos apso texto. Isto no obrigatrio do ponto de vista tcnico, mas to comum que voc no deveignorar esta diretriz.

    Mudando itens de menu em tempo de execuo

    A estrutura de um menu pode mudar numa srie de maneiras, mas as mais importantesse aplicam a itens individuais. Como por exemplo, quando um comando de menu no pode ouno deve ser selecionado (Prop. Enabled), usualmente ele assume a cor cinza. Neste caso ousurio no tem a chance de usar esse comando.

    Outra mudana visual o uso da marca de verificao (Prop. Checked), que pode sersubstituda por duas legendas diferente (Prop. Caption) para os dois estados do item, como porexemplo: Exibir Lista e Ocultar Lista.

    Editando um menu com o Menu Designer (MD)

    O Delphi possui em editor especial de menus, o Menu Designer. Para invocar estaferramenta, coloque um componente de menu num formulrio e d um clique duplo sobre ele ouna sua propriedade Items ou d um clique com o boto direito do mouse sobre ele e escolhaessa opo.

    No se preocupe demasiadamente com a posio do componente de menu doformulrio, uma vez que isso no afetar o resultado; o menu colocado apropriadamente abaixoda Barra de Ttulo do formulrio.

    Observao:Para ser mais preciso, o formulrioexibe, abaixo de sua legenda, o menu indicadoem sua propriedade Menu, a qual definida por padro to logo voc insira o primeirocomponente de menu principal do formulrio. Se o formulrio tiver mais de um componente demenu principal, esta propriedade deve ser definida manualmente e pode ser mudada tanto emtempo de projeto como em tempo de execuo.

    Para criar o seu menu dentro do Menu Designer basta escrever o texto dos comandos.Para se criar menus suspensos de segundo nvel d um clique com boto direito do mouse sobreo item desejado e selecione o comando Create Submenuou pressione simultaneamente

    . Voc tambm pode utilizar as teclas e para inserir e deletar itens demenu respectivamente e as setas de direo para navegar entre os itens de menu.

    Para adicionar um separadorao menu suspenso, simplesmente insira um hfencomotexto do comando, sendo que o separador no responde ao evento OnClick.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    43/94

    43

    Atalhos de Menu

    Uma caracterstica comum dos itens de menu que eles contm uma letrasublinhada, pode ser a 1 ou uma letra do meio. E ao pressionar + letra, ativa menususpenso correspondente.

    Obviamente, cada elemento da barra de menus deve ter uma letra sublinhado diferente.

    O mesmo verdadeiro para os itens de menu de um menu suspenso especfico.Para determinar a letra sublinhada, simples coloque &antes dela na definio do item.Os itens de menu podem ter tambm teclas de atalho (p.e. ). Para associar

    uma tecla de atalho a uma item de menu (menus suspensos as possui) selecione um valor para apropriedade ShortCut do item atravs das combinaes padres.

    Mudando Itens de Menu

    Trs propriedades so usadas para modificar um item de menu. Usamos a propriedadeChecked para adicionar ou remover uma marca de verificao dentro do item de menu. Apropriedade Enabled pode usada para dar a cor cinza a um item de menu a fim de que ele nopossa ser selecionado pelo usurio. A ltima a Caption, o texto do item de menu.

    Uma quarta operao com item de menu seria a sua remoo ou torn-lo invisvel. Isso facilmente realizado mudando-se o valor da prop. Visible para False. Sugere-se que vocevite esta operao, pois o usurio pode confundir-se. prefervel desabilit-lo temporariamente.

    Associando Eventos a Itens de Menu

    A associao de um evento a um item de menu fita semelhante associao de umevento a qualquer componente. A nica diferena que ele no visto como um componente,logo devemos selecion-lo utilizando caixa de seleo do Obj Inspector ou utilizarmos o MD.

    Exerccio -1

    1. Insira um Label no formulrio e limpe sua legenda

    2. Insira um MainMenu com 1 Menu suspenso e este com 3 itens de menu quaisquer.

    3. Construa o cdigo para que cada vez que selecionarmos um item de menu, a legenda do labelreceba a sua descrio

    4. Execute a aplicao e depois remova os compoentes inseridos no formulrio

    Exerccio 2:

    Confeccione a estrutura de Menu conforme layouts abaixo, observando os nomes dos menussuspensos e dos itens de menu.

    Para obtermos uma janela com melhor aparncia altere a prop Color do formulrio paraclBtnShadow

    Viajar Namorar Comer Estudar Bye Bye

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    44/94

    44

    Praias Ctrl P Cinema Aquilo Cobol SobreMontanhas Boite - Assuntos Espec.Florestas 4 Sof E Mais Aquilo -- - ReligioCasa da Vov Junto com Sogra- -

    Regressar No ..

    Menus Pop-Up ou SpeedMenus ( com o boto direito do mouse) (Standard)

    No Windows comum ver aplicaes que possuem menus locais especiais que voc ativadando um clique com o boto direito do mouse. O menu que exibido - um menu pop-up emtermos do Windows - usualmente depende da posio do clique do mouse. Estes menus tendem aser fceis de usar, uma vez que agrupam somente os poucos comandos relacionados ao elementoque est atualmente selecionado.

    Para adicionar menus pop-up na sua aplicao, execute algumas operaes simples:

    1. Insira um componente PopUpMenu no formulrio2. Adicione alguns itens de menu ao componente3. Associe o componente propriedade PopUpMenudo componente desejado4. E obviamente, adicionar manipuladores de eventos para o OnClick dos itens de menu

    Observaes:

    A propriedade AutoPop = True faz o menu aparecer atravs do clique do boto direitosobre o componente.

    A propriedade Alignment determina onde o menu se abrir. A parte superior do menuser a da posio do cursor do mouse, mas o alinhamento poder ser esquerda ou direita ouno no centro do componente, dependendo do valor definido nesta propriedade.

    O PopUp Menu no deve ter submenus, pois por convenincia, eles devem ser rpidose no possuem teclas de acesso mnemmico (Alt + letra).

    Podem ter tecla de atalho (propriedade ShortCut). Mas ateno: Mesmo que menuno esteja associado a nenhum componente e tambm no esteja exibido, as teclas de atalhoestaro disponveis. Neste caso, para no acessar um item com este recurso, devemos desabilit-lo.

    Um componente de menu suspenso recebe o evento OnPopUp antes que ele sejaexibido. a chance que temos de realizar qualquer preparao em seus itens, como desativar,ajustar marcas de verificao, etc...

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    45/94

    45

    ScrollBar (Standard)

    Paleta Standart

    O componente ScrollBar serve como barra derolamento vertical ou horizontal para seleoe/ou variao de um parmetro.

    O usurio pode modificar o valor representado pelo scrollbar de duas formas: clicandonas setas de incremento/decremento ou diretamente na barra. A primeira ao faz com que ovalor representado sofra uma modificao menor (SmallChange) enquanto a segunda gera umamaior (LargeChange).

    Os limites inferior e superior da faixa de valores vlidos para a ScrollBar so dados porMin e Max respectivamente. Estes limites representam o valor quando o cursor da barra estiverem cima ou esquerda (Min) ou em baixo ou direita (Max).

    O controle prov fcil e eficiente navegao por longa lista de itens ou grandequantidade de informao que no podem ser totalmente visualizadas nas suas reas de exibio.Pode tambm ser usado como entrada de dados ou como mostrador de informaes (valoresnumricos).

    Principais Propriedades

    Propriedade DescrioKind Define a direo da barra de rolagemLargeChange Indica a variao da rolagem feita sem o uso das setas de movimentaoMax Maior valor do ScrollBarMin Menor valor do ScrollBarPosition Indica a posio atual do srollbarSmallChange Indica a variao da rolagem feita com o uso das setas de movimentao

    Principais Eventos

    Evento DescrioOnChange Disparado quando o contedo da propriedade position alterado pelo usurio, e ocorre

    imediatamente aps o OnScrollOnScroll Ocorre quando feita a rolagem do ScrollBar

    Principais Mtodos

    Mtodos DescrioSetParams Modifica os valores das propriedades Position, Min e Max de uma s vez

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    46/94

    46

    FUNES DE CONVERSO E MANIPULAO

    Vamos quebrar nosso estudo sobre os componentes do delphi para falarmos sobre Castinge Converses de tipos , pois estas funessero importantes para futuras esplicaes eatividades.

    Como j sabemos, no podemos atribuir uma varivel outra de um tipo diferente. Casoprecise fazer isso, h duas opes. A primeira casting e a segunda utilizar uma funo deconverso de tipos.

    Funo Objetivo

    Chr Converte um nmero ordinal em um caractere ANSI

    Ord Converte um valor do tipo ordinal em um nmero que indica sua ordem

    Round Converte um valor real em um valor inteiro, arrendondando seu valor

    Trunc Converte um valor real em um valor inteiro, truncando seu valor

    Int Retorna a parte inteira do argumento de valor de ponto flutuante

    IntToStr Converte um nmero em uma string

    IntToHex Converte um nmero em uma string com sua representao em hexadec.

    StrToInt Converte uma string em um nmero, levando uma execeo se a string norepresenta um nmero inteiro vlido

    StrCopy Copia uma string estilo Pascal em uma string terminada em nulo

    FloatToDecimal Converte um valor de ponto flutuante em registro incluindo sua representaodecimal (expoente, dgito, sinal)

    FloatToStr Converte um valor de ponto flutuante para sua representao string usandorepresentao padro

    FloatToStrF Converte um valor de ponto flutuante para sua representao string usando a

    formatao especificadaStrToFloat Converte uma string Pascal em um valor de ponto flutuante

    TextToFloat Converte uma string terminada em nulo em um valor de ponto flutuante

    DateToStr(Date: TdateTime) Converte um dado TDateTime em String.

    DateTimeToStr(DateTime:TDateTime)

    Converte um dado TDateTime em String.

    StrToDate (const S: String) Converte um dado String em tipo TDateTime.

    StrToDateTime(const S:String)

    Converte um dado String em tipo TDateTime

    FormatFloat(const Format:

    string; Value: Extended):string

    Permite formatar um tipo ponto flutuante retornando uma string.

    Edit2.Text := FormatFloat('###,###.00',soma);Sendo soma uma varivel real.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    47/94

    47

    EXEMPLOS:

    Armazenar a data e hora atuais em uma varivel Exibir a data e a hora na legenda de LabelsVar

    InicioAtual : TDateTime;BeginAtual := Now;

    Label1.Caption := DateToStr(Atual);Label2.Caption := TimeToStr(Atual);

    O tipo TDateTime internamente manipulado como tipo Ponto Flutuante.

    PROCEDURES E FUNES

    Procedimentos e funes so blocos de cdigo (rotinas) em Object Pascal que podemou no receber parmetros (valores) para processamento. Uma vez definida a rotina pode-se

    ativa-la de diversas partes do programa atravs de seu nome.A grande diferena entre as formas de definio destas rotinas (se procedimentos ou

    funes) est no fato de que: Procedimento NOretorna valor. Funo Retorna valor.

    DECLARAO E ATIVAO DE PROCEDIMENTO

    Podemos declarar um procedimento da seguinte maneira maneira:Dentro da clusula privateoupublic, defina a declarao do procedimento:

    procedureSoma(X, Y: String);

    Com o cursor posicionado na mesma linha, pressione: CTRL+SHIFT+Ce perceba que oprprio Delphi realiza a construo do procedimento dentro da clusula implementation.Esse recurso chamado Class Completion.Nossa tarefa apenas definir o cdigo a serrealizado pelo procedimento.

    procedureTForm1.Soma(X, Y: String);

    begin

    Label1.Caption := FloatToStr(StrToFloat(X)+StrToFloat(Y));

    end;

    Supondo a existncia de dois componentes Edit, um componente Button e umcomponenteLabel, este cdigo pode ser ativado da seguinte forma:

    procedureTForm1.Button1Click(Sender: TObject);begin

    Soma(Edit1.Text, Edit2.Text);

    end;

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    48/94

    48

    DECLARAO E ATIVAO DE FUNES

    A construo de funes tem o mesmo raciocnio diferindo na caracterstica de retornoda funo.

    Podemos declarar um procedimento da seguinte maneira maneira:Dentro da clusula privateoupublic, defina a declarao da funo:

    functionSubtrai(X, Y: String): String;

    Observe que agora, depois dos parmetros h um tipo de definio de retorno da funo(String).

    Pode-se utilizar a mesma dica de construo do procedimento, na linha da declaraotecle CTRL+SHIFT+C(Class Completion) e perceba que o prprio Delphi realiza a construoda funo dentro da clusula implementation.

    Nossa tarefa apenas definir o cdigo a ser realizado pela funo.

    functionTForm1.Subtrai(X, Y: String): String;begin

    result := FloatToStr(StrToFloat(X)-StrToFloat(Y));

    end;

    A palavra reservadaresult o recurso usado pela Object Pascal para estabelecer oretorno da rotina. No se deve declarar esta varivel, ela declarada no momento dautilizao dafuno.Supondo a existncia de dois componentesEdit, um componenteButtone umcomponenteLabel, esta funo pode ser ativada da seguinte forma:

    functionTForm1.Button2Click(Sender: TObject);

    begin

    Label1.Caption := Subtrai(Edit1.Text, Edit2.Text);end;

    Neste caso, o Label recebe o resultde subtrai, ou seja, a subtrao dos dados passadosnos parmetros.

    DECLARAES CRIADAS AUTOMATICAMENTE PELO DELPHI

    Se voc um bom observador, percebeu que o Delphi tambm gera as declaraes eseus respectivos procedimentos quando voc deseja manipular um determinado evento.

    CAIXAS DE DILOGO

    Podemos utilizar alguns tipos de caixas de dilogo pr-definidas pelo Delphi facilitandoem muito o desenvolvimento pela ferramenta:

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    49/94

    49

    ShowMessage

    A caixa de dilogo ShowMessage declarada internamente pelo Delphi desta forma:procedure ShowMessage(const Msg: string);

    Onde o parmetro Msg um dado String. Exemplo:

    ShowMessage(Um texto ou propriedade string ser exibida.);

    MessageDlg

    A caixa de dilogo MessageDlg declarada internamente pelo Delphi desta forma:

    function MessageDlg(const Msg: string; DlgType: TMsgDlgType;

    Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;Onde:

    const Msg: string uma constante string ou propriedade deste tipo.

    DlgType: TmsgDlgType

    mtWarningContm um cone exclamao amarelo.

    mtErrorContm um cone vermelho de parada.

    mtInformationContm um cone i azul.

    mtConfirmationContm uma interrogao verde.

    mtCustomNo contm BitMap.

    Buttons: TMsgDlgButtonsmbYes mbNo mbOK mbCancel mbAbort mbRetrymbIgnore mbAll mbNoToAll mbYesToAll mbHelp

    HelpCtx: Longint Define um nmero para o help de contexto. Por padro, zero 0.

    Oretorno da funo o tipo do boto como mrDesta maneira pode-se fazer testes lgicos como no exemplo:

    if MessageDlg(Deseja sair?, mtConfirmation, [mbYes, mbNo], 0)=mrYes then

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    50/94

    50

    Application.MessageBox

    Uma outra caixa de dilogo o mtodo MessageBox do objeto Application. Estafuno est definida da seguinte maneira:

    function MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;

    Onde:

    const Text uma constante string ou propriedade deste tipo.Caption: PChar Define uma string para o ttulo da janela.

    Flags

    Define os botes, cones e a possibilidade de focar um determinado boto.Os valores parabotesso:MB_ABORTRETRYIGNORE,MB_OK,MB_OKCANCEL,MB_RETRYCANCEL,MB_YESNO,MB_YESNOCANCELOs valores para os conesso:

    MB_ICONEXCLAMATION,MB_ICONWARNING,MB_ICONINFORMATION,MB_ICONASTERISK,MB_ICONQUESTION,MB_ICONSTOP,MB_ICONERROR,MB_ICONHANDOs valores para a definio doboto default pode ser:MB_DEFBUTTON1,MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4

    Oretornoda funo o tipo do boto como id(IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES)

    Desta maneira pode-se fazer testes lgicos como no exemplo:

    ifApplication.MessageBox('Texto','Ttulo',MB_YESNOCANCEL +MB_ICONINFORMATION + MB_DEFBUTTON2) = IdYes then

    CAIXAS DE ENTRADA

    Podemos obter dados do usurio atravs de caixas de dilogo pr-defindas.

    InputBox

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    51/94

    51

    A funo InputBox retorna um tipo String, que dado digitado pelo usurio na sua utilizao.Sua definio interna a seguinte:

    function InputBox(const ACaption, APrompt, ADefault: string): string;

    Onde:

    const ACaption Define o ttulo da janelaAPrompt Define um rtulo para orientao dentro da caixa.ADefault Define um valor default para a caixa.

    Exemplo:

    InputBox('Ttulo da janela','Descrio','Valor Padro')

    InputQuery

    A funo InputQuery retorna um tipo Booleano, o dado digitado pelo usurio ser colocado emuma varivel do tipo stringpreviamentedeclarada.Sua definio interna a seguinte:

    functionInputQuery(const ACaption, APrompt: string; var Value: string):

    Boolean;

    Exemplo:

    ifInputQuery('Ttulo', 'Descrio', aux) and (aux '') then

    Neste exemplo acima, a janela s retornar verdade sehouver algum valor digitado eo usurioclicar no boto OK, caso contrrio o retorno ser falso.

  • 7/25/2019 PROGRAMAO INICIAL - DELPHI

    52/94

    52

    Exemplo

    Vamos examinar uma unite exemplicar os principais conceitos:type

    TForm1 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    Edit2: TEdit;Label1: TLabel;

    procedureButton1Click(Sender: TObject);

    functionSoma(X, Y: String): Integer; //definida pelo desenvolvedor

    private{ Private declarations }

    aux: Integer; //varivel privada

    public

    { Public declarations }

    frase: String; //varivel pblica

    end;

    var

    Form1: TForm1;

    implementation

    {$R *.DFM}

    constMAX = 50; //definio de constante

    procedure TForm1.Button1Click(Sender: TObject);vartitulo: String; //variavel local

    i: Integer;

    begin

    if(Edit1.Text '') and (Edit2.T