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, dazu die UTF-8-Rechnung, die Byte- und Zeichenpositionen auseinanderhält.
Quelldatei: Vega/Strings.lyx
→ Alle Units · Alle Steuerelemente · Vega VCL
Klassen
| Klasse | Basis | Zweck |
|---|---|---|
| TTextBuffer | — | Wachsender Textpuffer mit Byte- und Zeichenrechnung |
Konstanten
| Name | Typ | Wert | Bedeutung |
|---|---|---|---|
VEGA_TEXT_MIN_CAP | int64 | 32 | Anfangsgröße, bevor der Puffer erstmals wächst |
Freie Funktionen
| Signatur | Zweck |
|---|---|
Utf8CharLen(b: int64): int64 | Wie viele Bytes das Zeichen hat, das mit diesem Byte beginnt |
Utf8IsTrail(b: int64): bool | Ist das ein Folgebyte, also keine Zeichengrenze |
Utf8Decode(addr: int64, i: int64): int64 | Zeichen an dieser Byteposition als Codepunkt |
Utf8LenOf(cp: int64): int64 | Wie viele Bytes dieser Codepunkt braucht |
Utf8Encode(addr: int64, cp: int64): int64 | Codepunkt an diese Adresse schreiben; liefert die Zahl der Bytes |
PCharEqual(a: pchar, b: pchar): bool | Zwei pchar auf gleichen Inhalt prüfen |
PCharLen(s: pchar): int64 | Länge einer pchar in Bytes |
IntToText(v: int64, dst: TTextBuffer): void | Zahl in einen Textpuffer schreiben |
PCharToInt(s: pchar): int64 | Zahl aus Text lesen |
NewTextBuffer(): TTextBuffer | Erzeugt einen leeren Textpuffer |
Zu beachten
- Positionen sind Byte-Positionen.
PosOfCharundCharIndexAtrechnen um,NextPos/PrevPoswandern zeichenweise. AsPChar()gilt nur bis zum nächsten Wachsen des Puffers — den Zeiger nicht aufheben.- Die Unit hängt nur an
std.allocund kennt weder Canvas noch Controls; ein Textpuffer soll auch ohne Fenster brauchbar sein.
Abhängigkeiten
Importiert: Vega.Mem
Wird importiert von: Vega.Actions, Vega.Backend, Vega.Backend.LyxOS, Vega.Backend.Null, Vega.Backend.Win32, Vega.Backend.X11, Vega.Calendar, Vega.Chrome, Vega.ColorCtrls, Vega.ColorDlg, Vega.Component, Vega.Control, Vega.DateTimePicker, Vega.Dialogs, Vega.EditBtn, Vega.Edits, Vega.ExtCtrls, Vega.Extras, Vega.FileDlg, Vega.Files, Vega.Font, Vega.FontDlg, Vega.Grids, Vega.Hints, Vega.Images, Vega.Layout, Vega.LfmClasses, Vega.LfmLoad, Vega.LfmParse, Vega.LfmSave, Vega.LfmValue, Vega.ListCtrls, Vega.ListView, Vega.Lists, Vega.MaskEdit, Vega.Menus, Vega.Picture, Vega.StdCtrls, Vega.Style, Vega.ThemeFile, Vega.Themes, Vega.Trees, Vega.TrueType, Vega.ValueList
Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus Vega/Strings.lyx erhoben.
