<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://doc.seolizer.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://doc.seolizer.de/feed.php">
        <title>SEOLizer Dokumentation - lyx_-_programmiersprache:vega:units</title>
        <description></description>
        <link>https://doc.seolizer.de/</link>
        <image rdf:resource="https://doc.seolizer.de/_media/wiki:dokuwiki.svg" />
       <dc:date>2026-08-24T00:50:24+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:actions?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxcall?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxos?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_null?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_win32?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_wincall?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_x11?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:calendar?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:canvas?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:chrome?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colorctrls?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colordlg?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:component?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:control?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:datetimepicker?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dialogs?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dispatch?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:editbtn?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:edits?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:events?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extctrls?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extras?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:filedlg?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:files?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:font?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:fontdlg?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:forms?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:grids?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:hints?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:images?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:layout?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmclasses?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmload?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmparse?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmsave?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmvalue?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listctrls?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lists?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listview?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:maskedit?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:menus?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:picture?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:stdctrls?rev=1787211055&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:strings?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:style?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:theme?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themefile?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themes?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:trees?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:truetype?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:types?rev=1787211039&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:valuelist?rev=1787211039&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://doc.seolizer.de/_media/wiki:dokuwiki.svg">
        <title>SEOLizer Dokumentation</title>
        <link>https://doc.seolizer.de/</link>
        <url>https://doc.seolizer.de/_media/wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:actions?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Actions — Ein Befehl, mehrere Bedienelemente</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:actions?rev=1787211039&amp;do=diff</link>
        <description>Vega.Actions — Ein Befehl, mehrere Bedienelemente

Sobald eine Anwendung „Speichern“ im Menü, in der Werkzeugleiste und auf einem Knopf anbietet, steht dieselbe Sache dreimal im Code — dreimal die Beschriftung, dreimal der Hinweis, dreimal das Sperren.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxcall?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.LyxCall — Brücke zu Lyx OS</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxcall?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.LyxCall — Brücke zu Lyx OS

Lyx OS ruft aus Ring 3 keine Syscalls unmittelbar. Stattdessen gibt es einen gemeinsamen Speicherblock: Nummer und Argumente hineinschreiben, auslösen, Ergebnis herauslesen. Der Block kommt über mmap mit negativer Größe — keine Zweckentfremdung, sondern die vorgesehene Sonderform.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxos?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.LyxOS — Fensterbackend für Lyx OS</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_lyxos?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.LyxOS — Fensterbackend für Lyx OS

Vega läuft dort als gewöhnliche Ring-3-Anwendung unter dem Compositor. Der stellt Fenster bereit, liefert Ereignisse und liest den Fensterpuffer aus — mehr braucht die HAL nicht.

Quelldatei: Vega/Backend/LyxOS.lyx</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_null?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.Null — Backend ohne Fenstersystem</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_null?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.Null — Backend ohne Fenstersystem

Nimmt alles entgegen, zeigt nichts an. Der Zweck ist Testbarkeit: damit läuft die gesamte VCL kopflos — in der CI, über SSH ohne $DISPLAY, und beim Bau eines neuen Backends als Vergleichsmaßstab („liegt es an meinem X11-Code oder am geteilten Teil?“).</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_win32?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.Win32 — Fensterbackend für Windows</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_win32?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.Win32 — Fensterbackend für Windows

Aufgebaut auf Vega.Backend.WinCall. Zwei Dinge unterscheiden es grundlegend von X11: Ereignisse kommen nicht aus einer Warteschlange, die man abfragt, sondern über eine Fensterprozedur, die Windows aufruft — und der Puffer wird mit</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_wincall?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.WinCall — Aufrufschicht zur Win32-API</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_wincall?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.WinCall — Aufrufschicht zur Win32-API

lyxc kann extern fn auf win64 nur bis vier Argumente (#1674 — ausdrücklich gemeldet, statt still falsch zu rechnen). Ein Fenster braucht zwölf, StretchDIBits elf, SetWindowPos sieben. Ohne diese Schicht ließe sich kein einziges Fenster öffnen; der Ausweg ist ein Trampolin, das die Argumente selbst legt.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_x11?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend.X11 — Fensterbackend für X11</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend_x11?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend.X11 — Fensterbackend für X11

Verbindet sich als Client zum laufenden X-Server aus $DISPLAY. Vega startet keinen Server und bettet keinen ein. Die X_*-Konstanten sind die Protokollwerte, die der Server erwartet.

Quelldatei: Vega/Backend/X11.lyx</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Backend — Der Vertrag zum Betriebssystem</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:backend?rev=1787211039&amp;do=diff</link>
        <description>Vega.Backend — Der Vertrag zum Betriebssystem

Die Hardware-Abstraktion — der einzige Ort, an dem Vega das Betriebssystem berührt. Der Vertrag ist absichtlich winzig: jede Methode muss viermal geschrieben werden (X11, Win32, Lyx OS, Null), kostet also vierfach und ist vierfach eine Fehlerquelle. Was sich mit den vorhandenen Mitteln im geteilten Teil erledigen lässt, kommt nicht hierher.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:calendar?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Calendar — Monatskalender und Datumsrechnung</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:calendar?rev=1787211039&amp;do=diff</link>
        <description>Vega.Calendar — Monatskalender und Datumsrechnung

TMonthCalendar zum Anklicken — und die Rechnung, die dazugehört. Ein Datum ist hier eine Zahl: Tage seit dem 1.1.1970, wie date in std.time. Damit sind Vergleich, Abstand und „sieben Tage weiter“ gewöhnliche Rechnung, und es gibt keinen zweiten Datumstyp neben dem der Standardbibliothek.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:canvas?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Canvas — Software-Rasterizer auf einem BGRA-Puffer</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:canvas?rev=1787211039&amp;do=diff</link>
        <description>Vega.Canvas — Software-Rasterizer auf einem BGRA-Puffer

Die Schicht, die „auf allen Systemen gleich aussehen“ einlöst: jedes Pixel entsteht hier, nicht im Betriebssystem. Das Backend bekommt am Ende nur den fertigen Puffer. Zwei Mechanismen tragen das gesamte Zeichnen —</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:chrome?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Chrome — Eigener Fensterrahmen</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:chrome?rev=1787211039&amp;do=diff</link>
        <description>Vega.Chrome — Eigener Fensterrahmen

Titelzeile, Fensterknöpfe, Verschieben und Größe ziehen — selbst gezeichnet. Die Titelzeile des Fenstermanagers sieht auf jedem System anders aus; wer eine Oberfläche baut, die überall gleich aussehen soll, muss sie selbst zeichnen, sonst hört „überall gleich“ genau am Fensterrand auf.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colorctrls?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ColorCtrls — Farbauswahl als Liste</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colorctrls?rev=1787211055&amp;do=diff</link>
        <description>Vega.ColorCtrls — Farbauswahl als Liste

TColorBox und TColorListBox zeigen dieselbe Sache in zwei Formen: eine Zeile je Farbe, links ein Feld in der Farbe, daneben ihr Name. Deshalb steht die Farbtabelle hier einmal und nicht in jeder Klasse. Namen und Bedeutung der</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colordlg?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ColorDlg — Farbauswahl</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:colordlg?rev=1787211039&amp;do=diff</link>
        <description>Vega.ColorDlg — Farbauswahl

TColorDialog, selbst gezeichnet: links das Feld für Sättigung und Helligkeit, daneben die Farbtonleiste, rechts die Grundfarben und die Vorschau. Gerechnet wird in HSV, weil sich darin auswählen lässt, was in RGB nur mühsam zu treffen ist.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:component?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Component — Wurzel aller Objekte</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:component?rev=1787211055&amp;do=diff</link>
        <description>Vega.Component — Wurzel aller Objekte

Eine einzige Klasse: TComponent, die Besitz, Namen, Tag und Zustand trägt — aber nie zeichnet. Die Trennlinie zu Vega.Control verläuft am Zeichnen: was selbst in den Rahmenpuffer malt, wird ein TControl; was nur hält oder tickt, bleibt eine Komponente.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:control?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Control — Wurzel aller sichtbaren Elemente</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:control?rev=1787211055&amp;do=diff</link>
        <description>Vega.Control — Wurzel aller sichtbaren Elemente

Das Herz der VCL: Baum, Geometrie, Zeichnen, Ereignisse, Fokus, Anker. Vega arbeitet im Retained Mode — der Baum bleibt bestehen und wird neu gezeichnet, wenn sich etwas ändert; die Anwendung beschreibt nicht jedes Bild neu. Hier stehen außerdem die Handler-Typen, die jedes Control benutzt.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:datetimepicker?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.DateTimePicker — Datum und Uhrzeit in Teilfeldern</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:datetimepicker?rev=1787211039&amp;do=diff</link>
        <description>Vega.DateTimePicker — Datum und Uhrzeit in Teilfeldern

TDateTimePicker bearbeitet den Wert, nicht einen Text: Tag, Monat und Jahr sind drei getrennte Felder, die man einzeln anwählt und mit Pfeiltasten oder Ziffern ändert. Ein 31. Februar entsteht dabei gar nicht erst, und „was steht im Text“ muss niemand beantworten — das ist der Unterschied zu</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dialogs?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Dialogs — Meldungen, Rückfragen, Eingabe</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dialogs?rev=1787211055&amp;do=diff</link>
        <description>Vega.Dialogs — Meldungen, Rückfragen, Eingabe

ShowMessage, MessageDlg, ConfirmDlg, InputBox — die kleinen Dialoge. Es sind gewöhnliche TForm-Fenster mit ein paar Controls darin, kein Sonderweg. Besonders ist allein, dass sie über TApplication.ShowModal</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dispatch?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Dispatch — Vom Ereignis zum Steuerelement</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:dispatch?rev=1787211039&amp;do=diff</link>
        <description>Vega.Dispatch — Vom Ereignis zum Steuerelement

Das Bindeglied zwischen Backend und Control-Baum: hier wird aus „Mausklick bei 412/300“ ein „dieser Knopf wurde geklickt“. Diese Stelle bringt TEvent (weiß nichts von Controls) und TControl (weiß nichts vom Betriebssystem) zusammen — deshalb kennt weder das Backend die VCL noch umgekehrt.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:editbtn?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.EditBtn — Eingabefelder mit Auswahlknopf</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:editbtn?rev=1787211055&amp;do=diff</link>
        <description>Vega.EditBtn — Eingabefelder mit Auswahlknopf

Ein Feld mit einem Pfad oder Datum darin und rechts ein kleiner Knopf, der den passenden Dialog öffnet. Gebaut als Ableitung von TEdit, nicht als Verbund aus Panel, Feld und Knopf: so hängt der Fokus am richtigen Objekt, der Knopf klaut ihn nicht, und</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:edits?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Edits — Texteingabe</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:edits?rev=1787211039&amp;do=diff</link>
        <description>Vega.Edits — Texteingabe

TEdit einzeilig, TMemo mehrzeilig, darunter die gemeinsame Grundlage TCustomEdit. Beide halten ihren Inhalt in einem TTextBuffer und rechnen durchgängig in Byte-Positionen; die Schreibmarke bewegt sich aber nur über Zeichengrenzen — sonst landete sie mitten in einem Umlaut, und die nächste Eingabe zerlegte ihn.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:events?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Events — Eingabe-Vokabular zwischen Backend und Kern</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:events?rev=1787211055&amp;do=diff</link>
        <description>Vega.Events — Eingabe-Vokabular zwischen Backend und Kern

Was das Betriebssystem meldet, in einer für alle Backends gleichen Form. Diese Unit kennt bewusst kein TControl: sie beschreibt, was passiert ist, nicht wen es trifft. Die Zuordnung zu einem Steuerelement macht</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extctrls?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ExtCtrls — Schieberegler, Zahlenfeld, Registerkarten</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extctrls?rev=1787211039&amp;do=diff</link>
        <description>Vega.ExtCtrls — Schieberegler, Zahlenfeld, Registerkarten

Elemente, die über die Standardausstattung hinausgehen: TTrackBar für einen Wert auf einer Skala, TSpinEdit für Zahlen mit Pfeilen, und die Registerkarten — TPageControl mit eigenen Seiten,</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extras?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Extras — Die kleinen Steuerelemente</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:extras?rev=1787211055&amp;do=diff</link>
        <description>Vega.Extras — Die kleinen Steuerelemente

Neun Elemente, die nichts grundsätzlich Neues können: sie setzen zusammen, was Vega.StdCtrls und Vega.ListCtrls schon können. Ihr Nutzen liegt darin, dass man sie nicht jedes Mal von Hand zusammenbaut — Trennlinien, Formen, flache Knöpfe, eine Auswahlgruppe, eine Liste mit Kästchen, ein Pfeilpaar, eine Fläche zum Selberzeichnen.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:filedlg?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.FileDlg — Dateiauswahl</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:filedlg?rev=1787211039&amp;do=diff</link>
        <description>Vega.FileDlg — Dateiauswahl

TOpenDialog, TSaveDialog und TSelectDirectoryDialog — selbst gezeichnet, kein Systemdialog. Dieselbe Entscheidung wie im Rest von Vega: GTK, Windows und macOS zeigen jeweils einen ganz anderen Dialog, und unter Lyx OS</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:files?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Files — Dateien und Pfade für die VCL</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:files?rev=1787211055&amp;do=diff</link>
        <description>Vega.Files — Dateien und Pfade für die VCL

Textdateien laden und sichern, Verzeichnisse lesen, Pfade zerlegen. Eigene Unit statt Methoden auf TStringList: Vega.Lists soll nichts vom Dateisystem wissen — eine Liste ist ein Datentyp, kein Dateiformat, und ein Programm, das nur zeichnet, muss</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:font?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Font — Schrift und Textausgabe</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:font?rev=1787211039&amp;do=diff</link>
        <description>Vega.Font — Schrift und Textausgabe

Erste Stufe ist ein eingebauter Bitmapfont, 8×16 Pixel, mit ASCII 32–126 und Latin-1 160–255 — deutsche Umlaute, Eszett und die westeuropäischen Zeichen sind damit darstellbar. Die Glyphen stammen aus dem VGA-Konsolenfont und liegen als Daten in dieser Unit; skalierbare Schrift kommt über</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:fontdlg?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.FontDlg — Schriftauswahl</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:fontdlg?rev=1787211039&amp;do=diff</link>
        <description>Vega.FontDlg — Schriftauswahl

TFontDialog — Schriftart, Schnitt und Größe wählen. Zwei Teile, die sich getrennt benutzen lassen: TFontCatalog beantwortet, welche Schriften auf diesem Rechner liegen, TFontDialog zeigt sie zur Auswahl.

Quelldatei:</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:forms?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Forms — Fenster, Zeitgeber, Anwendung</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:forms?rev=1787211039&amp;do=diff</link>
        <description>Vega.Forms — Fenster, Zeitgeber, Anwendung

Das Dach der VCL: hier laufen alle Schichten zusammen. TApplication besitzt das Backend, hält die Zeichenfläche, den Control-Baum und den Dispatcher; TForm ist ein Fenster samt Inhalt; TTimer der Zeitgeber ohne eigenen Systemaufruf. Anwendungen sehen im Alltag nur diese Unit und die Widgets.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:grids?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Grids — Tabelle aus Textzellen</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:grids?rev=1787211039&amp;do=diff</link>
        <description>Vega.Grids — Tabelle aus Textzellen

TStringGrid — Zeilen, Spalten, feste Kopfzeilen und -spalten, Zellen als Text. Die Zellen liegen in einer flachen Liste, angesprochen über row * ColCount + col. Eine Liste von Zeilenlisten wäre beim Einfügen einer Spalte ständig umzubauen; flach kostet das einmal Umkopieren und ist beim Lesen ein Index statt zweier Zeiger.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:hints?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Hints — Kurzhinweise unter dem Zeiger</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:hints?rev=1787211039&amp;do=diff</link>
        <description>Vega.Hints — Kurzhinweise unter dem Zeiger

Der Kurztext, der erscheint, wenn der Zeiger auf einem Bedienelement stehen bleibt. Kein eigenes Fenster beim Fenstersystem, sondern ein Overlay im Formular — genau wie das aufgeklappte Menü. Ein echtes Fenster bräuchte Fenstertyp-Hinweise, Fokusregeln und einen eigenen Weg je Plattform.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:images?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Images — Bildanzeige und Symbolsammlung</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:images?rev=1787211039&amp;do=diff</link>
        <description>Vega.Images — Bildanzeige und Symbolsammlung

TImage zeigt ein Bild, TImageList hält einen Satz gleich großer Symbole für Werkzeugleisten, Listen und Bäume. Beide bauen auf TBitmap aus Vega.Picture auf und kennen selbst kein Dateiformat.

Quelldatei: Vega/Images.lyx</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:layout?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Layout — Der Rahmen einer Anwendung</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:layout?rev=1787211039&amp;do=diff</link>
        <description>Vega.Layout — Der Rahmen einer Anwendung

Bildlauffeld, Größenteiler, Statuszeile und Werkzeugleiste — die Elemente, aus denen das Gerüst eines Fensters besteht. Zusammen mit Align und Anchors aus Vega.Control ergibt das ein Layout, das jede Fenstergröße aushält; der Guide</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmclasses?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.LfmClasses — Registry der Klassen und Eigenschaften</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmclasses?rev=1787211039&amp;do=diff</link>
        <description>Vega.LfmClasses — Registry der Klassen und Eigenschaften

Welche Klassen darf ein Formular nennen, und welche Eigenschaften haben sie? Delphi löst das über RTTI — Klasse anhand des Namens erzeugen, Eigenschaft anhand des Namens setzen. Lyx hat keine Reflexion, also wird beides zu einer Tabelle, die Vega selbst füllt: mehr Tipparbeit, dafür ehrlich — jede unterstützte Eigenschaft steht sichtbar drin.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmload?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.LfmLoad — Vom Baum zu lebenden Controls</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmload?rev=1787211039&amp;do=diff</link>
        <description>Vega.LfmLoad — Vom Baum zu lebenden Controls

Die Stelle, an der aus Text eine Oberfläche wird. Der Lader braucht drei Dinge, die Delphi aus der RTTI zieht: Klasse aus dem Namen erzeugen und Eigenschaft aus dem Namen setzen (Vega.LfmClasses) — und Handler aus dem Namen finden</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmparse?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.LfmParse — Von der Datei zum Baum</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmparse?rev=1787211055&amp;do=diff</link>
        <description>Vega.LfmParse — Von der Datei zum Baum

Liest eine LFM-Datei zu einem Baum aus Objekten und Zuweisungen. Dieser Schritt kennt weder Controls noch Eigenschaftsnamen: er liest, was dasteht, und meldet, was nicht dasteht. Ob es ein TButton gibt und ob der ein</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmsave?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.LfmSave — Vom Controlbaum zur Datei</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmsave?rev=1787211039&amp;do=diff</link>
        <description>Vega.LfmSave — Vom Controlbaum zur Datei

Die eine Entscheidung, die hier Qualität ausmacht: nur Abweichungen von der Vorgabe schreiben. Sonst steht in jeder Datei jede Eigenschaft jedes Controls, und man sieht vor lauter AutoRepaint = True nicht mehr, was eigentlich eingestellt wurde.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmvalue?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.LfmValue — Die Werte einer Formulardatei</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lfmvalue?rev=1787211039&amp;do=diff</link>
        <description>Vega.LfmValue — Die Werte einer Formulardatei

Eine Zuweisung in einer LFM-Datei hat immer eine von neun Arten — Zahl, Wahrheitswert, Zeichenkette, Bezeichner, Menge, Farbe, Liste, Sammlung oder nichts. TLfmValue hält genau das, ohne zu wissen, für welche Eigenschaft es steht.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listctrls?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ListCtrls — Bildlaufleiste, Liste, Auswahlfeld</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listctrls?rev=1787211039&amp;do=diff</link>
        <description>Vega.ListCtrls — Bildlaufleiste, Liste, Auswahlfeld

Die drei hängen zusammen: die Liste braucht eine Bildlaufleiste, das Auswahlfeld klappt eine Liste auf. Deshalb eine Unit statt drei. Wer Spalten braucht, nimmt Vega.ListView; wer Zellen braucht, Vega.Grids.

Quelldatei:</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lists?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Lists — Listen: Zeichenketten, Zahlen, Objektverweise</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:lists?rev=1787211039&amp;do=diff</link>
        <description>Vega.Lists — Listen: Zeichenketten, Zahlen, Objektverweise

In Delphi ist TStrings die Währung für alles, was aus Zeilen besteht — Memo.Lines, ListBox.Items, ComboBox.Items. Genau dafür ist TStringList hier gedacht, mit denselben Namen. Dazu TIntArray</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listview?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ListView — Liste mit Spalten</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:listview?rev=1787211039&amp;do=diff</link>
        <description>Vega.ListView — Liste mit Spalten

TListView in der Report-Ansicht — die Liste, wie man sie aus jedem Dateimanager kennt: Spaltenköpfe, die auf Klick sortieren, Spaltenbreiten zum Ziehen, Mehrfachauswahl, Kästchen und Symbole. Dazu THeaderControl</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:maskedit?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.MaskEdit — Eingabefeld mit fester Form</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:maskedit?rev=1787211039&amp;do=diff</link>
        <description>Vega.MaskEdit — Eingabefeld mit fester Form

TMaskEdit — eine Maske sagt, was an welcher Stelle stehen darf: „00/00/0000“ nimmt an acht Stellen Ziffern und hält die Schrägstriche fest. Die Maskenzeichen sind dieselben wie in Delphi.

Quelldatei:</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:menus?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Menus — Menüleiste, Kontextmenü, Einträge</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:menus?rev=1787211039&amp;do=diff</link>
        <description>Vega.Menus — Menüleiste, Kontextmenü, Einträge

Menüs sind anders als alle anderen Widgets: ein aufgeklapptes Menü liegt über dem Formularinhalt und fängt alle Klicks ab, auch die daneben. Deshalb ist es kein gewöhnliches Kind im Baum, sondern ein Overlay, das die Anwendung vorrangig bedient.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:picture?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Picture — Bild im Speicher</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:picture?rev=1787211039&amp;do=diff</link>
        <description>Vega.Picture — Bild im Speicher

TBitmap — eine Pixelfläche im Format der Zeichenfläche. Geladen wird über std.image, das PNG, BMP, JPEG, GIF, TIFF, WebP und AVIF liest. Selbst zu dekodieren wäre eine zweite Fassung von etwas, das es fertig gibt — und JPEG allein wäre ein eigenes Projekt.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:stdctrls?rev=1787211055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.StdCtrls — Die Standard-Steuerelemente</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:stdctrls?rev=1787211055&amp;do=diff</link>
        <description>Vega.StdCtrls — Die Standard-Steuerelemente

Panel, Label, Button, CheckBox, RadioButton, GroupBox, ProgressBar — was in fast jedem Fenster vorkommt. Alle zeichnen sich vollständig selbst über Vega.Canvas und holen jede Farbe und jedes Maß aus Vega.Theme, nie hart aus dem Code. Hier liegt außerdem</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:strings?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Strings — Veränderbarer Text und UTF-8</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:strings?rev=1787211039&amp;do=diff</link>
        <description>Vega.Strings — Veränderbarer Text und UTF-8

Lyx kennt nur pchar — eine Adresse auf nullterminierte Bytes, die sich nicht wachsen lassen. Eingabefelder brauchen aber genau das: einfügen, löschen, den Puffer vergrößern. Dafür gibt es TTextBuffer</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:style?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Style — Theme-System: Werte, Regeln, Kaskade</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:style?rev=1787211039&amp;do=diff</link>
        <description>Vega.Style — Theme-System: Werte, Regeln, Kaskade

Der Grundsatz: ein Control beschreibt Semantik („ich bin ein Knopf, meine Rolle ist primary, ich werde gerade überfahren“), das Thema beschreibt die Darstellung. Der Resolver bringt beides zusammen und liefert einen Stil, in dem jeder Wert feststeht — der Renderer löst nichts mehr auf. Diese Unit ist das Regelwerk; die schlichte Werteschicht daneben ist</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:theme?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Theme — Der eine Ort für Farben und Maße</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:theme?rev=1787211039&amp;do=diff</link>
        <description>Vega.Theme — Der eine Ort für Farben und Maße

TTheme hält jede Farbe und jedes Maß, das ein Steuerelement braucht. Stünden die Werte in den Widget-Units, verteilten sie sich über dreißig Dateien, und „auf allen Systemen gleich“ würde zu „überall gleich falsch“. Das größere Regelwerk mit Kaskade und Rollen liegt in</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themefile?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ThemeFile — Themen aus Dateien lesen</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themefile?rev=1787211039&amp;do=diff</link>
        <description>Vega.ThemeFile — Themen aus Dateien lesen

Das Dateiformat für Themen: ein Block theme „name“ extends „basis“ { … } mit Abschnitten je Controltyp, verschachtelten Zuständen und Werten wie background: #FFFFFF oder borderRadius: 6. Gelesen wird in dieselben Regelsätze, die</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themes?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Themes — Die mitgelieferten Themen</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:themes?rev=1787211039&amp;do=diff</link>
        <description>Vega.Themes — Die mitgelieferten Themen

FrameworkDefaults, VegaBase, VegaLight, VegaDark — und die Zusammenstellung der Kaskade. Der Aufbau: FrameworkDefaults liefert Mindestwerte, die immer vorhanden sind; VegaBase Abstände, Maße und Rundungen;</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:trees?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Trees — Baumansicht</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:trees?rev=1787211039&amp;do=diff</link>
        <description>Vega.Trees — Baumansicht

TTreeView mit auf- und zuklappbaren Knoten. Der Baum ist die Datenstruktur, die Anzeige eine abgeflachte Sicht darauf: gezeichnet wird eine Liste sichtbarer Zeilen, die sich aus dem Baum ergibt — zugeklappte Knoten liefern keine Kinder. Diese Sicht wird nicht zwischengespeichert, sondern bei Bedarf durchlaufen.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:truetype?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.TrueType — TrueType-Rasterizer</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:truetype?rev=1787211039&amp;do=diff</link>
        <description>Vega.TrueType — TrueType-Rasterizer

Schriftdatei lesen, Umrisse skalieren, mit Kantenglättung in eine Deckungsmaske zeichnen. Nötig, weil der eingebaute Bitmapfont 8×16 ist und nicht mitskaliert: Theme.Scaled() zieht Knopfhöhen, Abstände und Bildlaufleisten mit — nur die Schrift bliebe gleich groß.</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:types?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.Types — Punkt, Größe, Rechteck, Farbe</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:types?rev=1787211039&amp;do=diff</link>
        <description>Vega.Types — Punkt, Größe, Rechteck, Farbe

Die Werttypen, auf denen alles andere aufsetzt. Diese Unit importiert nichts — sie ist die Wurzel des Abhängigkeitsbaums, und jede andere Vega-Unit hängt direkt oder mittelbar an ihr.

Quelldatei: Vega/Types.lyx</description>
    </item>
    <item rdf:about="https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:valuelist?rev=1787211039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-20T07:30:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vega.ValueList — Name-Wert-Paare in einem Gitter</title>
        <link>https://doc.seolizer.de/lyx_-_programmiersprache:vega:units:valuelist?rev=1787211039&amp;do=diff</link>
        <description>Vega.ValueList — Name-Wert-Paare in einem Gitter

TValueListEditor — die Ansicht, die Delphi für Objektinspektoren und Einstellungsseiten benutzt: links der Name, rechts der Wert, eine Zeile je Eintrag. Gebaut auf TStringGrid, weil Zeichnen, Auswahl, Bildlauf und Bearbeiten dort schon stehen; hier kommt nur die Bedeutung der zwei Spalten dazu.</description>
    </item>
</rdf:RDF>
