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 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 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.