ColorGroup Mode Verwirrung

Leider ist die Doku zu der Klasse ColorGroup etwas dürftig, oder ich bin zu blöd…
Im folgenden Beispiel Code, sieht es so aus, dass wenn der Mode der ColorGroup einmal festgelegt ist, also von NONE auf irgendwas gewechselt ist, der Mode für immer fest ist.

Var cg As New ColorGroup
Var cArray() As Color

Var mode As ColorGroup.Modes

mode = cg.Mode
// 1. Break The mode is "NONE" This is OKAY
Break

cg.AddColor(ColorGroup.Platforms.Current, &c11111100)
mode = cg.mode
cArray = cg.Values
// 2. BreakThe mode is "DUAL" this is wrong! should be "SINGLE" but there ar now 2 same colors in the array
Break

cg.AddColorPair(ColorGroup.Platforms.Current, &c22222200,&c33333300)
mode = cg.Mode
cArray = cg.Values
//  3. Break The mode is "DUAL" this is OK but now the colors are from break 2 not from the addColorPair
Break

cg.AddColor(ColorGroup.Platforms.Current, &c44444400)
mode = cg.mode
cArray = cg.Values
// 4. Break The mode is "DUAL" this is wrong! should be "SINGLE" and the colors are from break 2, where is the prev addColor
Break

Oder ist das ein Bug ??? Oder hab ich es nicht verstanden ?

Juergen

Das sieht echt komisch aus. Kann die Farbe einer ColorGroup nur einmal gesetzt werden? Und mode sieht falsch aus. Ich konnte dazu keinen Bug-Report finden.

Xojo 2022r3 unter macOS Ventura.

Ich würde eher darauf tippen, das es ein Verständnisproblem ist, kein Bug. So wie ich die Dokumentation verstehe besteht eine Farbgruppe besteht immer aus zwei Farbangaben (eine für den Hellmodus, eine für den Dunkelmodus). Die Modi geben nur an, wie die Farben verwendet werden sollen, Single bedeutet “nimm eine Farbe für Hell und Dunkel - beide Farbangaben enthalten also die gleiche Farbe”… AddColor() trägt also eine Farbe bei beiden Werten der Farbgruppe ein, AddColorPair() erlaubt das gezielte Setzen einer Farbe für den Hell- und einer Farbe für den Dunkelmodus.

Ob AddColor() und AppColorPair() die vorhandenen Werte überschreiben sollen oder die neuen ergänzen, kann ich jetzt nicht beurteilen - ich setze bisher die Werte einer ColorGroup nur einmal und ändere sie dann nicht mehr…

Danke euch beiden!
Um die Unklarheiten zu beseitigen, habe ich mal ein Issue erstellt.

Da mich die ColorGroup echt nervt, habe ich in der Zwischenzeit eine eigene Klasse erstellt, die logisch arbeitet. ich werde sie nochmal überarbeiten und dann den Link hier posten, vielleicht kann es ja der eine oder andere gebrauchen.

Mein Farbsetup, das ich mit ColorGroup machen wollte hat mich Tage an Zeit und Nerven gekostet…

Dies ist momentan meine selbst kreierte Lösung:

WTEC_ColorGroup

Einfach “einfach”…hoffentlich :slight_smile: Zumindest bis ich meinen ColorGroup Horizont erweitert habe…