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.

Quelldatei: Vega/ValueList.lyx

Alle Units · Alle Steuerelemente · Vega VCL


Klassen

Klasse Basis Zweck
TValueListEditor 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 int64 1 Anzeige: Kopfzeile mit den TitleCaptions (Bitmaske)
doKeyColFixed int64 2 Anzeige: Namensspalte bleibt beim Bildlauf stehen (Bitmaske)
keyEdit int64 1 Namen dürfen bearbeitet werden (Bitmaske)
keyAdd int64 2 Neue Einträge dürfen entstehen (Bitmaske)
keyDelete int64 4 Einträge dürfen gelöscht werden (Bitmaske)
keyUnique 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 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 (#1710). StartEdit/EndEdit sind jetzt virtuell.

Abhängigkeiten

Importiert: Vega.Types, Vega.Events, Vega.Canvas, Vega.Theme, Vega.Control, Vega.Font, Vega.Strings, Vega.Lists, Vega.Style, 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.