Capítulo 1 – Introdução

Uma linguagem de programação é um método padronizado para expressar instruções para um Computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.

Código fonte

É o conjunto de palavras escritas de forma ordenada, contendo instruções em uma das linguagens de programação existentes no mercado, de maneira lógica. Após compilado, transforma-se em software, ou seja, programas executáveis. Este conjunto de palavras, que formam linhas de comandos, deverão estar dentro da padronização da linguagem escolhida, obedecendo critérios de execução. Atualmente com a diversificação de linguagens, o código pode ser escrito de forma totalmente modular, podendo um mesmo conjunto de códigos ser compartilhado por diversos programas, e até mesmo linguagens.

Software ou programa de computador

É uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado/informação ou acontecimento. Todo computador possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções são representadas por números(opcodes).

Um programa em código de máquina

Consiste de uma sequência de números que significam uma sequência de instruções a serem executadas. Programar diretamente em código de máquina costuma ser exaustivamente difícil, pois requer o conhecimento dos opcodes de cada instrução. Por esse motivo, foi criada uma linguagem de programação chamada linguagem de montagem (assembly language), composta de códigos mnemônicos que, do ponto de vista técnico, é tão próxima do processador quanto o código de máquina, mas é humanamente mais fácil de se compreender uma vez que seus códigos são geralmente acrônimos do inglês.

Por exemplo ´mov´ de mover, ´rep´ de repetição e assim por diante.

 Como é executado um programa

É composto por uma sequência lógica de instruções, que é interpretada e executada por um processador. Um programa pode ser executado por qualquer dispositivo capaz de interpretar e executar as instruções de que é formado. Esses dispositivos possuem um ou mais processadores, que são circuitos complexos e criados para esse fim. Quando um software está escrito usando instruções que podem ser executadas diretamente por um processador dizemos que está escrito em linguagem de máquina. A execução de um software também pode ser intermediada por um programa interpretador, responsável por interpretar e executar cada uma de suas instruções. Uma categoria especial e notável de interpretadores são as máquinas virtuais, como a JVM (Máquina Virtual Java), que simulam um computador inteiro, real ou imaginado.

 Sistemas Operacionais

Sistema Operacional ou Sistema Operativo é um conjunto de ferramentas necessárias para que um computador possa ser utilizado de forma adequada. Consiste na camada intermediária entre o aplicativo e o hardware da máquina.

Este conjunto é constituído por um Kernel, ou núcleo, e um conjunto de softwares básicos, que executam operações simples, mas que juntos fazem uma grande diferença.

Antes que existissem sistemas desse tipo, todo software desenvolvido deveria saber se comunicar com os dispositivos do computador de que precisasse.

Processamento de Dados

Consiste em extrair informação de dados. Os dados são os elementos básicos pertencentes a um conjunto determinado de informações.

Por exemplo um documento de identificação pode conter vários dados de uma pessoa como nome, sexo, data de nascimento, etc. Outros exemplos de dados são a temperatura de uma cidade, ou a área de um território. Ainda que estes pareçam, por vezes, isolados, podem sempre englobar-se em conjuntos (as temperaturas das cidades de uma província ou país, ou as áreas de um conjunto de territórios) ou séries (as temperaturas de uma cidade ao longo do tempo).

Capítulo 2 – A linguagem Delphi

A linguagem Delphi Language (Pascal) é uma linguagem Orientada a Objetos não pura mas híbrida por possuir características de programação não só visual mas também escrita, para os programadores que já conhecem técnicas de estruturas de programação, com o C, Basic, Pascal ou xBASE entre outras linguagens a Delphi Language providência uma migração de forma natural oferecendo um produto de maior complexibilidade.

Delphi Language força a você executar passos lógicos isto torna mais fácil o desenvolvimento no ambiente Windows© de aplicações livres ou que utilizam banco de dados do tipo Client/Server, WebService, Multi Camada e Web, trabalha com o uso de ponteiros para a alocação de memória e todo o poder de um código totalmente compilável. Além disso possibilita a criação e reutilização (vantagem de re-uso tão sonhado com a Orientação a Objetos) de objetos e bibliotecas dinâmicas (Dynamic Link Libraries – DLL). Delphi Language contém todo o conceito da orientação a objetos incluindo encapsulamento, herança e polimorfismo. Algumas extensões foram incluídas para facilitar o uso tais como  conceitos de propriedades, particulares e públicas, e tipos de informações em modo run-time, manuseamento de exceções, e referências de classes. O resultado de toda esta junção faz com que Delphi Language consiga suportar as facilidades de um baixo nível de programação, tais como:

Controle e acesso das subclasses do Windows© (API); Passar por cima das mensagens de loop do Windows©; Mensagens semelhantes as do Windows©; Código puro da linguagem Assembler.

Como deu para perceber a base de toda a programação Delphi é a linguagem Object Pascal.

 

Componentes básicos do Delphi

Existem basicamente duas formas de se definir o que é um componente.

Do ponto de vista usual ou funcional podemos entender que um componente é todo objeto que, em tempo de desenvolvimento, pode ser adicionado em um formulário e ter característica e comportamento alterados através de suas propriedades e eventos.

Os componentes podem ser dividir em duas categorias : Os visuais e os Não visuais.

Componentes Visuais

São todos aqueles componentes que formam a interface com o usuário, ou seja, aqueles que são exibidos tanto em tempo de projeto quanto de tempo de execução.

Exemplos: Button,  Edit, panel, Memo, Label dentre outros. 

Componentes Não-visuais

São todos aqueles componentes que, quando adicionado ao formulário, são representados por um pequeno ícone e quando a aplicação está sendo executada esta representação gráfica deixa de existir. Dessa forma eles não fazem parte da interface da aplicação, apenas disponibiliza recursos.

Exemplos: Query, Timer, DataSource, dentre outros.

Vantagens do uso de componentes

Com o advento da programação visual o uso de componentes tornou-se um grande atrativo. Fica muito mais prático e rápido você adicionar um botão em seu formulário e alterar as suas propriedades de forma a, no mesmo instante, observar os efeitos desta alteração.

Além disso o uso de componentes torna o desenvolvimento de aplicações muito mais rápido. Uma vez que você já possui um componente testado e confiável, basta adiciona-lo em sua aplicação e ajustar as suas propriedades que ele se encarrega de fazer o restante. Ele já sabe o que deve fazer. Se, por exemplo, um usuário alterar o sistema de cores de sua máquina, você não precisa se preocupar em criar rotinas que alterem as cores de sua aplicação, pois os componentes que usam o sistema de cor fazem a alteração necessária.

Outro aspecto importante é que, com o uso de componentes, a manutenção de um sistema se torna mais eficiente. Imagine o trabalho que daria se depois que você acabou de criar uma aplicação, descobre um pequeno problema nos botões, e tem que fazer uma alteração em todos os locais onde aparece algum botão!

Arquivos Produzidos pelo Sistema

EXTENSÃO TIPO DE ARQUIVO E DESCRIÇÃO MOMENTO DA CRIAÇÃO REQUERIDO PARA A COPILAÇÃO
.CFG Arquivo de configuração com opções de projeto. Desenvolvimento Requerido apenas se as opções especiais do compilador foram configuradas.
.RES, .RC Arquivos de recursos: o arquivo binário associado ao projeto e que, em geral, contém seu ícone. Caixa de diálogo Development Options Sim. O arquivo RES principalmente de um aplicativo é reconstruído pelo Delphi.
.DOF Delphi Option File (arquivo de opções do Delphi): um arquivo de texto com as configurações atuais das opções de projeto. Desenvolvimento Requerido apenas se as opções especiais do compilador foram configuradas.
.DPR Arquivo Delphi Project (Projeto Delphi): na verdade, este arquivo contém código-fonte Delphi. Desenvolvimento Sim.
.DFM Delphi Form File (arquivo de formulário do Delphi): arquivo binário com a descrição das propriedades de um formulário IU de um módulo de dados Desenvolvimento Sim. Cada formulário é armazenado em um arquivo PAS e em um arquivo DFM.
.PAS Arquivo fonte de uma unidade Delphi Language (Pascal) ou uma unidade relacionada com um formulário ou unidade independente. Desenvolvimento Sim.

Ambiente de Desenvolvimento (IDE)

Em uma ferramenta de programação visual como o Delphi, o papel do IDE ( Integrated Development Environment ± Ambiente integrado de desenvolvimento ) é, às vezes, ainda mais importante do que a linguagem de programação. O Delphi 7 fornece alguns recursos novos e interessantes que aproveitam o rico IDE do Delphi 6. Se você é um programador iniciante, não se preocupe. O uso do IDE do Delphi é bastante intuitivo.

Ao trabalhar com um ambiente de desenvolvimento visual, seu tempo é gasto em duas partes diferentes do aplicativo: nos projetista visuais e no editor de código. Os projetista visuais permitem que você trabalhe com os componentes no nível visual(quando você incluir um botão em um formulário), O editor é o local na qual você escreve o código.

O mais óbvio de escrever código em um ambiente visual é responder aos eventos, iniciando com aqueles ligados às operações executadas pelos usuários do programa, tal como clicarem um botão ou selecionar um item em uma caixa de lista. À medida que o programador conhece melhor o Delphi, ele passa a escrever principalmente código de manipulação de eventos e, em seguida, passam a escrever suas próprias classes e componentes, e quase sempre acabam passando a maior parte de seu tempo no editor.

20

Object Inspector

É a conexão entre o a parte visual (Form) e a parte codificada (Unit) de sua aplicação.

No Object inspector encontram-se duas abas: Propriedades (Properties) e eventos (Events), onde a primeira determina as características do objeto selecionado e a segunda indica quais são os eventos suportados por este objeto. Além das abas encontra-se uma outra região indicativa do nome e da classe do objeto selecionado.

21

Caixa de estruturas (Structure)

Caixa de estruturas (Structure): É a região do DELPHI onde se apresentam todos os objetos dispostos em um formulário (Form).22

Paleta de Componentes

É a principal barra de ferramenta, pois contem barras que classificam e guardam os componentes (objetos) que serão utilizados durante o desenvolvimento de projetos em Delphi.

23

Editor de código

24

Completação de Classe

Completação de Classe (Code Complete ) ± O editor do Delphi também pode ajudar gerando parte do código-fonte para você, completando aquilo que você já tem escrito. Esse recurso é chamado de completamento de classe, e você pode ativá-lo pressionando a combinação de teclas Ctrl+Shift+C

Completação de Código

Completação de Código permite escolher a propriedade ou método de um objeto simplesmente procurando-o em uma lista ou digitando suas letras iniciais. Para chama essa lista, você apenas digita o nome de um objeto, como Button1, insere o ponto e espera. Para forçar a exibição da lista, pressione Ctrl+Barra de espaço.

25

Estrutura de uma Unit

26

 

SEÇÃO

AÇÃO

Unit

Declara o nome da unit.

Uses

Contém as units acessadas por este arquivo.

Interface

Nesta seção estão as declarações de constantes, tipos de variáveis, funções e procedures  gerais da Unit/Form.

As declarações desta seção são visíveis por qualquer Unit.

INTERFACE – Palavra que inicia a seção;

USES – Cláusula que inicia uma lista de outras unidades compiladas (units) em que se basea:

  • SysUtils: utilitários do sistema (strings, data/hora, gerar arquivos);
  • WinProcs: acesso a GDI, USER e KERNEL do Windows;
  • Wintypes: tipos de dados e valores constantes;
  • Messages: constantes com os números das mensagens do Windows e tipos de dados das Mensagens;
  • Classes: elementos de baixo nível do sistema de componentes;
  • Graphics: elementos gráficos;
  • Controls: elementos de nível médio do sistema de componentes;
  • Forms: componentes de forma e componentes invisíveis de aplicativos;
  • Dialogs: componentes de diálogo comuns.

Type

Declara os tipos definidos  pelo usuário.

Subseções: Private, declarações privativas da Unit.

Public, declarações publicas da Unit.

Var

Declara as variáveis privadas utilizadas.

Implementation

Contém os corpos  das funções e procedures declaradas nas seções Interface e Type. Nesta seção também estão definidos todos os procedimentos dos componentes que estão incluídos no Form. As declarações desta seção são visíveis apenas por ela mesma. Esta seção é formada pelo seguinte código:

  • {$R*.DFM}: Diretiva compiladora que inclui toda a interface, propriedades da forma e     componentes do arquivo
  • *.DFM {$S+}: Diretiva compiladora que ativa verificação de pilha. Seção uses adicional Serve para declarar Units que ativam esta.

Inicialization

Nesta seção, que é opcional pode ser definido um código para proceder as tarefas de inicialização da Unit quando o programa começa. Ela consiste na palavra reservada Inicialization seguida por uma ou mais declarações para serem executadas na ordem.

 

Capítulo 3 – Dicionário do Delphi

Principais eventos

Os eventos recaem em três categoriais: de Mouse, de teclado, ou de Sistema. A maioria dos componentes possui um evento padrão. Para verificar isso, dê um duplo clique sobre o componente do formulário. Os três eventos padrão são OnChange, OnClick e OnCreate, nesta ordem. Se um componente não responder a nenhum deles, significa que ele não possui evento padrão.

Verificação: Dê um duplo clique na área do formulário e terá seu evento padrão, depois faça o mesmo no Label. Insira um Edit e dê um duplo clique.

EVENTO DESCRIÇÃO
OnChange Acontece quando o objeto ou seus dados mudam.
OnClick Clique simples do mouse sobre o componente ou Enter no componente.
OnDblClick Duplo clique do mouse sobre o componente.
OnEnter Ocorre quando o componente recebe foco.
OnExit Ocorre quando o componente perde foco.
OnMouseDown O botão do mouse é pressionado sobre o componente.
OnMouseMove O ponteiro do mouse passa sobre o componente.
OnKeyDown Uma tecla é pressionada. É enviado para o componente com o foco de entrada.
OnKeyPress Uma tecla de caractere é pressionada. Idem.
OnKeyUp Uma tecla é liberada. Idem.
OnDragDrop O componente está sendo arrastado e é solto num local permitido.
OnDragOver O componente está sendo arrastado e passa sobre outro componente.
OnEndDrag O componente está sendo arrastado e é solto num local permitido ou não.
OnStartDrag Acontece quando o usuário começa a arrastar; é enviado para o componente que originou a operação de arrasto.

Principais propriedades

PROPRIEDADES
ActiveControl Permite definir qual o primeiro componente a receber foco assim que o formulário é criado.
Align Altera o alinhamento e preenchimento do objeto.
AutoScroll Permite habilitar as barras de rolagem.
AutoSize Determina se o controle será automaticamente redimensionado.
BoderIcons Determina os ícones a serem exibidos na barra de título do formulário.
BorderStyle Define o estilo da borda do formulário.

  •   bsDialog – Borda não redimensionável, comum em caixa de diálogo;
  •   bsSingle – Borda simples e redimensionável;
  •   bsNone – Borda invisível, não redimensionável, sem botões de controle;
  •   bsSizeable – Borda padrão redimensionável.
BorderWidth Define a espessura da borda.
Caption Indica o rótulo 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 projeto.
DefaultMonitor Associa o form a um monitor específico em uma aplicação que utiliza vários monitores.
Enabled Define se o componente está habilitado ou não.
Font Permite controlar os atributos dos texto exibido em um componente
FormStyle Determina o estilo do formulário.

  •   fsNormal – Definição padrão do formulário;
  •   fsMDIChild – O formulário será uma janela-filha de uma aplicação MDI;
  •   fsMDIForm – O formulário será o formulário-pai de uma aplicação MDI;
  •   fsStayOnTop – O formulário permanece sobre todos os outros formulários do projeto, exceto aqueles que também têm a propriedade FormStyle igual a fsStayOnTop.
Height Define a altura do objeto.
HelpContext Define o tópico do arquivo help que será exibido ao pressionar a tecla F1.
HelpFile Define um arquivo de help específico.
Hint Permite exibir um texto de auxílio 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 formulário.
KeyPreview Define se o formulário deve ou não responder a um pressionamento de tecla, através 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 aplicação.
PopupMenu Define o componente PopupMenu a ser utilizado pelo objeto.
Position Permite definir o tamanho e posição de um formulário no momento em que ele aparece na sua aplicação.
ShowHint Define se a string de auxílio deve ou não ser exibida quando o usuário mantém o ponteiro do mouse sobre um controle.
Taq A propriedade Tag é uma variável do tipo Longint que o Delphi coloca à disposição do usuário, 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 não na tela.
Width Define a largura do objeto.
WindowMenu Permite definir qual o menu responsável por manipular as janelas-filhas de uma aplicação MDI.
WindowState Define o estado de exibição de um formulário.

Métodos

MÉTODOS
Show Exibe o formulário de manipulação não-modal.
ShowModal Exibe o formulário de manipulação modal.
Close Permite fechar o formulário.

Capítulo 4 – Palavras reservadas

A Delphi Language se utiliza das seguintes palavras reservadas, não podendo as mesmas serem utilizadas ou redefinidas:

And Array As Asm
Begin Case Class Const
Construtor Destructor Div Do
Downto Else End Except
Export File Finnaly For
Function Goto If Implementation
In Inherited Initialization Inline
Interface Is Label Library
Mod Nil Not Object
Of On Or Packed
Procedure Program Property Raise

Expressões

As expressões em Delphi Language (como em qualquer linguagem) é formada por operadores e operandos; os operadores são divididos em quatro categorias básicas:

Únicos @, Not
Multiplicativos >, /, div, mod, and, shl, shr, as
Adicionais +, -, or, xor
Relacionais =, < >, <, >, < =, > =, in, is

As expressões obdecem as regras básicas de lógica para a precedência da execução das operações.

Identificadores

Identificadores podem ser constantes, tipos, variáveis, procedures, funções, unidades, programas e campos de registros. Não existe limite de caracteres para o nome de um identificador mas apenas os 63 primeiros caracteres são significantes (não podendo ser idêntico ao nome das palavras reservadas). O nome de um identificador deve ser iniciado por Letras ou o carácter underscore ( _ ). O resto é formado por Letras, Dígitos, carácter underscore (ASCII $5F). Não é permitido a utilização de espaços para a formação do nome. Exemplo de identificadores válidos: Form1, SysUtils.StrLen, Label1.Caption

 Strings

Strings são conjunto de caracteres entre aspas simples.

18

Comentários

Comentários são textos que introduzimos no meio do programa fonte com a intenção de torná-lo mais claro. É uma boa prática em programação inserir comentários no meio dos nossos programas. No Turbo Pascal, tudo que estiver entre os símbolos (* e *) ou { e } ser considerado como comentário.

 Concatenação

19

  Atribuição

variavel := valor;

Capítulo 5 – Estruturas

Estrutura é um conjunto de ações interligadas entre si contendo um comando que caracteriza o seu início e um outro seu fim as estruturas controlam todo o projeto, provocam tomadas de decisões, controlam repetições, deviam o fluxo do projeto e controlam as possíveis exceções.

As estruturas podem ser classificadas em:

Estrutura de bloco

É a estrutura que controla o projeto e cada procedimento nele descrito, determinando seu início e fim. O bloco também pode conter declarações de constantes, tipos, variáveis, procedimentos e funções; estas declarações têm que preceder a parte de declaração do bloco.

Esta estrutura e sempre composta pelos comandos Begin … End, onde o primeiro determina o início da estrutura e o segundo o seu fim.

Um ponto e vírgula após um comando indicam que ainda existem comandos ou declarações pertencentes a estrutura, porém quando o comando End e sucedido do ponto e vírgula indica o fim da estrutura.

O uso do ponto ao final após o End, indica o fechamento do projeto.

Exemplo de estrutura de bloco

6

 

Montando no Delphi

7

8

 

 

 

 

 

 

 

Procedimentos

9

Estrutura de decisão

Provocam desvios no fluxo do projeto de acordo com o projeto de acordo com a entrada fornecida pelo usuário ou resultante de um cálculo.

Muitas vezes em um projeto o processador precisa decidir entre dois ou mais valores, para tanto o desenvolver devera dirigir o fluxo do projeto de acordo com a entrada fornecida pelo usuário ou resultante de um cálculo.

As estruturas de decisão utilizam operadores relacionais, podendo também fazer uso de operadores lógicos.

As estruturas de decisões podem ser classificadas em:

  • Estrutura de decisão única, utilizam a estrutura ..Then…Else;
  • Estrutura de decisão múltipla, utiliza a estrutura ..Else…End;

 

 

Estrutura if…then…else….:(se..então…senão…)

Na estrutura If…Then…Else a decisão e única e quando for verdadeira os comandos que estiverem após o Then serão executados, enquanto os comandos que estiverem após o else serão desprezados. Caso a condição seja falsa os comando existente após o then serão desprezados sendo executados apenas os comandos que estiverem após o Else.

Visualização da Estrutura

10

Para entender melhor esta estrutura de decisão imagine um interruptor de uma lâmpada. Quando o interruptor é fechado permite a passagem da corrente elétrica, acendendo a lâmpada e quando ele é aberto, interrompe-se a passagem da corrente elétrica e a lâmpada não acende. Assim:

Indique a posição do interruptor;

Se a posição o interruptor é fechada então A lâmpada está acesa Senão A lâmpada está Apagada

Fim

Acendendo uma lâmpada:

Baseado na explicação acima monte o seguinte projeto.

11

Case… Of… Else… End (Caso… de… Senão…. Fim)

Na estrutura Case… Of… Else…End a decisão e baseada em múltipla escolha sendo executados apenas os comandos que satisfaçam a condição.

12

Estrutura de loop ou laço

Provocam a repetição de um ou vários procedimentos de acordo com uma condição previamente descrita.

Muitas vezes em um projeto o desenvolvedor necessita repetir um determinado procedimento de forma controlada, a esta repetição denominamos laço ou loop, deverá dirigir o fluxo do projeto de acordo com uma condição previamente descrita.

São três estruturas de laço:

  • .. Until;(Repita… Até);
  • . Do; (Enquanto… Faça);
  • .. To… Do… // For… Downto… Do. (Para… Até… Faça).

Repeat… Until

O Repeat executa sua sucessão de declarações constituintes continuamente e testa a expressão depois de cada repetição. Quando o resultado da expressão é satisfeita, o repeat termina. A sucessão sempre é executada pelo menos uma vez porque expressão não é avaliada até depois da primeira repetição.

13

14

15

While… Do

Executa sua sucessão de declarações constituintes continuamente e testa a expresão antes de cada repetição. Quando o resultado da expressão é não é mais satisfeita, o while termina.

Para entender melhor o funcionamento desta estrutura proceda da seguinte maneira.

Abra o projeto anterior e altere o procedimento onclick do objeto Button1 para:

16

For… To… Do // For… Downto… Do

Executa sua sucessão de declarações constituintes continuamente até que o valor inicial atinja o valor final, através de uma incrementação, (clausula to), ou decrementação, (clausula downto), quando o valor final é alcançado, o for termina.

Para entender melhor o funcionamento desta estrutura proceda da seguinte maneira.

Abra o projeto anterior e altere o procedimento onclick do objeto Button1 para:

17

Estrutura consecutivas

Executa uma sucessão de declaração constituintes.

Estrutura de exceção

Desvia o fluxo do projeto quando ocorre um erro na execução normal de um programa ou outro evento a interrompa.

EXERCÍCIO

Monte um projeto onde o usuário informe o nome do aluno e notas,obtendo como saída, a media aritmética das notas fornecidas e situação em que o aluno encontra, baseando-se na condição abaixo.

Condições propostas: o aluno será aprovado se obter uma média>=6