====== TColorDialog — Farbe wählen ======
Der Farbdialog: Farbfeld mit Sättigung und Helligkeit, Farbtonleiste, Grundfarben und Zahlenfelder für Rot, Grün und Blau. Vorgabe und Ergebnis stehen beide in ''Color''.
Unit: ''vega.colordlg'' · Basis: keine — eigene Wurzel
→ [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:klassenbaum|Klassenbaum]] · [[lyx_-_programmiersprache:vega:guides:komponenten|Guide: Komponenten]]
----
===== Vererbung =====
**Kette:** **TColorDialog** — eigene Wurzel, kein Vorfahr. Was diese Klasse kann, steht vollständig auf dieser Seite.
**Direkte Nachfahren:** keine — diese Klasse wird nicht weiter abgeleitet.
**Quelle:** ''vega/colordlg.lyx''
----
===== Verwendung =====
var d: TColorDialog := new TColorDialog();
d.SetTitle("Farbe waehlen");
d.SetColor(clSkyBlue);
if (d.Execute(app)) {
panel.SetColor(d.Color);
}
d.Destroy();
Kurzform, wenn nur die Farbe gebraucht wird:
var c: TColor := ChooseColor(app, panel.Color);
----
===== Besonderheiten =====
* **Der Farbton wird getrennt gehalten** (''Hue'', ''Sat'', ''Val''). Grund: in Schwarz und in Grau lässt er sich nicht aus der Farbe zurückrechnen — zöge man ihn jedes Mal aus ''Color'', spränge der Zeiger in der Farbleiste auf Rot, sobald die Helligkeit auf 0 fällt.
* **''Color'' ist Vorgabe und Ergebnis in einem** — wie in Delphi. Vor ''Execute'' setzen, danach lesen.
* **Die Zahlenfelder werden nachgeführt, ohne zurückzuschlagen.** Während ''SetColor'' die Felder für Rot, Grün und Blau nachträgt, ist deren ''OnChange'' stillgelegt; sonst rechnete der Dialog seine eigene Anzeige erneut in eine Farbe um und der Farbton ginge bei jedem Klick verloren.
* **Umrechnung ohne Dialog:** ''HsvToColor'' und ''ColorToHsv'' stehen als freie Funktionen bereit, ebenso ''BasicColorAt'' für die Grundfarbenpalette.
----
===== Eigenschaften =====
Alle Eigenschaften, auch die geerbten.
^ Name ^ Typ ^ Bedeutung ^ Herkunft ^
| ''Color'' | ''TColor'' | Vor dem Aufruf die Vorgabe, danach das Ergebnis — wie in Delphi | eigen |
| ''Hue'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Arbeitszustand während der Auswahl. Der Farbton wird getrennt gehalten, weil er in Schwarz und in Grau nicht aus der Farbe rekonstruierbar ist: zoege man ihn jedes Mal aus Color, … | eigen |
| ''Sat'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Sättigung des Arbeitsfarbtons | eigen |
| ''Title'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Titelzeile des Dialogs | eigen |
| ''Val'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Helligkeit des Arbeitsfarbtons | eigen |
----
===== Methoden =====
Alle Methoden, auch die geerbten.
^ Signatur ^ Zweck ^ Herkunft ^
| ''BasicIndexAt(x: int64, y: int64): int64'' | Index der Rasterzelle unter dem Punkt, oder -1 daneben | eigen |
| ''Create(): void'' | Anlegen; ''new TColorDialog()'' | eigen |
| ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen |
| ''Execute(app: TApplication): bool'' | Zeigt den Dialog modal; ''true'' = bestätigt | eigen |
| ''HexText(): pchar'' | Farbe als Hex-Zeichenkette | eigen |
| ''PickBasic(x: int64, y: int64): bool'' | Wählt eine Grundfarbe aus der Palette | eigen |
| ''PickHue(y: int64): void'' | Setzt den Farbton aus der Leiste | eigen |
| ''PickSatVal(x: int64, y: int64): void'' | Waagerecht die Saettigung, senkrecht die Helligkeit — oben hell | eigen |
| ''SetColor(c: TColor): void'' | Farbe von aussen setzen. Der Farbton wird nur übernommen, wenn die Farbe überhaupt einen hat (S und V ungleich 0) — sonst bleibt der bisherige stehen | eigen |
| ''SetHue(h: int64): void'' | Setzt ''Hue'' | eigen |
| ''SetRgb(r: int64, g: int64, b: int64): void'' | Einzelne RGB-Komponente setzen, wie aus den Zahlenfeldern | eigen |
| ''SetSatVal(s: int64, v: int64): void'' | Setzt Sättigung und Helligkeit aus dem Farbfeld | eigen |
| ''SetTitle(s: pchar): void'' | Setzt ''Title'' | eigen |
----
Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''vega/colordlg.lyx'' im Repo ''lyx-vcl''.