Quer ter acesso a todos os cursos desse Guia?
Guia Completo de 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:
-
ArtigoConceitos básicos sobre procedures e functions no Delphi
-
ArtigoComo trabalhar com passagem de parâmetros no Delphi
-
ArtigoDesvendando Métodos Anônimos
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:
-
ArtigoTrabalhando com Strings Unicode no Delphi
-
ArtigoClasse TStringBuilder
-
ArtigoComo personalizar data em Delphi
-
ArtigoComo personalizar hora em Delphi
-
ArtigoComo modificar o separador de moeda em Delphi
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:
-
5 minutosTMainMenu: Criando menus em Delphi
-
CursoComeçando no Delphi: Controles visuais
-
CursoCriando minha primeira aplicação em Delphi
-
CursoDelphi para Iniciantes
E para se aprofundar na estrutura de classes e componentes da VCL, indicamos os seguintes artigos:
-
ArtigoConheça a base da VCL
-
ArtigoDelphi: Parent e Owner - O que são?
-
ArtigoIntrodução aos componentes JEDI
Já os artigos abaixo abordam alguns componentes não visuais que vão lhe ajudar a deixar sua aplicação mais interessante:
-
ArtigoUtilizando o componente TTrayIcon no Delphi
-
ArtigoConhecendo o TAnimate - métodos e propriedades em Delphi
Para colocar todos esses conceitos na prática, veja no curso a seguir como manipular arquivos XML utilizando componentes visuais e não visuais:
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:
-
DevCastOs Pilares da Programação Orientada a Objetos
-
DevCastPor que adotamos Orientação a Objetos? – Parte 1
-
DevCastPor que adotamos Orientação a Objetos? – Parte 2
Já os conteúdos a seguir abordam o uso da OO no Delphi:
-
ArtigoIntrodução à POO - Partes 1 e 2
-
ArtigoIntrodução à POO - Partes 3 e 4
-
ArtigoIntrodução à POO - Partes 5 e 6
-
ArtigoDesenvolvimento OO no Delphi XE 2
-
ArtigoClasses no Delphi: Quando usar os métodos read e write
-
ArtigoHerança aplicada no Delphi
-
CursoClass of na prática em Delphi
-
ArtigoTécnicas Avançadas de POO com 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:
-
ArtigoLista de Objetos em Delphi
-
5 minutosTObjectList: Como trabalhar com coleções de objetos no Delphi
-
CursoListView no Delphi: Como listar objetos
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).
-
ArtigoIntrodução ao dbExpress 4
-
ArtigodbExpress de A a Z - Parte 1
-
ArtigodbExpress de A a Z - Partes 2 e 3
-
CursodbExpress e Firebird - Aplicação comercial de vendas (básico) do inicio ao fim
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:
-
CursoO que é FireDAC?
-
ArtigoIntrodução à Biblioteca FireDAC
-
5 minutosMinha primeira conexão com FireDAC em Delphi
-
CursoFireDAC: Como acessar Banco de Dados com Delphi
-
CursoDelphi: Cadastro Orientado a Objetos com FireDAC
-
ExemploComo criar autocomplete em Delphi
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:
-
ArtigoFireDAC: Crie uma aplicação de acesso a dados com VCL e FireMonkey
-
ArtigoAplicações mestre-detalhe com FireDAC
-
ArtigoFireMonkey e FireDAC: Construindo uma aplicação completa – Parte I
-
ArtigoFireMonkey e FireDAC: Construindo uma aplicação completa – Parte II
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:
-
ArtigoMVC no Delphi: separação de camadas
-
ArtigoGenerics + MVC = Boas práticas e reusabilidade
-
ArtigoOs padrões de arquitetura MVC, MVP e MVVM no Delphi
-
ArtigoPadrão MVVM (Model View ViewModel) no Delphi
-
ArtigoMVVM para programadores 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:
-
ArtigoDAO Pattern: Persistência de Dados utilizando o padrão DAO
-
ArtigoPOO e DAO Pattern no Delphi: Criando uma tela de login
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:
-
ArtigoPadrões Criacionais
-
ArtigoDesign Patterns: Factory Method e Template Method
-
ArtigoUsando o Padrão Singleton
-
ArtigoIntrodução aos padrões criacionais: Abstract Factory, Factory Method, Prototype e Singleton
-
ArtigoUtilizando os padrões de projeto Strategy e Façade
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:
-
ArtigoPadrões Estruturais em Delphi
-
ArtigoDesign Patterns: Implementando os padrões Decorator e Singleton
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:
-
ArtigoBehavioral Design Patterns em Delphi
-
ArtigoDesign Patterns: Entendendo os padrões Chain of Responsibility, Command, Iterator, Mediator e Memento
-
ArtigoDesign Patterns: Abstract Factory, Observer e Iterator
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:
-
ArtigoIniciando a construção de apps Android no Delphi
-
ArtigoDesenvolvimento Android no Delphi
-
ArtigoConstruindo aplicativos Android no Delphi 10 Seattle
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:
-
ArtigoListBox e ListView: Listagem de dados em aplicações mobile
-
ArtigoListView: Listagem de dados dinâmica em aplicações mobile
-
ArtigoPersonalização do ListView em aplicativos mobile
-
ArtigoMobile no Delphi: Mudando a visualização dos dados no ListView
-
ArtigoFireMonkey Styles: Personalização de ListBox em aplicações mobile
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:
-
ArtigoDelphi XE5: integração de sistemas móveis e desktops
-
ArtigoGoogle Maps: criando mapas com Delphi para Android
-
ArtigoMobile no Delphi: Acessando a câmera do celular
-
ArtigoGerenciando a mudança de abas em aplicativos móveis no Delphi
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:
-
ArtigoDataSnap: sincronizando dados entre cliente e servidor
-
ArtigoComo transferir arquivos entre aplicações Cliente/Servidor com DataSnap
-
ArtigoDataSnap: Transferência de dados entre aplicações cliente/servidor
E a seguir temos mais alguns conteúdos para que você aprofunde seus estudos e aperfeiçoe suas aplicações com DataSnap:
Comunicação com Web Services
SOAP, Simple Object Access Protocol, é um protocolo para troca de dados entre aplicações de forma distribuída e que durante muito tempo foi um padrão para a criação de web services. Por conta disso, muitas instituições utilizam esse protocolo para dispor serviços, a exemplo da NFe da Secretaria de Fazenda. Seu modelo de comunicação baseia-se a troca de mensagens estruturadas em formato XML.
Nos conteúdos abaixo falamos sobre o WSDL, Web Services Description Language, que é um padrão de mercado para descrever Web Services, simplificando o acesso aos seus serviços.
Automação comercial
Muitos programadores adotaram o Delphi para desenvolver suas aplicações de automação comercial: NF-e, NFC-e, 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:
-
CursoO que é NF-e e NFC-e?
-
5 minutosInstalação dos componentes ACBr
-
CursoCriando um emissor de NF-e com Delphi e ACBr Novo!
-
ProjetoNF-e passo a passo: Emissão e envio para a SEFAZ Novo!
-
ArtigoEmissão de Boletos Bancários com ACBr
-
ArtigoConsultando CEP utilizando componente ACBrCEP
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.
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>