Inhaltsverzeichnis
Target di build
WvdS FPC RAD Studio supporta diversi target di build per piattaforme differenti.
Panoramica
| Target | Compilatore | Output | Ambiente runtime |
|---|---|---|---|
| GUI | FPC | Binary nativo | Desktop (Windows/Linux/macOS) |
| TUI | FPC | Binary nativo | Terminale |
| Web | pas2js | JavaScript | Browser/Node.js |
| Extension | pas2js | JavaScript | VS Code Extension Host |
Target GUI
Applicazioni desktop native con interfaccia grafica.
Tecnologia
- Compilatore: Free Pascal Compiler (FPC)
- UI Framework: LCL (Lazarus Component Library)
- Output: .exe (Windows), Binary (Linux/macOS)
Rendering PXAML
PXAML → IR → GUI Renderer → Controlli LCL
Controlli supportati:
- Tutti i controlli standard LCL
- Controlli WvdS personalizzati
- Widget nativi per piattaforma
Configurazione build
[build] target=gui platform=windows-x64 [gui] widgetset=win32 # oppure: gtk2, qt5, cocoa
Target TUI
Interfacce utente basate su terminale per server e CLI.
Tecnologia
- Compilatore: Free Pascal Compiler (FPC)
- UI Framework: WvdS TUI Framework
- Output: Binary nativo con output ANSI/VT100
Rendering PXAML
PXAML → IR → TUI Renderer → Sequenze escape ANSI
Controlli supportati:
- TextBlock, Label
- TextBox (input singola riga)
- Button (con navigazione tastiera)
- ListBox, Table
- ProgressBar
- Border, Panel
Configurazione build
[build] target=tui platform=linux-x64 [tui] colors=256 # oppure: 16, truecolor unicode=true
Target Web
Applicazioni browser tramite transpilazione pas2js.
Tecnologia
- Compilatore: pas2js
- Output: Bundle JavaScript
- Runtime: Browser, Electron, PWA
Rendering PXAML
PXAML → IR → Web Renderer → DOM/CSS
Controlli supportati:
- Tutti i controlli nativi HTML
- Styling basato su CSS
- Layout Flexbox/Grid
Configurazione build
[build] target=web platform=browser [web] minify=true sourcemaps=true
Target Extension
Estensioni VS Code in Pascal.
Tecnologia
- Compilatore: pas2js
- Output: Modulo CommonJS
- Runtime: VS Code Extension Host (Node.js)
Particolarita
- Nessun accesso DOM
- API VS Code disponibile
- WebView per UI
Configurazione build
[build] target=extension platform=vscode [extension] minversion=1.85.0
Matrice piattaforme
| Funzionalita | GUI | TUI | Web | Extension |
|---|---|---|---|---|
| Finestre | Si | No | Si | WebView |
| Dialoghi | Si | Limitato | Si | Quick Input |
| Menu | Si | No | Si | Contributes |
| Accesso file | Si | Si | Limitato | Si |
| Rete | Si | Si | CORS | Si |
| Multi-threading | Si | Si | Web Workers | No |
Condivisione codice
Il codice comune per tutti i target si trova in sources/common/:
sources/common/ ├── core/ # Tipi base, utility ├── ui/ │ ├── controls/ # Astrazione controlli │ ├── runtime/ # Runtime PXAML │ └── targets/ │ ├── gui/ # Specifico GUI │ ├── tui/ # Specifico TUI │ └── web/ # Specifico Web
Compilazione condizionale:
{$IFDEF TARGET_GUI} uses LCLType, Forms; {$ENDIF} {$IFDEF TARGET_WEB} uses JS, Web; {$ENDIF} {$IFDEF TARGET_TUI} uses WvdS.TUI.Console; {$ENDIF}
Vedi anche
Zuletzt geändert: il 29/01/2026 alle 22:30