programação em delph

programação em delph

(Parte 1 de 10)

Delphi

Enviado por: Aryanne da Costa

2 BORLAND DELPHI®

Parte desta apostila foi criada utilizando-se partes de apostilas encontradas na Internet. Qualquer problema, por favor, contatar o professor para correção.

Esta apostila foi elaborada com o propósito de servir de apoio ao curso e não pretende ser uma referência completa sobre o assunto. Para aprofundar conhecimentos, sugerimos consultar as seguintes obras:

1. Cantu, Marco, "Dominando o Delphi 7 – A Bíblia", São Paulo, Makron Books, 2003 2. Cortes, Pedro Luiz, “Trabalhando com Banco de Dados Utilizando o Delphi”, Érica, 2005

O curso parte do pressuposto que a pessoa é iniciante em Delphi, mas que conhece Lógica de Programação e possui conceitos básicos de POO.

Eduardo Rosalém Marcelino –– ermarc@@itelefonica..com..br

ÌNDICE4
UM POUCO SOBRE DELPHI E PROGRAMAÇÃO PARA WINDOWS6
PRINCÍPIOS DA PROGRAMAÇÃO PARA WINDOWS7
COMPONENT PALETTE (PALETA DE COMPONENTES)8
CONCEITO DE PROGRAMAÇÃO ORIENTADA A OBJETO13
ORIENTAÇÃO A OBJETO13
EVOLUÇÃO DAS LINGUAGENS PARA O15
BENEFÍCIOS DA OOP15
LINGUAGENS PROCEDURAIS X ORIENTADA A OBJETOS :15
ALGUNS EXEMPLOS DE LINGUAGENS PROCEDURAIS COM EXTENSÕES O:16
LINGUAGENS COMPILADAS X INTERPRETADAS :16
EVENTOS, MÉTODOS E PROPRIEDADES16
EVENTOS16
PROPRIEDADES17
MÉTODOS18
OBJECT PASCAL18
PALAVRAS RESERVADAS19
VARIÁVEIS20
ARRAYS (VETORES)21
RECORDS (REGISTROS)21
PRINCIPAIS TECLAS DE ATALHO DA IDE DO DELPHI2
COMO É FORMADA UMA APLICAÇÃO EM DELPHI2
ARQUIVOS QUE COMPÕE UMA APLICAÇÃO DELPHI23
ARQUIVOS GERADOS NO DESENVOLVIMENTO23
ARQUIVOS GERADOS PELA COMPILAÇÃO24
CÓDIGO FONTE DO ARQUIVO PROJECT(.DPR)24
ESTRUTURA DA UNIT DE UM FORM (.PAS)25
O PARÂMETRO “SENDER” E OS OPERADORES “IS” E “AS”26
O OPERADOR “IS”26
O OPERADOR “AS"26
O PARÂMETRO SENDER27
UM EXEMPLO COMPLETO COM OS OPERADORES “AS” E “IS”28
EVENTOS MAIS UTILIZADOS NO DELPHI:30
ONCREATE30
ONKEYPRESS30
ONKEYDOWN30
ONCLICK31
ONDESTROY31
ONDBLCLICK31
ONMOUSEMOVE32
ONENTER32
ONEXIT32
ASSOCIANDO UM PROCEDIMENTO À UM EVENTO EM TEMPO DE EXECUÇÃO32
A CLASSE TWINCONTROL3
PRINCIPAIS PROPRIEDADES3
PRINCIPAIS MÉTODOS3
ALGUNS COMPONENTES VISUAIS DO DELPHI 20053
PRINCIPAIS EVENTOS DO FORMULÁRIO3
PALHETA STANDARD34
MANIPULANDO DATA E HORA NO DELPHI35
APLICAÇÕES ROBUSTAS - TRATAMENTO DE EXCEÇÕES37
EXCEÇÕES38
BLOCOS PROTEGIDOS38
PRINCIPAIS EXCEÇÕES39
BLOCOS DE FINALIZAÇÃO39
GERAÇÃO DE EXCEÇÕES40
EXCEÇÕES SILENCIOSAS41
MANIPULANDO EXCEÇÕES GLOBAIS41
ENTENDENDO UM POUCO SOBRE O QUE É UM GPF42
CONFIGURANDO O DELPHI PARA NÃO “PARAR” EM EXCEÇÕES42
CONCLUSÃO:42
ARQUIVOS INI43
CRIANDO UMA BIBLIOTECA DE PROCEDURES, FUNÇÕES, ETC45
TRABALHANDO COM FORMULÁRIOS47
PRINCIPAIS TECNOLOGIAS DE ACESSO A DADOS49
BDE (BORLAND DATABASE ENGINE):49
DBEXPRESS (DBX):49
ADO (ACTIVEX DATA OBJECTS):49
"INTERBASE EXPRESS">INTERBASE EXPRESS (IBX):50
CONFIGURANDO UMA CONEXÃO COM BD USANDO ADO NO BORLAND DELPHI 200551
CRIANDO UM CADASTRO SIMPLES (APENAS 1 TABELA)54
VALIDANDO OS DADOS DO CADASTRO56
CRIANDO UM CADASTRO COM MAIS DE UMA TABELA (FK)57
SUGERINDO UM CÓDIGO AUTOMATICAMENTE58
SOLICITANDO UM DADO AO USUÁRIO (INPUTBOX)59
CADASTROS SEM O TDBNAVIGATOR60
UMA TELA CRIADA SEM O TDBNAVIGATOR61
CONSTRUINDO UMA TELA DE CONSULTA63
PASSANDO PARÂMETROS PARA O OBJETO ADOQUERY64
DATAMODULE64
CONTINUANDO COM A CONSTRUÇÃO DA TELA DE CONSULTA65
O MÉTODO LOCATE DA CLASSE TDATASET65
VERIFICANDO SE UM REGISTRO EXISTE EM UMA TABELA67
EXIBINDO OS ERROS EM UMA TELA SEPARADA68
TRABALHANDO COM VETORES DINÂMICOS70
TRANSAÇÕES73
FILTRANDO DADOS DE UMA TABELA76
FRAMES7
OBJETO TFIELD81
ACESSANDO OS DADOS DE UM TFIELD:83
FIELDS EDITOR84
VALIDANDO ATRAVÉS DO EVENTO ONVALIDADE DOS OBJETOS TFIELD85
CAMPOS CALCULADOS86
CAMPOS LOOKUP8
O EVENTO ONGETTEXT90
O EVENTO ONSETTEXT91
TABELAS TEMPORÁRIAS COM O TCLIENTDATASET91
FORMULÁRIOS PADRÕES93
CRIANDO UM CADASTRO MASTER - DETAIL95
APÊNDICE - FUNÇÕES PARA TRABALHAR COM STRINGS (RETIRADAS DO HELP DO DELPHI 7)106
APÊNDICE - OBJECT PASCAL: ESTRUTURAS BÁSICAS109
APÊNDICE - RELAÇÕES ENTRE CLASSES117
APÊNDICE - DESCRIÇÃO DOS PRINCIPAIS PROCEDIMENTOS E FUNÇÕES PRÉ DEFINIDAS118

No início, programar em Windows era algo extremamente complicado e acessível apenas a programadores dispostos a investir muito tempo e fosfatos na leitura de pilhas de livros, intermináveis testes e análise de programas exemplos que mais confundem do que explicam. Mas porque era tão difícil fazer programas para Windows? Para começar, o Windows usa o conceito de GUI (Graphic User Interface – Interface Gráfica com o Usuário), que embora fosse muito familiar para usuários do Unix e do Mac OS, era novidade para usuários do DOS.

O uso de um sistema GUI implicava em aprender vários conceitos que eram estranhos ao usuário de um sistema baseado em texto como o DOS. Para complicar um pouco mais, o Windows é um sistema multi-tarefa, e as aplicações são orientadas a eventos, o que implica em aprender um novo estilo de programação. Finalmente, o programador tinha que ter alguma familiaridade com as centenas de funções oferecidas pela API do Windows. Por tudo isso, programação em Windows era um assunto que costuma provocar arrepios nos programadores.

Felizmente as linguagens visuais chegaram para mudar esta situação. Foi só com elas que o Windows conseguiu cumprir sua promessa de ser um sistema amigável e fácil de usar também para os programadores, que sempre tiveram que pagar a conta da facilidade de uso para o usuário.

Entre as linguagens visuais que surgiram, nenhuma veio tão completa e bem acabada quanto o Delphi. Desde o início ele possuía um compilador capaz de gerar código diretamente executável pelo Windows, proporcionando uma velocidade de execução de 5 a 20 vezes maior que as linguagens interpretadas como o Visual Basic e Visual FoxPro que geravam executáveis Pcode que precisam de arquivos auxiliares de run-time. Além disso, o Delphi também possuía uma engine para acesso a diversos bancos de dados e um gerador de relatórios.

O tempo de desenvolvimento de qualquer sistema foi reduzido a uma fração do tempo que seria necessário usando outras linguagens e o resultado é sempre muito melhor. É por isso que o Delphi fez e faz tanto sucesso no mundo inteiro, sempre ganhando prêmios como melhor ferramenta de desenvolvimento para Windows.

O objetivo principal de qualquer ferramenta de desenvolvimento ou linguagem de programação é a criação de aplicações. Determinadas linguagens ou ferramentas devido aos recursos que possuem são mais indicadas para a criação de aplicações comerciais, outras se destinam mais a aplicações científicas ou ainda para a criação de sistemas operacionais.

O Delphi é uma ferramenta RAD (Rapid Application Development – Desenvolvimento Rápido de Aplicações) criada pela Borland. É uma ferramenta de propósito geral, permitindo o desenvolvimento de aplicações tanto científicas como comerciais com a mesma facilidade e alto desempenho.

Integra-se facilmente com a API (Application Program Interface) do Windows, permitindo a criação de programas que explorem ao máximo os seus recursos, assim como os programas escritos em linguagem C/C++.

Possui um compilador extremamente rápido, que gera executáveis nativos (em código de máquina, não interpretado), obtendo assim melhor performance e total proteção do código fonte.

O Delphi é extensível, sua IDE (Integrated Development Environment – Ambiente de Desenvolvimento Integrado) pode ser ampliada e personalizada com a adição de componentes e ferramentas criadas utilizando-se o Object Pascal, a linguagem de programação do Delphi. Neste ambiente constroem-se as janelas das aplicações de maneira visual, ou seja, arrastando e soltando componentes que irão compor a interface com o usuário.

O Object Pascal é uma poderosa linguagem Orientada a Objeto, que além de possuir as características tradicionais das mesmas como classes e objetos, também possui interfaces (semelhantes às encontradas em COM e Java), tratamento de exceção, programação multithreaded e algumas características não encontradas nem mesmo em C++, como RTTI (Runtime Type Information). Assim como o C++, o Object Pascal é uma linguagem híbrida, pois além da orientação a objeto possui também uma parte da antiga linguagem estruturada (Pascal)

Devido ao projeto inicial da arquitetura interna do Delphi e da orientação a objeto, suas características básicas mantêm-se as mesmas desde o seu lançamento em 1995 (ainda para o Windows 3.1, pois o Windows 95 ainda não havia sido lançado), o que demonstra um profundo respeito com o desenvolvedor. Isto permite que uma aplicação seja facilmente portada de uma versão anterior para uma nova, simplesmente recompilando-se o código fonte.

Obs: Embora as características, teorias e exemplos abordados aqui sejam sobre o Delphi 2005 (última versão disponível), tudo pode ser aplicado em versões anteriores do Delphi, excetuando-se o caso da utilização de componentes e ferramentas introduzidos apenas nesta versão.

Antes de começar a trabalhar com o Delphi, é importante ter algumas noções do que está envolvido na programação Windows e no Delphi em particular. Algumas coisas tornam a tarefa de programação no Windows (e ambientes baseados em eventos e interface gráfica) bem diferente de outros ambientes e das técnicas de programação estruturada normalmente ensinadas nos cursos de lógica de programação:

Independência do Hardware: No Windows, o acesso aos dispositivos de hardware é feito com intermédio de drivers fornecidos pelo fabricante do hardware, o que evita que o programador tenha que se preocupar com detalhes específicos do hardware. Como acontecia com a programação em DOS.

Configuração Padrão: O Windows armazena centralmente as configurações de formato de números, moeda, datas e horas, além da configuração de cores, livrando o programador de se preocupar com esses detalhes específicos.

Multitarefa: Antigamente, no DOS (não estamos falando do Prompt do MS-DOS), um programa geralmente tomava o controle da máquina só para si, e outros programas não rodavam até que o mesmo fosse fechado. Já no Windows vários programas são executados de maneira simultânea e não há como evitar isso.

Controle da Tela: No DOS geralmente um programa ocupa todo o espaço da tela, e o usuário via e interagia apenas com aquele programa. Já no Windows, todas as informações mostradas e todas as entradas recebidas do usuário são feitas por meio de uma janela, uma área separada da tela que pode ser sobreposta por outras janelas do mesmo ou de outros programas.

Padrões de Interface: No Windows, todos os elementos de interface aparecem para o usuário e interagem da mesma forma. Além disso, existem padrões definidos pela Microsoft que são recomendados para conseguir a consistência entre aplicativos. Falaremos de alguns deles no curso, mas a melhor forma de aprendê-los é analisar os aplicativos Windows mais usados do mercado.

Eventos e a Cooperação com o Sistema: Num programa criado para DOS (como os programas escritos em Clipper) ele é responsável pelo fluxo de processamento, temos que definir claramente não só que instruções, mas também em que ordem devem ser executadas, ou seja a execução segue uma ordem preestabelecida pelo programador, e o programa só chama o sistema operacional quando precisa de alguma coisa dele. Em Windows não é bem assim. Nosso programa não controla o fluxo de processamento, ele responde e trata eventos que ocorrem no sistema.

Existem muitos eventos que podem ocorrer, sendo que os principais são aqueles gerados pelo usuário através do mouse e do teclado. A coisa acontece mais ou menos assim: O usuário clica o mouse e o Windows verifica que aplicação estava debaixo do mouse no momento em que foi clicado. Em seguida ele manda uma mensagem para a aplicação informando que ocorreu um clique e as coordenadas do cursor do mouse na tela no momento do clique. A aplicação então responde à mensagem executando uma função de acordo com a posição do mouse na tela.

É claro que o Delphi toma conta do serviço mais pesado e facilita muito as coisas para o programador. Detalhes como as coordenadas da tela em que ocorreu o clique, embora estejam disponíveis, dificilmente são necessários nos programas.

Isso, como veremos, afeta radicalmente o estilo de programação e a forma de pensar no programa. A seqüência de execução do programa depende da seqüência de eventos.

Cada ícone na paleta refere-se a um componente que, quando colocado em um Form, executa determinada tarefa: por exemplo, um TLabel mostra um texto estático, e um TEdit é uma caixa de edição que permite mostrar e alterar dados, o TComboBox é uma caixa que permite selecionar um dentre os itens de uma lista, etc.

A paleta de componentes tem diversas guias, nas quais os componentes são agrupados por funcionalidade. Outras guias podem ser criadas com a instalação de componentes de terceiros.

Segue abaixo algumas das principais paletas do Delphi. As imagens foram tiradas do Delphi 6, onde a paleta era na horizontal.

Standard: componentes padrão da interface do Windows, usados para barras de menu, exibição de texto, edição de texto, seleção de opções, iniciar ações de programa, exibir listas de itens etc. Geralmente são os mais usados.

Additional: componentes especializados que complementam os da página Standard. Contém botões com capacidades adicionais, componentes para exibição e edição de tabelas, exibição de imagens, gráficos etc.

Win32: componentes comuns de interface que são fornecidos pelo Windows 95/NT para os programas. Contém componentes para dividir um formulário em páginas, edição de texto formatado, barras de progresso, exibição de animações, exibição de dados em árvore ou em forma de ícones, barras de status e de ferramentas etc.

System: componentes que utilizam funções avançadas do sistema operacional, como temporização (timers), multimídia e conexões OLE e DDE.

Data Access: componentes de acesso a bancos de dados e conexão com controles de exibição de dados.

Data Controls: componentes semelhantes aos encontrados nas guias Standard e Additional, porém ligados a banco de dados.

dbExpress: componentes de conexão com bancos de dados SQL introduzida no Delphi 6 e no Kylix (Delphi para Linux). Entre os principais recursos desta nova arquitetura estão dispensar o uso do BDE (Borland Database Engine) para acesso a dados e fazer um acesso muito mais rápido e leve. A configuração e instalação também são mais simples que a do BDE. Atualmente existem drivers para Oracle, DB/2, Interbase e MySQL entre outros. Não existe suporte para bancos de dados Desktop, assim, não permite acesso a dBase, Paradox ou Access para estes você deverá continuar a utilizar o BDE.

BDE: componentes de acesso a dados utilizando a BDE (até o Delphi 5 faziam parte da guia Data Access). A BDE é a engine que acompanha o Delphi desde sua primeira versão. Muito completa, permite acessar desde bases de dados desktop, como Paradox, dBase ou Access, até bases de dados SGDB, como Interbase, DB/2, Oracle, Informix, SyBase ou MS-SQL Server, todos em modo nativo. Permite ainda o acesso a outros bancos de dados através de ODBC.

DBGO: componentes de acesso a dados da interface dbGo (introduzida no Delphi 5 como o nome de ADO Express) através da tecnologia ADO (ActiveX Data Objects), da Microsoft. Tanto a ADO como o OLE DB (drivers de acesso) estão incluídos no MDAC (Microsoft Data Access Components) e permitem acesso a uma série de bancos de dados e à ODBC. Sua principal vantagem é estar incorporada as versões mais recentes do Windows (2000/XP e ME) não sendo necessário nenhuma instalação de engine de acesso. Também é escalável, permitindo acesso desde bases de dados desktop até aplicações multicamadas. A desvantagem é que não é portável para outras plataformas, caso queira portar seu sistema para Linux, terá que trocar todos os componentes de acesso a dados.

Interbase: componentes para acesso nativo ao Interbase, através de sua API, constituindo o método de acesso mais rápido e eficiente para este banco de dados. Por não ser uma interface genérica permite utilizar todos os recursos que o Interbase disponibiliza. A desvantagem, no entanto é que ao utiliza-los perde-se a possibilidade de alterar o banco de dados sem mudar o programa, visto que os mesmos se destinam apenas ao Interbase.

WebServices: componentes que formam a BizSnap, uma plataforma RAD para desenvolvimento de Web services, que simplifica a integração B2B criando conexões e Web services baseados em XML/SOAP

InternetExpress: componentes para manipulação de XML e produção de páginas para internet.

1 Internet: componentes para manipulação de Sockets, páginas e web browser.

DataSnap: componentes que permitem a criação de middleware de alto desempenho capazes de trabalhar com Web services, possibilitando fácil conexão de qualquer serviço ou aplicação de cliente com os principais bancos de dados, como Oracle, MS-SQL Server, Informix, IBM, DB2, Sybase e InterBase, através de Serviços Web padrão da indústria e XML, DCOM ou CORBA. (No Delphi 5 esta guia era chamada de Midas).

WebSnap: componentes para o desenvolvimento de aplicações Web que suporta os principais Servidores de Aplicações Web, inclusive Apache, Netscape e Microsoft Internet Information Services (IIS);.

FastNet: componentes para manipulação de protocolos e serviços da internet como http, nntp, ftp, pop3 e smtp entre outros. (São mantidos por compatibilidade com o Delphi 5, nesta versão foram inseridos os componentes Indy com maior funcionalidade).

(Parte 1 de 10)

Comentários