====== 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 [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]], weil Zeichnen, Auswahl, Bildlauf und Bearbeiten dort schon stehen; hier kommt nur die Bedeutung der zwei Spalten dazu. Quelldatei: ''Vega/ValueList.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|Vega VCL]] ---- ===== Klassen ===== ^ Klasse ^ Basis ^ Zweck ^ | [[lyx_-_programmiersprache:vega:controls:tvaluelisteditor|TValueListEditor]] | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | Gitter aus Name-Wert-Paaren, mit Prüfung beim Bestätigen | ===== Typaliase ===== ^ Name ^ Ist ^ Zweck ^ | ''TValidateEvent'' | ''fn(sender: TControl): void'' | Handler zur Prüfung eines Wertes; verneint über ''CancelEdit'' | ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Bedeutung ^ | ''doColumnTitles'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''1'' | Anzeige: Kopfzeile mit den ''TitleCaptions'' (Bitmaske) | | ''doKeyColFixed'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''2'' | Anzeige: Namensspalte bleibt beim Bildlauf stehen (Bitmaske) | | ''keyEdit'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''1'' | Namen dürfen bearbeitet werden (Bitmaske) | | ''keyAdd'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''2'' | Neue Einträge dürfen entstehen (Bitmaske) | | ''keyDelete'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''4'' | Einträge dürfen gelöscht werden (Bitmaske) | | ''keyUnique'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''8'' | Namen müssen eindeutig bleiben (Bitmaske) | ===== Freie Funktionen ===== ^ Signatur ^ Zweck ^ | ''NewValueListEditor(): TValueListEditor'' | Erzeugt einen leeren Name-Wert-Editor | ---- ===== Zu beachten ===== * **Zwei Sichten auf dieselben Daten**: über die Stelle (''Keys(i)''/''Values(i)'') und über den Namen (''ValueOf''/''SetValue''). Beides wird gebraucht — die Anzeige zählt Zeilen, die Anwendung kennt Namen. * ''FindRow(name)'' liefert die **Gitterzeile** (Kopfzeile eingerechnet), ''IndexOfKey(name)'' die **Eintragsnummer** ab 0. * ''keyUnique'' und ''OnValidate'' greifen beim Bestätigen und nehmen die Änderung zurück; der Handler verneint mit ''CancelEdit := true'', ''ValidateRow'' nennt die Zeile. * Bewusst weggelassen: ''esPickList''/''esEllipsis'' (bräuchten ein aufklappbares Control in der Zelle), ''LoadFromCSVStream'' (Vega hat kein Stream-Modell — siehe [[lyx_-_programmiersprache:vega:units:files|Vega.Files]]), ''doAutoColResize'' (hieße alle Zeilen bei jedem Tastendruck messen; stattdessen ''SetSplitRatio''). * Beim Bau dieser Unit gefunden: ''override fn EndEdit'' lief ins Leere, weil ''EndEdit'' in ''TStringGrid'' nicht ''virtual'' war und lyxc das über Unit-Grenzen still hinnimmt ([[https://github.com/SEOLizer/LyX-Compiler/issues/1710|#1710]]). ''StartEdit''/''EndEdit'' sind jetzt virtuell. ---- ===== Abhängigkeiten ===== **Importiert:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]], [[lyx_-_programmiersprache:vega:units:events|Vega.Events]], [[lyx_-_programmiersprache:vega:units:canvas|Vega.Canvas]], [[lyx_-_programmiersprache:vega:units:theme|Vega.Theme]], [[lyx_-_programmiersprache:vega:units:control|Vega.Control]], [[lyx_-_programmiersprache:vega:units:font|Vega.Font]], [[lyx_-_programmiersprache:vega:units:strings|Vega.Strings]], [[lyx_-_programmiersprache:vega:units:lists|Vega.Lists]], [[lyx_-_programmiersprache:vega:units:style|Vega.Style]], [[lyx_-_programmiersprache:vega:units:grids|Vega.Grids]] **Wird importiert von:** keiner anderen Vega-Unit Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/ValueList.lyx'' erhoben.