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.
pkg\Delphi\PascalRALComponents.groupproj.| # | Pacote | O que fazer | Obrigatório? |
|---|---|---|---|
| 1 | PascalRAL |
Build (só compilar) | sim |
| 2 | PascalRALDsgn |
Build e Install | sim |
| 3 | um motor, ao menos (tabela abaixo) | Build e Install | sim, um |
| 4 | RALWizard |
Build e Install | não: assistente de novo projeto |
| 5 | RALDBPackage |
Build e Install | só para banco de dados (DBWare) |
| 6 | RALDBFireDACLink ou RALDBZeosLink |
Build e Install | só com o RALDBPackage |
| 7 | RALDBFireDACObjects |
Build e Install | só para o DAO do FireDAC |
| 8 | RALBSONStorage |
Build e Install | só para o formato BSON |
| 9 | RALBrotliCompress, RALZStdCompress |
Build 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 |
|---|---|---|---|
IndyRAL |
Indy | sim | sim |
SynopseRAL |
mORMot2 | sim | sim |
SaguiRAL |
Sagui | sim | não |
NetHttpRAL |
NetHTTP (Delphi XE8+) | não | sim |
UniGUIRAL |
UniGUI | sim | não |
MsQuicRAL 🚧 1.2 |
QUIC (MsQuic) | sim | sim |
OkHttpRAL 🚧 1.2 |
OkHttp, só Android | não | sim |
KwikRAL 🚧 1.2 |
QUIC 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.
PascalRAL: Tools > Options > IDE > Environment Variables >
User System Overrides > New...PascalRAL (maiúsculas e minúsculas contam)src do RAL, por exemplo C:\Fontes\PascalRAL\srcTools > Options > Language > Delphi > Library,$(PascalRAL) pelo caminho da pasta src.[!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.
Wiki: Instalacao_manual
Wiki: atualizacao
Wiki: atualizar_indy
Wiki: dbware
Wiki: guia_dependencias
Wiki: instalacao_lazarus
Wiki: migrar para 2.0
Wiki: problemas comuns
Wiki: swagger
Wiki: xml