
























































































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

























































































Prof. Mário André
"Paradigma é uma forma de pensar e perceber o mundo real e determina o que escolhemos como significativo e o que descartamos ao compreender ou descrever o que existe ou ocorre no mundo em torno de nós". A mudança de paradigma é uma oportunidade de encontrar novas interpretações para antigas questões, bem como, para rever soluções tidas como definitivas.
Antes de começarmos seria interessante ressaltar que aprender a ser um bom desenvolvedor envolve mais do que aprender a sintaxe de uma linguagem de programação em particular, isto porque existem muitos outros aspectos do campo do sw, que têm pouca conexão com o ato em si de escrever código. Se você pode está pensando: "Ora, vamos, eu só quero aprender Delphi", deveria também pensar que a questão aqui é que, se você pretende desenvolver sw por dinheiro ou para manter-se num emprego, e tem clientes ou chefes esperando que seu sw: Saia funcionando da caixa, Seja feito a tempo, Seja livre de erros e Seja barato, Então, vamos ter que começar por aqui mesmo, comentando sobre problemas como a crise de sw; o ciclo de vida e a engenharia de sw porque apenas talento artístico indisciplinado (intuição) não resolve. Devemos nos lembrar que o objetivo mais direto do desenvolvimento de sw é fazer o produto final satisfazer a especificação dos requisitos. Precisamos portanto, dividir isso em algo mais tratável. Algum grupo menor ou mais preciso de objetivos que sejam mais alcançáveis e fáceis de lembrar. Lembre-se de que se tem algo que é sempre permanente é a mudança. Conforme sabemos, uma aplicação passará a maior parte de seu ciclo de vida na fase de manutenção. Então, é importante termos um conjunto de objetivos que transceda a mudança. Entre outros, os quatro objetivos geralmente excluídos da engenharia de software são a capacidade de modificação, eficiência, confiabilidade e inteligibilidade. Devemos também destacar a ergonomia.
A maior parte dos programadores está acostumada a escrever código que é executado de 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
Prof. Mário André dados de forma sequencial. Esta forma de se programar é dita procedimental. A figura 1 ilustra a sequencialidade encontrada em programas que seguem tal paradigma. Esta forma de programar é uma conseqüência direta dos sistemas computacionais disponíveis no passado. Estes sistemas eram compostos por uma CPU responsável pelo processamento (mestre) e uma série de periféricos (escravos), responsáveis pela entrada e saída de dados. O custo da CPU era nitidamente superior ao de qualquer periférico e até mesmo ao custo do trabalho de quem lidava com estes computadores. Consequentemente, todos os sistemas davam prioridade máxima ao processamento, em relação à entrada e saída de dados. Os programas desenvolvidos visavam normalmente a solução de problemas de natureza científica, que naturalmente requisitavam mais recursos de CPU do que de entrada e saída de dados. A popularização dos computadores modificou este quadro: as aplicações comerciais típicas dos dias de hoje exigem uma atenção maior dos programadores (e dos sistemas computacionais) para a entrada e saída de dados. A hierarquia rígida imposta pela estrutura de menus e a sequencialidade com que os formulários são preenchidos pelo usuário impõem limitações sérias na qualidade da interação do usuário com o computador na programação procedimental. Um exemplo não baseado em eventos Program Verif_Nome; Var Nome : String; Begin Write ('Digite um nome: '); Readln (Nome); If Nome = 'Ze Silva' then Início Entrada de Dados Processamento Fim
Prof. Mário André Ações Sistema Eventos O avanço da tecnologia barateou o custo dos sistemas computacionais e introduziu recursos gráficos para a interação com os usuários (GUI- Graphic User Interface). Uma aplicação que se utiliza de interface gráfica, permite que o usuário decida a seqüência mais apropriada de interação. Esta abordagem muda completamente a forma de se construir programas. As interfaces gráficas introduziram assim uma forma completamente nova de se programar. Nesta abordagem, uma aplicação constitui-se de um loop para tratamento de eventos e de procedimentos associados a eventos específicos. Toda vez que ocorre um determinado evento, o seu procedimento equivalente é executado. Eventos acontecem em decorrência da interação do usuário com o sistema, gerados pelo sistema operacional ou ainda gerados na própria aplicação. Exemplos de eventos: mover o mouse, pressionar uma tecla, selecionar um ítem de menu, setar o foco para um determinado controle, etc. A cada ação do usuário corresponde um ou mais eventos “enviados” para a aplicação. Estes eventos devem ser identificados e tratados de maneira adequada pelo programa. Esta abordagem é conhecida como programação orientada a eventos. As interfaces gráficas tornaram a interação dos usuários com as aplicações bastante atraentes. Em compensação, introduziram uma complexidade enorme do ponto de vista de programação. Para se ter uma idéia, o código em linguagem C no windows para escreve na tela “Alô mundo” possui cerca de 100 linhas. Se acrescentarmos a isto o fato de que 80% do código escrito para uma aplicação é consumido na elaboraçào de interface, fica difícil de massificar a programação em ambientes de interface gráfica. Felizmente, o paradigma da orientação a objetos consegui esconder do programador a maior parte da complexidade da programação nestes ambientes. Loop de Tratamento dos Eventos
Prof. Mário André
O ambiente de desenvolvimento do Delphi é composto de várias ‘partes’ compondo um conjunto integrado de ‘janelas’ que interagem entre si. Vamos abordar cada uma separadamente:
Form é o termo utilizado para representar as janelas do Windows que compõem uma aplicação. Os forms servem como base para o posicionamento dos componentes, que são responsáveis pela interação entre usuário e máquina. Para selecionarmos o form devemos clicar (uma vez) em sua área interna ou na object inspector, e não simplesmente em seu título. As características iniciais do form como tamanho, botões (minimizar, maximizar, fechar, controle) e ícone podem (e serão) ser modificadas através de recursos que veremos adiante.
Prof. Mário André Há uma caixa de listagem^1 que permite a escolha de qual componente deverá ser selecionado. Duas guias : Properties – Define as propriedades e valores do Objeto selecionado. Events – Define quais os eventos serão manipulados pelo desenvolvedor. Algumas propriedades trazem opções diferenciadas para alteração. Por exemplo: Caption – Permite a inserção de uma string de caracteres. Color – Permite a inserção de um dos valores pré-definidos na caixa de listagem. BorderIcons – Toda propriedade que possui o sinal de + tem a característica de mostrar subpropriedades. Deve-se clicar no sinal de + para expandir e no sinal de – para ocultar. Icon – Exibe um botão de reticências (...) que dará origem a uma caixa de diálogo. Os nomes definidos como valores das propriedades na object inspector serão os nomes usados na construção do código em Object Pascal. Na parte superior da janela há uma caixa de listagem que permite a seleção de componentes já inseridos no formulário. Duas guias ( Properties e Events ) separam as listas de propriedades e eventos. As propriedades são definidas através de tipos. Podemos citar no exemplo com o objeto form:
São tipos String ou valores numéricos definidos ao digitar um valor na frente da propriedade. Exemplo: Name, Caption, Height e Width entre outros.
São tipos definidos por uma quantidade limitada de opções que devem ser previamente selecionadas, não simplesmente definidas pelo usuário. Exemplo: Cursor, BorderStyle e WindowState entre outros. (^1) Componente ComboBox.
Prof. Mário André
Algumas propriedades podem conter múltiplos valores. Um exemplo é a propriedade BorderIcons com o sinal + indicando subpropriedades.
As propriedades que são acompanhadas de um ícone de reticências (...) indicam que uma janela de diálogo irá auxiliar na escolha de seu(s) valor(es). Exemplo: Icon.
A guia Events permite o desenvolvedor definir um handler^2 em Object Pascal para um determinado evento que pode ser disparado pelo usuário ou pelo sistema. Um evento é uma ação disparada dentro de uma aplicação orientada a Objeto. Podemos citar as ocorrências dos principais eventos que são disponibilizados na maioria dos componentes em Delphi: Evento Ocorrência OnClick Quando o usuário clicar uma vez com o botão esquerdo do mouse sobre o componente. OnDblClick Quando o usuário dá um duplo clique no componente com o botão 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 construção do procedimento criado pelo próprio Delphi: (^2) Manipulador de evento
Prof. Mário André Podemos considerar também o seguinte fato: ‘Tudo o que o Delphi escrever, é problema dele’. Agora, ‘Tudo o que você escrever é problema seu’. Problema no sentido de atualização de código, como veremos adiante. Quando alteramos o nome do objeto, deve-se utilizar o mesmo nome nas rotinas implementadas. Agora, o que o Delphi declarou, ele se encarrega de atualizar. Pode-se personalizar o Editor através do menu Tools | Editor Options.
Um recurso que vai facilitar nossa vida no momento de desenvolvimento de código é o Code Insight do Code Editor do Delphi., Ele atua como um ajudante de complemento junto ao código do desenvolvedor. Por exemplo, ao digitar o nome de um objeto seguido de ponto (.) abre-se uma listagem de métodos e propriedades que podem ser utilizadas neste objeto. Esta lista pode ser ordenada por nome, clicando com o botão direito dentro da listagem.
Prof. Mário André No momento de chamada de procedimentos ou métodos: Para forçar o code insight em determinada situação, utiliza-se: Ctrl + Barra de Espaço - Para complemento de objetos; seus métodos e propriedades. Ctrl + Shift + Barra de Espaço – Para complemento de parâmetros. Prática 1 - Vamos realizar um pequeno exemplo no Delphi para resultar na execução abaixo: Siga os seguintes passos:
Prof. Mário André configuradas. .DOF Delphi Option File: um arquivo de texto com as configurações atuais para as opções de projeto. Desenvolvimento Exigido apenas se opções de compilação especiais foram configuradas. .DSK Arquivo de Desktop: contém informações sobre a posição das janelas do Delphi, os arquivos abertos no editor e outros ajustes da área de trabalho. Desenvolvimento Não. Você deve excluí-lo se copiar o projeto em um novo diretório. .EXE Aquivo executável: o aplicativo Windows que você produziu. Compilação: Ligação (linking) Não. Esse é o arquivo que você vai distribuir. Ele inclui todas as unidades compiladas, formulários e recursos. .~PA Backup do arquivo Pascal Pode ser ativado ou desativado através do Menu Tools – Editor Options - guia display – Item: Create backup file. Desenvolvimento Não. Esse arquivo é gerado automaticamente pelo Delphi, quando você salva uma nova versão do código-fonte. .TODO Arquivo da lista to - do , contendo os itens relacionados ao projeto inteiro. Desenvolvimento Não. Esse arquivo contém notas para os programadores. O Delphi possui um mecanismo de gerência de arquivos de projeto informando os principais arquivos e seu path. Clique em View – Project Manager A figura acima é um exemplo de um projeto inicial, ainda não salvo. O diretório padrão para criação dos arquivos é projects , obviamente devemos definir na gravação pasta e nomes de arquivos mais específicos.
Para visualizarmos o código fonte da unidade (.PAS) em Delphi basta selecionarmos o code editor (F12). Para visualizarmos o código fonte no arquivo de projeto (.DPR) basta selecionarmos o menu Project – View Source. O arquivo de projeto é exibido em uma guia no code editor. Para fechar a guia basta clicar com o botão direito e escolher close page.
Prof. Mário André Existem três tipos de unidades: unidades associadas aos formulários (as mais comuns), arquivos de unidade usados para armazenar funções e procedures, e arquivos de unidade usados para construir componentes. Vamos ver una unidade básica associada a um formulário: Unit Unit1; Interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; Type Tform1 = class(Tform) procedure FormCreate(Sender: Tobject); private {Declarações privativas} public {Declarações públicas} end; var Form1: Tform1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: Tobject); begin end; end.
Prof. Mário André
O Delphi permite a configuração de vários itens do sistema através do menu Project – Options.
Main form - Nesta guia permite a escolha do formulário principal da aplicação. Available form - Os formulários available (disponíveis) em caso de criação em tempo de execução.
Title - Define um nome para a sua aplicação diferente do nome do arquivo de projeto (.DPR). Help file – Define o nome do arquivo de Help (.HLP) associado à aplicação. Icon – Define o ícone utilizado no arquivo executável. (.EXE)
Estas opções permitem especificar uma compilação personalizada , ou seja, cada projeto pode ser compilado com uma característica.
Estas opções incluem informações para a depuração.
Nesta guia pode-se configurar o diretório de saída para os arquivos gerados pela aplicação.
Estas informações podem ser visualizadas no Windows através do menu rápido do mouse no arquivo executável.
Os packages permitem um controle de distribuição através de DLL’s básicas externas ao executável entre outros recursos. CONVENÇÃO DE NOMEAÇÃO
Prof. Mário André A propriedade mais importante de um componente é a propriedade Name. É ela que define o nome interno com relação ao código escrito em Object Pascal. Para organizar e facilitar o processo de desenvolvimento/manutenção do sistema, grande parte dos desenvolvedores adota uma nomenclatura para tornar o código mais legível possível. O Delphi adota como nomenclatura padrão o nome da classe da qual o componente é instanciado e um número crescente de acordo com o número de ocorrência deste componente no form. Exemplo: Button1, Button2, etc... são componentes instanciados da classe TButton. Não é obrigatória a utilização da convenção de nomes utilizados nesta apostila, mas é muito importante fazer uso de uma convenção mais clara possível. Exemplo: Nome gerado pelo Delphi Objetivo Convenção Button1 Sair da aplicação BtnSair Edit1 Receber nome do usuário EdtNome Label1 Indicar componente Edit LblNome
A 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 código. Caso você selecione uma unit que não esteja aberta, o Delphi a abrirá e mostrará no Code Editor. Figura 31 – A Lista de Units A lista de units pode ser ativada através do menu View , opção Units... , ou através do primeiro ícone inferior da SpeedBar ou através da combinação das teclas