























































































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
Apostilas de Matemática sobre o estudo da Linguagem de Programação Delphi, Paradigmas da Programação, Tratamento de exceções, Um pouco mais sobre componentes (vcl).
Tipologia: Notas de estudo
1 / 95
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 dados de forma sequencial. Esta forma de se programar é dita procedimental. A figura 1 ilustra a sequencialidade encontrada em programas que seguem tal paradigma.
Prof. Mário André
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 writeln ('Nome bem original cara') else
Início
Entrada de Dados
Processamento
Fim
Prof. Mário André
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é
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.
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 handler2 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 esquerdodo mouse sobre o componente.
OnDblClick Quando o usuário dá um duplo clique no componentecom 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:
procedure TForm1.Button1Click(Sender: TObject); begin
end ;
O editor de código é responsável por receber todas as declarações criadas pelo Delphi e handlers^3 criados pelo desenvolvedor. E no ambiente Code Editor que implementamos o algoritmo na linguagem Object Pascal.
(^2) Manipulador de evento (^3) Manipulador de eventos.
Prof. Mário André
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.
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.
Prof. Mário André
Prática 1 - Vamos realizar um pequeno exemplo no Delphi para resultar na execução abaixo:
Siga os seguintes passos:
procedure TForm1.Btn_OlaClick(Sender: TObject); begin
end;
Responda: O que ocorrerá se clicarmos no formulário?
Prof. Mário André
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.
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;
Prof. Mário André
O código acima, junto com o código de arquivo de projeto, é tudo de que precisa no Delphi para criar um executável que abre uma janela. Ele não fará muita coisa nesse ponto, mas é um programa Windows funcional, na sua forma mais simples.
Veja os nomes na cláusula uses, do código acima. Trata-se dos nomes de outras unidades. Se você decidisse escrever várias funções e procedures úteis, poderia criar sua unidade, colocar todo seu trabalho útil nela e compilá-la para uso futuro. Vamos ver as partes que constitui a unidade:
Cabeçalho da unidade - Um cabeçalho de unidade identifica o código como uma unit e é seguido pelo nome.
Interface - Marca o início da parte unit interface, que é usada para declarar variáveis, tipos, procedures, etc. A parte interface determina o que nessa unidade está disponível para outras unidades e partes do programa. A parte interface termina com o início da parte implementation.
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é
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.
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:
Prof. Mário André
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
A janela de lista de forms permite, de forma análoga à de lista de units, que você alterne entre os forms que fazem parte do projeto ativo, sem que eles tenham de estar todos abertos. Caso você selecione um form que não esteja aberto, o Delphi o abrirá e mostrará para edição no Form Designer.