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
→ Alle Steuerelemente · Klassenbaum · 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 ausColor, spränge der Zeiger in der Farbleiste auf Rot, sobald die Helligkeit auf 0 fällt. Colorist Vorgabe und Ergebnis in einem — wie in Delphi. VorExecutesetzen, danach lesen.- Die Zahlenfelder werden nachgeführt, ohne zurückzuschlagen. Während
SetColordie Felder für Rot, Grün und Blau nachträgt, ist derenOnChangestillgelegt; sonst rechnete der Dialog seine eigene Anzeige erneut in eine Farbe um und der Farbton ginge bei jedem Klick verloren. - Umrechnung ohne Dialog:
HsvToColorundColorToHsvstehen als freie Funktionen bereit, ebensoBasicColorAtfü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 | 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 | int64 | Sättigung des Arbeitsfarbtons | eigen |
Title | TTextBuffer | Titelzeile des Dialogs | eigen |
Val | 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.
