Guia de Linguagem

Delphi


Neste Guia de Referência você encontrará o conteúdo que precisa para iniciar seus estudos em Delphi, uma plataforma para desenvolvimento de aplicativos completa, principalmente para soluções desktop e mobile.

Introdução

Se você está iniciando no Delphi, é fundamental entender do que se trata essa ferramenta e o que é possível fazer com ela, a fim de decidir se ela atende suas necessidades e como começar a utilizá-la. Para lhe ajudar nessa etapa sugerimos os conteúdos abaixo:

Linguagem

Agora que você decidiu usar o Delphi para desenvolver suas aplicações, é importante conhecer a sintaxe e os recursos da linguagem. Nesta seção separamos alguns conteúdos que lhe ajudarão neste ponto:

Functions e Procedures

Os métodos ou funções estão presentes em várias linguagens de programação. No Delphi os métodos são categorizados como functions ou procedures, como você pode ver nos artigos a seguir:

Estruturas de dados

Estruturas de dados são usadas para representar as informações de forma organizada e otimizada para cada situação. Veja a seguir como trabalhar com esse conceito no Delphi:

Strings

String é um tipo de dado presente em diversas linguagens e representa uma cadeia de caracteres (um texto). O Delphi oferece diversos recursos para lidar com esse tipo de informação, como você verá nos links a seguir:

Espressões Regulares

Também presentes em várias linguagens, as expressões regulares permitem validar e efetuar buscas em textos a partir de padrões:

Tratamento de exceções

Os mecanismos de tratamento de exceções nos permitem contornar a ocorrência de erros dentro da aplicação, evitando que elas travem, fechem e acabem prejudicando a experiência do usuário:

Estrutura de projetos

Quando lidamos com qualquer IDE é importante saber como os projetos são organizados e quais arquivos os compõem. No Delphi, por exemplo, temos conceitos como Unit, BPL, Resources, entre outros que você pode conhecer nos links abaixo:

VCL

A VCL (Visual Component Library) é a biblioteca de componentes visuais e não visuais para criação de aplicações Windows. É nela que encontramos componentes como botões, caixas de texto, menus e janelas de diálogo.

Se você está iniciando no desenvolvimento de aplicações desktop para Windows no Delphi, confira os cursos abaixo:

E para se aprofundar na estrutura de classes e componentes da VCL, indicamos os seguintes artigos:

Já os artigos abaixo abordam alguns componentes não visuais que vão lhe ajudar a deixar sua aplicação mais interessante:

RTTI

RTTI é a sigla para Runtime Type Information, não é exclusividade do Delphi, diversas outras linguagens possuem a mesma. Com RTTI você consegue obter informações em tempo de execução:

Orientação a Objetos

Delphi é uma linguagem orientada a objetos e como tal implementa todos os conceitos desse paradigma, como classes, herança, polimorfismo, etc. Para você que é ou deseja se tornar um programador Delphi profissional, saber programar de forma orientada a objetos é importante e em muitos projetos será um requisito.

Se você ainda não está acostumado com a POO, os DevCasts abaixo lhe introduzirão nesse novo paradigma:

Já os conteúdos a seguir abordam o uso da OO no Delphi:

Interfaces

Na Orientação a Objetos as interfaces funcionam como contratos, ou seja, elas definem comportamentos que devem ser cumpridos pelas classes. Quando uma classe atende a uma interface, dizemos que ela implementa essa interface:

Coleções

O Delphi conta com classes que facilitam o trabalho com coleções de objetos, como TList e TObjectList, que são exploradas em detalhes nos conteúdos abaixo:

Praticando

Agora que você conhece os conceitos da OO, que tal começar a colocar a mão na massa em projetos seguindo as práticas desse paradigma?

Banco de Dados

O Delphi conta com várias bibliotecas de acesso a dados que permite trabalhar com diferentes bancos. Entre elas estão: IBX, BDE, ADO e as mais utilizadas atualmente dbExpress e FireDAC (indicada pelo fabricante como solução ideal nas versões mais atuais do Delphi).

A seguir listamos os links de conteúdos para que você consiga trabalhar com bancos de dados usando as duas principais bibliotecas da atualidade.

ClientDataSet

O ClienteDataSet representa um conjunto de dados em memória. Com ele podemos armazenar informações temporárias na forma de tabela, sejam elas provenientes de uma conexão com o banco de dados ou não. Veja nos próximos conteúdos alguns exemplos de como trabalhar com esse componente:

dbExpress

A biblioteca dbExpress permite acessar diferentes bancos usando um mesmo conjunto de componentes, bastando que seja utilizado o driver específico de cada banco. Ela baseia-se no uso de DLLs, o que faz com que seu uso seja restrito à VCL (ambiente Windows).

Transações

O dbExpress também suporta o controle de transações para a realização de operações no banco de dados, como você pode ver nos seguintes links:

FireDAC

FireDAC é a biblioteca sugerida como padrão atualmente pelo fabricante para acesso a bancos de dados no Delphi. Além da VCL ela pode ser usada no FireMonkey e permite acessar também o MongoDB, que é um banco NoSQL. Confira uma introdução a essa biblioteca nos conteúdos abaixo:

Para uma abordagem mais completa sobre a biblioteca, sugerimos o curso abaixo:

E se você está migrando do dbExpress para o FireDAC, o seguinte artigo lhe ajudará:

Praticando

Já conhece o FireDAC e deseja praticar? Então veja abaixo como criar aplicações na prática com essa biblioteca:

Tópicos avançados

Os artigos abaixo lhe permitirão aprofundar na utilização do FireDAC, explorando mais funcionalidades da biblioteca:

MongoDB

O MongoDB é um banco de dados NoSQL, orientado a documentos, que armazena os dados no formato JSON. Atualmente é um dos bancos não relacionais mais utilizados no mercado e acessá-lo no Delphi é possível usando o FireDAC, como você pode ver no artigo abaixo:

Threads

Por meio de threads uma aplicação pode executar diferentes tarefas de forma concorrente, evitando o sobrecarregamento do fluxo principal do programa. Por exemplo, por meio de threads podemos executar um procedimento pesado em segundo plano, deixando a interface com o usuário livre para interações.

Para aprender a trabalhar com threads em Delphi você pode ver os seguintes artigos:

Boas práticas

Nesta seção trazemos alguns conteúdos que abordam técnicas que, quando aplicadas, elevam a qualidade do seu projeto, reduzindo a probabilidade de erros e simplificando a manutenção.

Gerenciamento de memória

No Delphi não há o conceito de Garbage Collector, como no Java ou .NET, recurso que libera os objetos não utilizados da memória. Devido a isso é fundamental manter um bom gerenciamento sobre a memória utilizada pelas nossas aplicações, a fim de evitar travamentos e alocação indevida de recursos que não estão sendo utilizados. Veja abaixo alguns conteúdos sobre esse assunto, que lhe ajudarão a escrever códigos mais eficientes:

Refatoração

Refatorar é uma técnica que visa melhorar a estrutura e qualidade do código sem modificar seu comportamento original. Muitas vezes a refatoração nos permite corrigir o que chamamos de Bad Smells ou Code Smells, que são ocorrências de código que, apesar de funcionar, não está escrito da melhor forma possível.

Testes Unitários

Os testes unitários são procedimentos que têm por objetivo testar pequenas peças do código, chamadas de unidades (normalmente métodos). No Delphi utilizamos a biblioteca DUnitX (ou DUnit em sua versão anterior) para esse tipo de tarefa.

Padrões de projeto e arquitetura

Padrões de Projeto são soluções catalogadas para problemas/situações comuns do desenvolvimento de software. Baseados em experiências prévias, os padrões definem como partes do software devem ser definidas a fim de resolver certos problemas ou de evitá-los.

MVC e MVVM

Os padrões MVC (Model-View-Controller) e MVVM (Model-View-ViewModel) têm por objetivo separar a arquitetura da aplicação em camadas, cada uma com responsabilidades específicas. Se esse é seu primeiro contato com esses padrões, confira o que são de fato nos cursos abaixo:

Em seguida veja como aplicá-los em projetos no Delphi:

DAO

DAO (Data Access Object), também conhecido como DAL (Data Access Layer), é um padrão que propõe a existência de classes específicas para o acesso a bancos de dados. Essas classes são responsáveis, por exemplo, por realizar operações de CRUD, removendo essa responsabilidade das classes de domínio ou entidades:

Padrões GOF

GoF, sigla de Gang of Four, é o nome dado ao conjunto de padrões especificados por um grupo de quatro engenheiros de software e publicados no livro Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Ao todo são 23 padrões divididos em três categorias, que você pode conhecer melhor nos artigos abaixo:

Padrões Criacionais

Os padrões criacionais, como o nome sugere, tratam da forma como os objetos são criados no software, o que pode envolver técnicas específicas para cada situação. Veja na prática como utilizá-los:

Padrões Estruturais

Os padrões estruturais tratam da forma como os objetos se relacionam, promovendo o baixo acoplamento e flexibilidade na estrutura do projeto:

Padrões Comportamentais

Os padrões comportamentais organizam a forma como os objetos funcionam, suas responsabilidades e como eles se comunicam dentro de um contexto:

Padrões de Arquitetura de Aplicações Corporativas

Nesta categoria estão os padrões catalogados por Martin Fowler em seu livro Patterns of Enterprise Application Architecture, no qual ele listou soluções encontradas em aplicações corporativas. Conheça alguns desses padrões no artigo abaixo:

Domain-Driven Design

Domain-Driven Design, ou DDD, é uma metodologia/abordagem que guia o desenvolvimento da aplicação a partir do seu domínio. Ou seja, ao invés de partir das características dos frameworks ou banco de dados que serão utilizados, o DDD propõe que o desenvolvimento se concentre no domínio do problema que o software pretende resolver e, a partir disso, defina os próximos passos. Documentado inicialmente no livro Domain-Driven Design: Atacando As Complexidades No Coração do Software de Eric Evans, o DDD define diversos termos e sugestões de arquitetura para a criação de aplicações com domínio complexo.

Relatórios

O desenvolvimento de relatórios é um ponto fundamental na construção de software, afinal, como os usuários irão extrair informações do nosso sistema? Um das ferramentas de relatórios bastante utilizada é o Rave Reports, que infelizmente não está disponível nativamente nas versões mais recentes do Delphi, mas você pode encontrá-lo separadamente. Veja abaixo um curso completo sobre ele:

FastReport

Uma outra excelente ferramenta para trabalhar com relatórios é o FastReport (o mesmo ainda pode ser utilizado em outras linguagens como .NET, por exemplo). Veja na sequência como utilizar essa ferramenta:

FireMonkey e Mobile

O FireMonkey é uma biblioteca de componentes visuais utilizada para desenvolver aplicações de interface rica e multiplataforma (Windows, MacOS, iOS e Android). Para conhecer melhor essa biblioteca, confira o curso abaixo:

Se você já programa no Delphi deve estar mais acostumado com a VCL, certo? Para você separamos o seguinte artigo, que lhe dará uma visão melhor sobre as diferenças e migração da VCL para o FireMonkey:

Live Bindings

Um dos recursos mais utilizados no FireMonkey são os Live Bindings, que permitem ligar as propriedades de componentes e objetos dinamicamente, sem que seja necessário atualizá-las manualmente. Nos artigos abaixo você aprenderá a usar esse recurso:

Desenvolvimento mobile

O FireMonkey tornou possível o desenvolvimento de aplicações mobile nativas para Android e iOS no Delphi. Se você quer ingressar nesse mundo do desenvolvimento mobile, os artigos abaixo lhe apresentarão essa possibilidade:

Agora o curso a seguir traz uma abordagem mais aprofundada sobre a criação de aplicativos para Android no Delphi:

ListView e ListBox

Aqui separamos alguns conteúdos especificamente sobre dois dos componentes mais utilizados para a listagem de dados em aplicações mobile: ListView e ListBox:

Banco de Dados no Mobile

Na sequência você aprenderá a conectar-se a um banco de dados dentro de uma aplicação Mobile no Delphi:

Conteúdo adicional

Com o conteúdo visto até aqui você já é capaz de criar seus aplicativos. Agora listamos mais alguns conteúdos para que você possa avançar em seus estudos:

Publicando seu APP

A publicação é um passo natural no ciclo de desenvolvimento de um aplicativo. Normalmente, quando finalizamos as implementações necessárias à primeira versão, já queremos disponibilizá-lo para download. Para lhe ajudar nessa etapa deixamos abaixo o link de um artigo que lhe ensinará a publicar seu app Android na Google Play:

DataSnap

DataSnap é a tecnologia que temos no Delphi para trabalhar com aplicações multicamadas e sistemas distribuídos. Com ele você pode, por exemplo desenvolver serviços REST e realizar integrações entre aplicações desktop e mobile. Saiba mais sobre o que é o DataSnap e como utilizá-lo nos cursos a seguir:

Os artigos abaixo demonstram como trafegar dados entre aplicações cliente e servidor com DataSnap:

E a seguir temos mais alguns conteúdos para que você aprofunde seus estudos e aperfeiçoe suas aplicações com DataSnap:

Automação comercial

Muitos programadores adotaram o Delphi para desenvolver suas aplicações de automação comercial: NFe, NFCe, boletos, PDV, etc. Nesse contexto os componentes da ACBr estão entre os mais utilizados, pois oferecem uma forma simplificada de implementar algumas funcionalidades muito comuns. Nos artigos abaixo você pode conhecer alguns desses componentes:

Se você usa o FireMonkey também é possível desenvolver aplicações para automação comercial com ele. Um exemplo disso pode ser visto na série de artigos a seguir:

E separamos ainda um conteúdo adicional que lhe ajudará na implementação de uma necessidade frequente nesse meio: a geração de códigos de barra

Lazarus

Lazarus é uma ferramenta open source para desenvolvimento de software utilizando a linguagem Object Pascal. O Lazarus é uma alternativa ao Delphi. Saiba um pouco mais sobre esse projeto no conteúdo abaixo:

Mais sobre Delphi

Além dos cursos e artigos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Delphi, os quais você pode conferir no Guia de Carreira abaixo:

Além disso, você pode conferir todo o conteúdo de Delphi clicando aqui.

Ficou com alguma dúvida?