Farbe aus der Palette als RGB(x,x,x)-Funktion?

Hallo,
Auf ein Click-Ereignis soll ein Control die Türkis-Farbe aus der Farbpalette (5. von oben, 6. von links) erhalten, die im Eigenschaftsfenster &H00808000& heißt. Gibt es für die Farben der Palette RGB-Funktionen und wo finde ich sie, gerade auch für die gewünschte Farbe?
Danke und Gruß
Wilhelm

Hallo Wilhelm,

eine späte Antwort zwar, aber hoffentlich hilft sie Dir trotzdem:

Auf ein Click-Ereignis soll ein Control die Türkis-Farbe aus
der Farbpalette (5. von oben, 6. von links) erhalten, die im
Eigenschaftsfenster &H00808000& heißt. Gibt es für die Farben
der Palette RGB-Funktionen und wo finde ich sie

Es gibt keine spezielle Funktion, mit der Du die Farben aus der Palette erhältst. Die einzigen beiden Möglichkeiten sind

QBColor(0…15), das Dir die 16 „Grundfarben“ zurückgibt und
RGB(0…255, 0…255, 0…255), das Du ja kennst.

Du kannst Dir die Farben aus der Palette aber rausschreiben und in Konstanten oder einem Array speichern, wenn Du willst.

gerade auch
für die gewünschte Farbe?

Wenn Du Dir die Zahl &H00808000& genau ansiehst, merkst Du, dass die letzten 6 Stellen genau den RGB-Werten entsprechen,

&H00808000&
 BBGGRR

allerdings in hexadezimaler Schreibweise und in umgekehrter Reihenfolge, also BGR! Dein Türkis ist also (Hex 80 = Dez 128):

RGB(0,128,128) = RGB(val("&H00808000&")) = 8421376&

Wie Du siehst, kannst Du den String auch direkt in die RGB-Funktion schreiben und mit

val

umwandeln.

Wenn Du noch Fragen hast, melde Dich einfach.

Gruß

Sculpture

Hi Sculpture,
weil - bis zu Deinem posting - keiner Rat wußte, hatte ich mir einen Farbmischer aus 3 Spin-Buttons zur Veränderung der Farbwerte, 2 Labels zur Aufnahme der Misch-Farben und 3 Textboxen zur Anzeige der Values aus den Spin-Buttons gebaut. Es klappte zwar bestens, aber mit Deinen Hintergrundinfos bin ich jetzt natürlich bestens für die Zukunft gerüstet.
Danke und einen schönen restlichen 2. Ostertag.
Gruß Wilhelm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sculpture,
zu früh gefreut! Mit hexdezimalen Zahlen hab´ich nichts am Hut, die Schulzeit liegt zu lange zurück, also habe ich testweise versucht:

Private Sub CommandButton1_Click()
CommandButton1.BackColor = RGB(Val("&H00808000&"))
End Sub

Ergibt nicht das schöne erwünschte Türkis sondern:
„Fehler beim Kompilieren, Argument nicht optional“
Läßt sich das optimieren? Ich würde so gern mit &H00808000&" pp arbeiten! By the way: Was bedeuten die beiden &-Zeichen und das H am Anfang?
Gruß Wilhelm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Wilhelm,

sorry, das war mein Fehler! Habe mich in meinem früheren Posting verschrieben. Versuch’s mal mit:

Private Sub CommandButton1\_Click()
CommandButton1.BackColor = Val("&H00808000&")
End Sub

Das heißt: Streiche einfach das RGB davor, das ist zuviel, weil die ganze Information schon in der Hex-Zahl steckt. Die RGB-Funktion erwartet drei Argumente (rot, grün, blau), deshalb gab es einen Fehler.

Achtung: Damit der Code oben funktioniert, musst Du die „Style“-Eigenschaft des Buttons auf „1 - Grafisch“ stellen, sonst bleibt er grau.

Ich würde so gern mit &H00808000&" arbeiten

Sollte jetzt kein Problem mehr sein!

By the way: Was bedeuten die beiden &-Zeichen und

Das &H am Anfang heißt, dass nun eine Hexadezimalzahl kommt, das & am Ende, dass es sich um eine LONG-Zahl handelt (?). Habe aber gerade das letzte & weggelassen und es funktioniert auch. Wenn Du willst, kannst Du auch die ersten beiden Nullen streichen, also nur „&H808000“ schreiben.

Tschuldige nochmal für den Patzer.

Gruß

Sculpture

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]