Diese Seiten beschreiben die Oberflächenbibliothek Vega. Sie liegt in einem eigenen Repository (lyx-vcl) und gehört nicht zur Standardbibliothek — alle Beispiele werden aus dessen Wurzel übersetzt, mit-I .und dem passenden Plattformpfad.
Eine Komponentenbibliothek für grafische Oberflächen, geschrieben in Lyx.
Aufbau und Benennung folgen Delphis VCL — wer TForm, TButton und
OnClick kennt, findet sich sofort zurecht.
Vega zeichnet alles selbst. Es gibt keine Systemwidgets, keine GTK-, keine Qt-Abhängigkeit. Vom Betriebssystem braucht die Bibliothek genau zwei Dinge: ein Fenster und einen Ereignisstrom. Alles andere — Rahmen, Schrift, Knöpfe, Menüs, Bildlaufleisten — entsteht Pixel für Pixel im eigenen Puffer.
| Bereich | Stand |
|---|---|
| Steuerelemente | 54 Controlklassen (37 direkt an TControl), 113 Klassen in 53 Units |
| Backends | X11 (Linux), Win32 (Windows), Null (Tests) |
| Formularformat LFM | Kern vollständig: Werte, Parser, Registry, Lader, Schreiber |
| Themes | .vtheme-Dateien, Kaskade, Fünf-Achsen-Selektor |
| Tests | 67 unter Linux, 2 weitere nur für Windows; dazu 4 statische Prüfungen |
| Beispiele | 33 lauffähige Programme |
| Doku hier | 136 Seiten: 15 Guides, 55 Detailseiten (51 Steuerelemente und Bausteine + 4 Hilfsklassen), 54 Unit-Seiten (Einstieg, Layout, Zeichnen, Dialoge, Listen, Befehle, LFM, Themes, Fenster, Drag&Drop, Portabilität, eigene Steuerelemente, Praxis), dazu Architektur, Controls, Backends, LFM-Referenz, Themes, Werkzeuge, Beispiele, Lyx-Eigenheiten |
unit Main;
import Vega.Types;
import Vega.Events;
import Vega.Canvas;
import Vega.Theme;
import Vega.Control;
import Vega.Font;
import Vega.Strings;
import Vega.Lists;
import Vega.Style;
import Vega.StdCtrls;
import Vega.Backend;
import Vega.BackendAuto;
import Vega.Forms;
import std.io;
var g_app: TApplication;
fn OnEnde(sender: TControl): void {
g_app.Terminate();
}
fn main(): int64 {
g_app := new TApplication(NewPlatformBackend());
if (!g_app.Ready) {
PrintLn("Kein Fenstersystem erreichbar.");
return 1;
}
var f: TForm := new TForm(320, 200, "Hallo Vega");
var l: TLabel := new TLabel("Guten Tag.");
l.SetBounds(16, 16, 280, 20);
l.SetParent(f);
var b: TButton := new TButton("Schliessen");
b.SetBounds(16, 60, 120, 30);
b.OnClick := OnEnde;
b.SetParent(f);
g_app.ShowForm(f);
g_app.Run();
g_app.Shutdown();
return 0;
}
Übersetzen und starten — aus der Wurzel des lyx-vcl-Repositorys:
lyxc hallo.lyx -I . -I platform/linux -o hallo # Linux/X11
./hallo
lyxc hallo.lyx -I . -I platform/win64 --target=win64 --format=pe -o hallo.exe
Der Plattformpfad entscheidet, welches Backend Vega.BackendAuto liefert; ohne ihn meldet der Compiler Modul nicht gefunden … Vega.BackendAuto. Nachgemessen mit lyxc 1.1.3I: das obige Programm übersetzt zu rund 770 KB.
HAL steht, ist bewusst wenig — 21 Methoden. Alles andere ist geteilter
Code und läuft überall gleich. * **Ein Fehler ist laut oder er ist keiner.** Unbekannte Eigenschaften, nicht eingetragene Handler, falsche Signaturen: alles meldet sich mit Zeilennummer, statt still nichts zu tun. * **Keine Bibliothek für den Regelzyklus.** Vega alloziert, zeichnet in Puffer und ruft Handler indirekt — für eine Oberfläche genau richtig, unter ''@flight_crit'' genau falsch. Wo beides in einem Programm vorkommt, gehören Anzeige und Regelung getrennt; Einzelheiten im Abschnitt [[lyx_-_programmiersprache:vega:guides:lfm#lfm_und_flight_crit|LFM und @flight_crit]]. * **Kein Feld ohne Wirkung.** Lieber eine fehlende Eigenschaft mit Begründung als eine vorhandene, die niemand liest.
Weiterführend: Sprachreferenz · Standard Library · Guides
Letzte Aktualisierung: 2026-08-19 — Seiten aus lyx-vcl/doku/dokuwiki/vega in die Lyx-Doku übernommen; Übersetzungsbefehl und Binärgröße mit lyxc 1.1.3I nachgemessen.