Inhaltsverzeichnis
Build-Targets
WvdS FPC RAD Studio unterstützt verschiedene Build-Targets für unterschiedliche Plattformen.
Übersicht
| Target | Compiler | Ausgabe | Laufzeitumgebung |
|---|---|---|---|
| GUI | FPC | Native Binary | Desktop (Windows/Linux/macOS) |
| TUI | FPC | Native Binary | Terminal |
| Web | pas2js | JavaScript | Browser/Node.js |
| Extension | pas2js | JavaScript | VS Code Extension Host |
GUI-Target
Native Desktop-Anwendungen mit grafischer Benutzeroberfläche.
Technologie
- Compiler: Free Pascal Compiler (FPC)
- UI-Framework: LCL (Lazarus Component Library)
- Ausgabe: .exe (Windows), Binary (Linux/macOS)
PXAML-Rendering
PXAML → IR → GUI Renderer → LCL Controls
Unterstützte Controls:
- Alle Standard-LCL-Controls
- Custom WvdS Controls
- Native Widgets pro Plattform
Build-Konfiguration
[build] target=gui platform=windows-x64 [gui] widgetset=win32 # oder: gtk2, qt5, cocoa
TUI-Target
Terminal-basierte Benutzeroberflächen für Server und CLI.
Technologie
- Compiler: Free Pascal Compiler (FPC)
- UI-Framework: WvdS TUI Framework
- Ausgabe: Native Binary mit ANSI/VT100 Ausgabe
PXAML-Rendering
PXAML → IR → TUI Renderer → ANSI-Escape-Sequenzen
Unterstützte Controls:
- TextBlock, Label
- TextBox (Single-Line Input)
- Button (mit Tastaturnavigation)
- ListBox, Table
- ProgressBar
- Border, Panel
Build-Konfiguration
[build] target=tui platform=linux-x64 [tui] colors=256 # oder: 16, truecolor unicode=true
Web-Target
Browser-Anwendungen via pas2js-Transpilierung.
Technologie
- Compiler: pas2js
- Ausgabe: JavaScript-Bundle
- Laufzeit: Browser, Electron, PWA
PXAML-Rendering
PXAML → IR → Web Renderer → DOM/CSS
Unterstützte Controls:
- Alle HTML-nativen Controls
- CSS-basiertes Styling
- Flexbox/Grid Layout
Build-Konfiguration
[build] target=web platform=browser [web] minify=true sourcemaps=true
Extension-Target
VS Code Extensions in Pascal.
Technologie
- Compiler: pas2js
- Ausgabe: CommonJS-Modul
- Laufzeit: VS Code Extension Host (Node.js)
Besonderheiten
- Kein DOM-Zugriff
- VS Code API verfügbar
- WebView für UI
Build-Konfiguration
[build] target=extension platform=vscode [extension] minversion=1.85.0
Plattform-Matrix
| Feature | GUI | TUI | Web | Extension |
|---|---|---|---|---|
| Fenster | Ja | Nein | Ja | WebView |
| Dialoge | Ja | Limitiert | Ja | Quick Input |
| Menüs | Ja | Nein | Ja | Contributes |
| Dateizugriff | Ja | Ja | Limitiert | Ja |
| Netzwerk | Ja | Ja | CORS | Ja |
| Multi-Threading | Ja | Ja | Web Workers | Nein |
Code-Sharing
Gemeinsamer Code für alle Targets liegt in sources/common/:
sources/common/ ├── core/ # Basis-Typen, Utilities ├── ui/ │ ├── controls/ # Control-Abstraktion │ ├── runtime/ # PXAML Runtime │ └── targets/ │ ├── gui/ # GUI-spezifisch │ ├── tui/ # TUI-spezifisch │ └── web/ # Web-spezifisch
Conditional Compilation:
{$IFDEF TARGET_GUI} uses LCLType, Forms; {$ENDIF} {$IFDEF TARGET_WEB} uses JS, Web; {$ENDIF} {$IFDEF TARGET_TUI} uses WvdS.TUI.Console; {$ENDIF}
Siehe auch
Zuletzt geändert: den 29.01.2026 um 15:13