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