Inhaltsverzeichnis
Cilji gradnje
WvdS FPC RAD Studio podpira različne cilje gradnje za različne platforme.
Pregled
| Cilj | Prevajalnik | Izhod | Izvajalno okolje |
|---|---|---|---|
| GUI | FPC | Naravna binarna datoteka | Namizje (Windows/Linux/macOS) |
| TUI | FPC | Naravna binarna datoteka | Terminal |
| Web | pas2js | JavaScript | Brskalnik/Node.js |
| Extension | pas2js | JavaScript | VS Code Extension Host |
GUI cilj
Naravne namizne aplikacije z grafičnim uporabniškim vmesnikom.
Tehnologija
- Prevajalnik: Free Pascal Compiler (FPC)
- UI ogrodje: LCL (Lazarus Component Library)
- Izhod: .exe (Windows), binarna datoteka (Linux/macOS)
PXAML upodabljanje
PXAML → IR → GUI upodabljalnik → LCL kontrolniki
Podprti kontrolniki:
- Vsi standardni LCL kontrolniki
- WvdS kontrolniki po meri
- Naravni gradniki po platformah
Konfiguracija gradnje
[build] target=gui platform=windows-x64 [gui] widgetset=win32 # ali: gtk2, qt5, cocoa
TUI cilj
Uporabniški vmesniki v terminalu za strežnike in CLI.
Tehnologija
- Prevajalnik: Free Pascal Compiler (FPC)
- UI ogrodje: WvdS TUI Framework
- Izhod: Naravna binarna datoteka z ANSI/VT100 izhodom
PXAML upodabljanje
PXAML → IR → TUI upodabljalnik → ANSI ubežne sekvence
Podprti kontrolniki:
- TextBlock, Label
- TextBox (enovrstični vnos)
- Button (s tipkovnično navigacijo)
- ListBox, Table
- ProgressBar
- Border, Panel
Konfiguracija gradnje
[build] target=tui platform=linux-x64 [tui] colors=256 # ali: 16, truecolor unicode=true
Web cilj
Brskalniške aplikacije prek pas2js transpilacije.
Tehnologija
- Prevajalnik: pas2js
- Izhod: JavaScript paket
- Izvajanje: Brskalnik, Electron, PWA
PXAML upodabljanje
PXAML → IR → Web upodabljalnik → DOM/CSS
Podprti kontrolniki:
- Vsi HTML naravni kontrolniki
- CSS osnovano oblikovanje
- Flexbox/Grid postavitev
Konfiguracija gradnje
[build] target=web platform=browser [web] minify=true sourcemaps=true
Extension cilj
VS Code razširitve v Pascalu.
Tehnologija
- Prevajalnik: pas2js
- Izhod: CommonJS modul
- Izvajanje: VS Code Extension Host (Node.js)
Posebnosti
- Ni dostopa do DOM
- VSCode API na voljo
- WebView za UI
Konfiguracija gradnje
[build] target=extension platform=vscode [extension] minversion=1.85.0
Matrika platform
| Funkcionalnost | GUI | TUI | Web | Extension |
|---|---|---|---|---|
| Okna | Da | Ne | Da | WebView |
| Dialogi | Da | Omejeno | Da | Quick Input |
| Meniji | Da | Ne | Da | Contributes |
| Dostop do datotek | Da | Da | Omejeno | Da |
| Omrežje | Da | Da | CORS | Da |
| Večnitnost | Da | Da | Web Workers | Ne |
Deljenje kode
Skupna koda za vse cilje je v sources/common/:
sources/common/ ├── core/ # Osnovni tipi, pripomočki ├── ui/ │ ├── controls/ # Abstrakcija kontrolnikov │ ├── runtime/ # PXAML izvajalno okolje │ └── targets/ │ ├── gui/ # GUI specifično │ ├── tui/ # TUI specifično │ └── web/ # Web specifično
Pogojna kompilacija:
{$IFDEF TARGET_GUI} uses LCLType, Forms; {$ENDIF} {$IFDEF TARGET_WEB} uses JS, Web; {$ENDIF} {$IFDEF TARGET_TUI} uses WvdS.TUI.Console; {$ENDIF}
Glejte tudi
Zuletzt geändert: dne 29.01.2026 ob 22:22