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