apostila Delphi

apostila Delphi

(Parte 1 de 6)

Tubarão / Santa Catarina / BRAZIL

E-Mail : osmarjr@unisul.rct-sc.br

http://www.geocities.com/wallstreet/5693

Índice

1. O que é Delphi? 5

2. Como é formado uma Aplicação em Delphi 5

2.1 Arquivos que Compõem um Aplicação 6

2.2 Código fonte do arquivo Project(.DPR) 6

2.3 Código fonte do arquivo Unit (.PAS) 7

3. Janelas 9

3.1 Code Editor (Editor de Código) 9

3.2 Form (Formulário) 9

3.3 Object Inspector (Inspetor de Objetos) 10

3.4 Component Palette( Palheta de Componentes) 10

3.5 Alignment Palette(Palheta de Alinhamento) 11

4. Orientação a Objetos 12

4.1 Eventos 12

4.2 Propriedades 13

4.3 Métodos 16

5. Application 18

5.1 Métodos: 18

5.2 Propriedades: 18

6. MDI Application 18

6.1 Usando o Modelo de Aplicação MDI 18

6.2 Exemplo MDI 19

7. Trabalhando com Banco de Dados 24

7.1 BDE 24

7.2 Arquitetura do Banco de Dados do Delphi 24

7.3 Arquitetura dos Componentes de Banco de Dados 25

7.4 Paleta de Componentes da página de Acesso de Dados 25

7.5 Paleta de Componentes da página de Controle de Dados 26

7.6 Usando DataSets 26

8. A Linguagem SQL 32

8.1 Comandos de Manipulação de Dados 32

8.2 Operadores 32

8.3 Expressões 32

8.4 Funções 33

8.5 Exemplos 33

8.6 Construindo uma Consulta Dinamicamente 34

9. Construindo Relatórios com o QuickReport 35

9.1 QuickReport básico 35

9.2 Criando Relatórios 36

10. Arquivos de Inicialização 39

10.1 O Objeto TInifile 39

10.2 Criando um Arquivo de Configuração 39

10.3 Lendo o Arquivo de Configuração 39

10.4 Modificando um Arquivo .INI 40

10.5 Outras Operações com Arquivos .INI 40

10.6 Manipulação de Arquivos 41

11. Criando HELP 42

11.1 Visão Geral 42

11.2 Escrendo os tópicos 42

11.3 Inserindo notas de rodapé 42

11.4 Adicionando um Hotspot ao tópico 42

11.5 Criando um hotspot para uma janela pop-up 42

11.6 Se for usar um tópico de outro arquivo de help: 42

11.7 Escrevendo Arquivo de Projeto: 43

11.8 Compilando o arquivo de Help: 44

11.9 Inserindo gráficos em um tópico: 44

11.10 Criando um Hot Spot para uma janela secundária 44

11.11 Tornando o arquivo de Help sensível ao contexto 45

11.12 Chamadas ao arquivo de Help 45

12. Exceções 46

12.1 A Estrutura Try…Finally…End 46

12.2 A Estrutura Try…Except…End 46

12.3 Exceções Silenciosas 47

13. Dicas 48

13.1 Criação de MDIChild 48

13.2 Form Existe 48

13.3 Criação ShowModal 49

13.4 Fechar Todas 49

13.5 Relógio e Teclado 49

13.6 Informações Sistema 50

14. Bibliografia 51

1.O que é Delphi?

O Delphi é um ambiente de desenvolvimento de aplicações, orientado a objeto, que permite o desenvolvimento de aplicações para os Sistemas operacionais Windows 3.11, Windows 95 e Windows NT, com pouca codificação.

O Delphi tem ferramentas de desenvolvimento, como templates e experts de aplicações e formulários, que aumentam muito a produtividade, facilitando a programação da aplicação.

2.Como é formado uma Aplicação em Delphi

Quando você abre um projeto no Delphi, ele já mostra uma UNIT com várias linhas de código. Este texto tem como objetivo explicar um pouco desta estrutura que o ele usa. Um projeto Delphi tem, inicialmente, duas divisórias: uma UNIT, que é associada a um Form, e outra Project, que engloba todos os FORM e UNITs da aplicação.

Em Delphi temos: o Project, os Forms e as Units. Para todo Form temos pelo menos uma Unit (Código do Form), mas temos Units sem form (códigos de procedures, funções, etc).

2.1Arquivos que Compõem um Aplicação

2.1.1Arquivos Gerados no desenvolvimento

Extensão Arquivo

Definição

Função

.DPR

Arquivo do Projeto

Código fonte em Pascal do arquivo principal do projeto. Lista todos os formulários e units no projeto, e contém código de inicialização da aplicação. Criado quando o projeto é salvo.

.PAS

Código fonte da Unit( Object Pascal)

Um arquivo .PAS é gerado por cada formulário que o projeto contém. Seu projeto pode conter um ou mais arquivos .PAS associados com algum formulário. Contem todas as declarações e procedimentos incluindo eventos de um formulário.

.DFM

Arquivo gráfico do formulário

Arquivo binário que contém as propriedades do desenho de um formulário contido em um projeto. Um .DFM é gerado em companhia de um arquivo .PAS para cada formulário do projeto.

.OPT

Arquivo de opções do projeto

Arquivo texto que contém a situação corrente das opções do projeto. Gerado com o primeiro salvamento e atualizado em subsequentes alterações feitas para as opções do projeto.

.RES

Arquivo de Recursos do Compilador

Arquivo binário que contém o ícone, mensagens da aplicação e outros recursos usados pelo projeto.

.~DP

Arquivo de Backup do Projeto

Gerado quando o projeto é salvo pela segunda vez.

.~PA

Arquivo de Backup da Unit

Se um .PAS é alterado, este arquivo é gerado.

.~DF

Backup do Arquivo gráfico do formulário

Se você abrir um .DFM no editor de código e fizer alguma alteração, este arquivo é gerando quando você salva o arquivo.

.DSK

Situação da Área de Trabalho

Este arquivo armazena informações sobre a situação da área de trabalho especifica para o projeto em opções de ambiente( Options Environment).

Obs.: .~DF, .~PA , .~DP são arquivos de backup( Menu Options, Enviroment, Guia Editor Display, Caixa de Grupo Display and file options, opção Create Backup Files, desativa o seu salvamento).

Devido a grande quantidade de arquivos de uma aplicação, cada projeto deve ser montado em um diretório específico.

2.1.2Arquivos Gerados pela Compilação

Extensão Arquivo

Definição

Função

.EXE

Arquivo compilado executável

Este é um arquivo executável distribuivel de sua aplicação. Este arquivo incorpora todos os arquivos .DCU gerados quando sua aplicação é compilada. O Arquivo .DCU não é necessário distribuir em sua aplicação.

.DCU

Código objeto da Unit

A compilação cria um arquivo .DCU para cada .PAS no projeto.

Obs.: Estes arquivos podem ser apagados para economizar espaço em disco.

2.2Código fonte do arquivo Project(.DPR)

Nesta arquivo está escrito o código de criação da aplicação e seus formulários. O arquivo Project tem apenas uma seção.

Esta seção é formada pelo seguinte código:

PROGRAM - Define o Projeto;

USES - Cláusula que inicia uma lista de outras unidades.

Forms = É a unidade do Delphi que define a forma e os componentes do aplicativo

In = A clausula indica ao compilador onde encontrar o arquivo Unit.

Unit1 = A unidade que você criou

{$R *.RES} - Diretiva compiladora que inclui o arquivo de recursos.

Abaixo veja como fica o Project quando você abre um projeto novo:

program Project1;

uses

Forms,

Unit1 in 'UNIT1.PAS' {Form1};

{$R *.RES}

begin

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

2.3Código fonte do arquivo Unit (.PAS)

Nesta divisória serão escritos os códigos dos seus respectivos forms (Unit1 = Form1). Aqui serão definidos os códigos de cada procedimento dos componentes que você colocar no form.

2.3.1Seção Unit

Declara o nome da unit.

2.3.2Seção Uses

Contém as units acessadas por este arquivo.

2.3.3Seção 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. Esta seção é formada pelo seguinte código:

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

2.3.4Seção Type

Declara os tipos definidos pelo usuário. Subseções: Private, declarações privativas da Unit. Public declarações publicas da Unit.

2.3.5Seção Var

Declara as variáveis privadas utilizadas.

2.3.6SeçãoImplementation

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.

2.3.7Seção uses adicional

Serve para declarar Units que ativam esta.

2.3.8Inicialization

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 em ordem.

2.3.9Exemplo

Abaixo veja como fica a unit quando você abre um projeto novo:

unit Unit1;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

{Uses Adicional}

{Initialization}

end.

3.Janelas

3.1Code Editor (Editor de Código)

Aba da Página

Indicador de Modo

Indicador de Modificação

Indicador de Linha

e Coluna

Barra de Título

(Mostra o nome do arquivo)

3.2Form (Formulário)

Você usa formulários para fazer interface com o usuário, nele são inseridos os componentes. O formulário é uma janela, e portanto, possui os atributos de uma janela (menu de controle, botões de maximizar e minimizar), barra de título, bordas redimensionáveis).

3.3Object Inspector (Inspetor de Objetos)

É uma ferramenta composta de duas páginas: Properties (Propriedades) e Events (Eventos).

A página Properties([Propriedades) permite que você estabeleça parâmetros de formulários e componentes. Estes parâmetros especificam os valores iniciais de características como nome do componente e sua posição no formulário.

A páginas Events (Eventos) permite associar os componentes com ações do usuário.

3.4Component Palette( Palheta de Componentes)

É composta de várias páginas contendo cada uma grupos de componentes. Para mudar de página na palheta de componentes, clique sobre a aba da página que você quiser acessar.

3.5Alignment Palette(Palheta de Alinhamento)

Outras: Browser, BreakPoints, CallStack, Watches, Component List e Windows List.

Obs.: Devido a grande quantidade de janelas é interessante que se tenha no mínimo a resolução de vídeo 800X600, para se ter espaço para o desenvolvimento.

4.Orientação a Objetos

Por ser baseado no Pascal Object, o Delphi permite que se construa aplicações orientadas a objetos. Em linhas gerais, aplicações orientadas a objetos se baseiam no conceito de classe. A classe é um tipo de dados, contendo atributos e serviços. O objeto é uma variável de determinada classe. Por exemplo, um formulário nada mais é do que um objeto da classe Formulário (Tform). Contém atributos e serviços.

4.1Eventos

Os programas feitos em Delphi são orientados a eventos. Eventos são ações normalmente geradas pelo usuário. Ex.: Clicar o mouse pressionar uma tecla, mover o mouse etc. Os eventos podem ser também gerados pelo windows.

Existem eventos associados ao formulário e cada componente inserido neste.

Exemplos:

- Ao formulário está ligado on create, que ocorre quando mostramos o formulário na tela.

- Ao componente botão está ligado o evento on click, que ocorre quando damos um click com o mouse sobre o botão.

4.1.1Eventos comuns ao formulário e aos componentes.

Alguns eventos ligados tanto ao formulário quanto aos componentes estão listados a seguir.

  • OnClick:ocorre quando o usuário clica o objeto.

  • OndblClick: ocorre quando o usuário da um duplo clique.

  • OnKeyDown: ocorre quando o usuário pressiona uma tecla enquanto o objeto tem foco.

  • OnKeyUp: ocorre quando o usuário solta uma tecla enquanto o objeto tem o foco.

  • OnKeyPress: ocorre quando usuário da um clique numa tecla ANSI.

  • OnMouseDown: ocorre quando o usuário pressiona o botão do mouse.

  • OnMouseUp: ocorre quando o usuário solta o botão do mouse.

  • OnMouseMove: ocorre quando o usuário move o ponteiro do mouse.

4.1.2Rotinas que Respondem a Eventos

Cada evento gera uma procedure, aonde você deve inserir as linhas de código que envolvem este evento. Por exemplo, o evento OnClick, que é gerado ao clicarmos em um botão chamado BTNSair, cria a procedure:

Procedure TForm1.BTNSairClick(Sender: Tobject);

onde Tform1 é o objeto Tform que contém o botão BTNSair, e Sender é um objeto Tobject que representa o componente que deu origem ao evento.

Se você quiser inserir uma rotina que trate um determinado evento de um componente, faça o seguinte:

  • clique sobre o componente;

  • no Object Inspector, seleciona a página Events;

  • dê um duplo clique sobre o evento para o qual quer inserir o código;

  • entre no editor de código e escreva as linhas de código.

Exemplo:

Procedure TForm1.BTNSairClick(Sender: Tobject);

begin

Form1.Close;

end;

Obs.: Escreva seu código entre o begin e o end, se por acaso você quiser retirar o evento e o componente, retire primeiro os eventos do componente removendo somente o código que você colocou e depois o componente; os resto dos procedimentos o DELPHI tira para você.

4.2Propriedades

Como vimos, eventos podem estar associados a modificações em propriedade de componente e formulário, ou seja, você pode modificar propriedades de formulários e componentes durante a execução do sistema. Para isto você deverá usar a sintaxe:

<componente>.<propriedade>;

Por exemplo, para modificar a propriedade text de uma caixa de edição Edit1 para “Bom Dia” faça:

Edit1.Text := ‘Bom Dia’;

Se a propriedade do componente tiver subpropriedades, para acessa-lá, utilize a seguinte sintaxe:

<componente>.<propriedade>.<subpropriedade>

Por exemplo, para modificar a subpropriedade Name referente a propriedade fonte, de uma caixa de edição Edit1, para ‘Script’, faça:

Edit1.Font.name := ‘Script’;

Obs.: Verifique o tipo da propriedade para antes de mandar o valor, consultando no Objetc Inspector.

4.2.1Consultando Propriedades e Eventos de um componente.

Obs.: Cada componente tem sua próprias propriedades e eventos, e podem existir propriedades iguais de um componente para o outro, portanto lembre-se das propriedades e eventos comuns entre eles.

4.3Métodos

São procedures ou funções embutidas nos componentes e formulários, previamente definidas pelo Delphi.

Alguns métodos são descritos a seguir:

  • Show : Mostra um formulário;

  • Hide : Esconde um formulário mais não o descarrega;

  • Print : Imprime um formulário na impressora;

  • SetFocus : Estabelece o foco para um formulário ou componente;

  • BringtoFront: Envia para frente.

4.3.1Chamado de métodos como resposta a eventos:

Um evento pode gerar a chamada para um método, ou seja, uma subrotina previamente definida para um componente.

No código, para utilizar um método, use a seguinte sintaxe:

<nome do objeto>.<método>

Por exemplo, clicar em um botão pode dar origem ao evento Show de um outro formulário, mostrando este novo formulário na tela:

Form2.show;

5.Application

Sempre que você processa um projeto DELPHI, o Delphi cria automaticamente o objeto Application. Você tem de trabalhar com propriedades e métodos desse objeto para poder fazer coisas como especificar o ícone do aplicativo, especificar o nome de arquivo de Help do projeto ou o titulo da aplicação.

5.1Métodos:

MessageBox - Exibe uma caixa mensagem padrão Windows.

Método Minimize - Minimiza o aplicativo a um ícone;

Método Restore - Restaura o aplicativo ao estado anterior

ProcessMessages - Permite ao seu aplicativo deixar o Windows processar eventos para outros aplicativos.

Terminate - Finaliza a aplicação.

5.2Propriedades:

ExeName - Traz o nome do executável que é o nome projeto

HelpFile - Nome de arquivo de Help.

Icon - Ícone da aplicação por completo, sendo que cada janela tem seu próprio ícone.

Title - Título da aplicação.

Obs.: Algumas Propriedades podem ser acessadas pelo Menu Options, Opção Project, Guia Application.

6.MDI Application

Uma aplicação MDI (Multiple Document Interface) é aquela em que vários formulários ou janelas podem ser abertas em um pai.

Exemplos: Word, Excel.

6.1Usando o Modelo de Aplicação MDI

Para criar uma aplicação MDI automaticamente:

Ative a galeria de projetos, através do Menu Options, opção Environment, guia preferences, marcando a opção Use on New Project, do quadro Gallery;

No Menu do Delphi, escolha File opção New Project.

Clique sobre o ícone da aplicação MDI,

Clique no botão OK.

O DELPHI pede então o diretório onde você irá armazenar a aplicação.

Escolha o diretório, e clique no botão OK.

O DELPHI gera automaticamente um projeto MDI, contendo dois formulários: um formulário pai e um formulário Filho. O Formulário pai, de nome MainForm, ligado a unit Main, possui o seguinte aspecto:

O Formulário Filho modelo, de nome MDIChild, ligado a unit Childwin, apresenta o seguinte aspecto:

Obs.: A diferença entre os dois formulários esta na propriedade FormStyle, onde a MainForm está como fsMDIForm(Pai) e ChildWin como fsMDIChild (Filho).

6.2Exemplo MDI

6.2.1Projeto.DPR

program Projeto;

uses

Forms,

Principa in 'PRINCIPA.PAS' {FrmPrincipal},

Cadastro in 'CADASTRO.PAS' {FrmCadastro};

{$R *.RES}

begin

Application.CreateForm(TFrmPrincipal, FrmPrincipal);

Application.Run;

end.

6.2.2Principa.DFM

6.2.3Principa.PAS

unit Principa;

(Parte 1 de 6)

Comentários