Repository navigation
instalacao_delphi
Home > Instalação > Instalação Manual > Delphi
Vale para a 1.1 em diante · Nível: iniciante
Em uma frase: compilar os pacotes do RAL dentro do Delphi e instalar os componentes na paleta.
Você vai precisar: os fontes do RAL baixados com os submódulos (Instalação Manual) e as dependências do motor que vai usar (Como instalar as dependências).
Note
Só vai escrever código, sem arrastar componentes no formulário? Pule para o passo 6: basta o library path.
-
Feche todos os projetos e abra
pkg\Delphi\PascalRALComponents.groupproj. -
No Projects (à direita), confira a plataforma (Target Platform) de cada pacote: Win32 para a IDE de 32 bits (a comum) e Win64 para a IDE de 64 bits. É a plataforma da IDE, não a do seu programa.
-
Compile e instale nesta ordem (clique direito no pacote):
# Pacote O que fazer Obrigatório? 1 PascalRALBuild (só compilar) sim 2 PascalRALDsgnBuild e Install sim 3 um motor, ao menos (tabela abaixo) Build e Install sim, um 4 RALWizardBuild e Install não: assistente de novo projeto 5 RALDBPackageBuild e Install só para banco de dados (DBWare) 6 RALDBFireDACLinkouRALDBZeosLinkBuild e Install só com o RALDBPackage7 RALDBFireDACObjectsBuild e Install só para o DAO do FireDAC 8 RALBSONStorageBuild e Install só para o formato BSON 9 RALBrotliCompress,RALZStdCompressBuild e Install só para compressão brotli/zstd Na 2.0 🚧 os pacotes têm outros nomes e há pacotes novos: veja a seção Na 2.0 abaixo.
Os motores (pasta
pkg\Delphi\Engine). Para escolher, veja Qual motor escolher?.Pacote Motor Servidor Cliente IndyRALIndy sim sim SynopseRALmORMot2 sim sim SaguiRALSagui sim não NetHttpRALNetHTTP (Delphi XE8+) não sim UniGUIRALUniGUI sim não MsQuicRAL1.2QUIC (MsQuic) sim sim OkHttpRAL1.2OkHttp, só Android não sim KwikRAL1.2QUIC no Android 8 (fora do grupo: abra o .dproj)não sim
Warning
No Indy e no FireDAC aparece uma janela dizendo que faltam pacotes (IndySystem,
IndyCore, IndyProtocols; ou os do FireDAC) e perguntando se pode adicioná-los.
Clique OK: é assim que o mesmo pacote serve para várias versões do Delphi.
- Crie a variável
PascalRAL:Tools > Options > IDE > Environment Variables > User System Overrides > New...-
Variable Name:
PascalRAL(maiúsculas e minúsculas contam) -
Variable Value: a pasta
srcdo RAL, por exemploC:\Fontes\PascalRAL\src
-
Variable Name:
- Feche e abra o Delphi.
- Acrescente ao library path (
Tools > Options > Language > Delphi > Library, na plataforma que for usar) um dos modelos abaixo. Sem o passo 4, troque$(PascalRAL)pelo caminho da pastasrc.
Warning
Escolha um modelo. Pastas de motores que você não instalou causam erro de unit não encontrada.
Mínimo, Indy + NetHTTP:
$(PascalRAL)\base;$(PascalRAL)\base\plugins;$(PascalRAL)\base\modules;$(PascalRAL)\utils;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP
Indy + NetHTTP + banco de dados com FireDAC:
$(PascalRAL)\base;$(PascalRAL)\base\plugins;$(PascalRAL)\base\modules;$(PascalRAL)\utils;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP;$(PascalRAL)\database;$(PascalRAL)\database\FireDAC
Pasta por pasta, para montar o seu:
| Pasta | Quando |
|---|---|
base, base\plugins, base\modules, utils
|
sempre |
engine\indy, engine\synopse, engine\sagui, engine\netHTTP, engine\unigui, engine\cgi
|
o motor que usar |
engine\msquic, engine\okhttp, engine\kwik
|
1.2: o motor que usar |
database + database\FireDAC ou database\Zeos
|
banco de dados |
others |
motor Sagui, compressão brotli/zstd e BSON |
others\ZSTD, others\pascal_brotli, others\kxBSON
|
zstd, brotli e BSON, respectivamente |
Important
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.
Os passos são os mesmos; mudam os pacotes e as pastas. A troca de cada nome da 1.x está em Migrar para a 2.0.
| # | Pacote | Pasta em pkg\Delphi
|
O que fazer | Obrigatório? |
|---|---|---|---|---|
| 1 | PascalRAL |
(raiz) | Build | sim |
| 2 | PascalRALDsgn |
(raiz) | Build e Install | sim |
| 3 | um motor, ao menos (IndyRAL, SynopseRAL...) |
Engine |
Build e Install | sim, um |
| 4 | RALPluginAuthPackage |
Plugins |
Build e Install | para Basic, JWT, Digest, OAuth2 |
| 5 | RALPluginTLSPackage |
Plugins |
Build e Install | para o certificado automático |
| 6 | RALStoragePackage |
Storage |
Build e Install | para storages e banco de dados |
| 7 |
RALModuleWebPackage, RALModuleSwaggerPackage
|
Modules |
Build e Install | para servir arquivos e Swagger (este exige o RALPluginAuthPackage) |
| 8 | RALWizardDsgn |
Wizard |
Build e Install | não: assistente de novo projeto |
| 9 |
RALDBPackage + RALDBDsgn
|
Database |
Build o primeiro; Build e Install o segundo | para DBWare |
| 10 |
RALDBFireDACPackage + RALDBFireDACDsgn, ou RALDBZeosPackage + RALDBZeosDsgn
|
Database |
idem | com o DBWare |
| 11 | RALDBFireDACDAOPackage |
Database |
Build e Install | para o DAO do FireDAC |
| 12 | RALStorageBSONPackage |
Storage |
Build e Install | para o formato BSON |
| 13 |
RALCompressBrotliPackage, RALCompressZStdPackage
|
Compression |
Build e Install | para brotli/zstd |
| 14 | RALModuleXMLPackage |
Modules |
Build e Install | para XML e Storage XML (exige o RALStoragePackage) |
| 15 |
RALModuleSOAPPackage + RALModuleSOAPDsgn
|
Modules |
Build o primeiro; Build e Install o segundo | para SOAP (servidor, cliente) |
O grupo PascalRALComponents.groupproj já está nessa ordem. Não há pacote de CGI no
Delphi: o Delphi não deixa as units do Web Broker entrarem num pacote, então um
programa CGI compila o RALCGIServer direto dos fontes.
Library path mínimo, Indy + NetHTTP:
$(PascalRAL)\core;$(PascalRAL)\common;$(PascalRAL)\compress;$(PascalRAL)\crypto;$(PascalRAL)\plugins;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP
| Pasta | Quando |
|---|---|
core, common, compress, crypto, plugins
|
sempre |
engine\<motor> |
o motor que usar; MsQuic e Sagui também bindings
|
plugins\auth, plugins\tls
|
autenticação, certificado automático |
storage, storage\bson
|
storages, BSON |
modules\web, modules\swagger, modules\xml, modules\soap
|
os módulos que usar |
database + database\FireDAC ou database\Zeos
|
banco de dados |
compress\zstd, compress\brotli
|
zstd, brotli |
others\ZSTD, others\pascal_brotli, others\kxBSON
|
os submódulos de zstd, brotli e BSON |
| Mensagem | Causa | O que fazer |
|---|---|---|
Cannot load package ... It contains unit X, which is also contained in package Y |
um pacote foi compilado com a pasta src no search path do projeto do pacote |
tire src do search path do pacote, recompile; depois veja o próximo item |
| o componente sumiu da paleta depois de um erro | o Delphi moveu o pacote para Disabled Packages |
Component > Install Packages, marque o pacote de novo |
F2039 Could not create output file ... PascalRAL.bpl |
o pacote está carregado na IDE | feche todos os projetos, ou feche a IDE e compile pela linha de comando |
File not found: 'IdHTTP.dcu' (ou mormot.*, ZConnection) |
a dependência do motor não está instalada | Como instalar as dependências |
E2202 Required package 'IndyCore...' not found |
o .dproj cita a versão do Indy de outra IDE |
aceite a janela do aviso acima, ou remova a linha do Requires
|
| ponto de entrada não encontrado ao abrir a IDE | várias versões do Delphi na máquina | Múltiplas versões do Delphi |
Mais casos: Problemas comuns.
Começar
Servidor
- Rotas e parâmetros
- Rotas avançadas: tipos, grupos, versões 🚧
- Ler o pedido e responder
- Resposta em fluxo 🚧
- Plugins 🚧
- Autenticação
- Banco de dados (DBWare)
- Servir site e arquivos
- Swagger e Postman
- Servidor SOAP 🚧
- HTTPS
- Criptografia ponto a ponto
- Segurança para produção
- Colocar no ar
- Desempenho
MQTT 🚧
- O que é e quando usar 🚧
- Cliente MQTT 🚧
- Broker MQTT 🚧
- MQTT-SN 🚧
- Ponte REST 🚧
- Segurança 🚧
- Rede ruim 🚧
Cliente
Motores
Avançado
Ajuda
- Problemas comuns
- Atualizar o Indy
- Várias versões do Delphi
- Vídeos e guias
- Módulos de terceiros
- Licenças
- Contribuir
- Roadmap e changelog
🚧 = em desenvolvimento, pode mudar