Hi!
Hab ne Klasse (+ Modul) verfasst, die das Abmischen, Speichern und Verwenden von Farben erleichtern soll.
Fehler und so natürlich melden, bin noch nicht dazu gekommen alles ausgiebig zu testen
Sollte sich was ändern (was dazu kommen), dann poste ich die neue Version hier.
Achtung: Überläufe werden nicht abgefangen!
Ingegration:
Archiv entpacken, die 2 Dateien (cColor.cls, modColor.bas) dem Projekt hinzufügen.
Verwendung:
Entweder mit
Dim myColor as new cColor
myColor.SetColor Mode, R, G, B, A
die Klasse Instanzieren und eine Farbe zuweisen,
oder die Klasse mit Hilfe des Modules instanzieren. z.B.
Dim myColor as cColor : Set myColor = NewRGBAColor(R, G, B, A)
oder
Dim myColor as cColor : Set myColor = CloneColor(myOtherColor)
Um die Farben in VB verwenden zu können, verwendet man die RGB-Eigenschaft. Wenn man den Farbwert mit Alpha speichern will, verwendet man die RGBA-Eigenschaft. Das ganze geht natürlich auch in die andere Richtung.
Picturebox1.BackColor = myColor.RGB
myLong = myColor.RGBA
myColor.RGB = Me.BackColor
Die Funktionen im Modul sind hoffentlich selbstverständlich. Die Methoden in der Klasse sind englisch Dokumentiert (Kommentare darüber).
Bei Fragen, einfach hier stellen.
Mischen:
Fürs Mischen gibts 2 Modi mit je 2 Methoden. Der eine, Mix, mischt die Farben anhand eines Verhältnisses (optional auch den Alphawert), der andere, Blend, legt 2 Farben übereinander, optional mit anderem Alphawert. Das Ergebnis wird in der Variable gespeichert, in der die Methode aufgerufen wurde. Die eine Methode mischt 2 "fremde" Farben, die andere mischt die eigene mit einer "fremden" Farbe.
Achtung: Ratio ist ein Wert zwischen 0 und 1 (Double), Alpha ist ein Wert zwischen 0 und 255 (Byte).
ColorPointer:
Für die Verwendung von CopyMemory / RTLMoveMemory gibts noch eine ReadOnly-Propery ColorPointer. Der ColorPointer zeigt auf den ersten Farbwert. Folgende Codes kopieren RGB (1.) und RGBA (2.) in eine Variable Target:
CopyMemory Target, byval myColor.ColorPointer, 3
CopyMemory Target, byval myColor.ColorPointer, 4
Download:
cColor.7z (7zip, 1.93kB)
cColor.zip (Zip, 2.19kB)
Hab ne Klasse (+ Modul) verfasst, die das Abmischen, Speichern und Verwenden von Farben erleichtern soll.
Fehler und so natürlich melden, bin noch nicht dazu gekommen alles ausgiebig zu testen
Sollte sich was ändern (was dazu kommen), dann poste ich die neue Version hier.
Achtung: Überläufe werden nicht abgefangen!
Ingegration:
Archiv entpacken, die 2 Dateien (cColor.cls, modColor.bas) dem Projekt hinzufügen.
Verwendung:
Entweder mit
Dim myColor as new cColor
myColor.SetColor Mode, R, G, B, A
die Klasse Instanzieren und eine Farbe zuweisen,
oder die Klasse mit Hilfe des Modules instanzieren. z.B.
Dim myColor as cColor : Set myColor = NewRGBAColor(R, G, B, A)
oder
Dim myColor as cColor : Set myColor = CloneColor(myOtherColor)
Um die Farben in VB verwenden zu können, verwendet man die RGB-Eigenschaft. Wenn man den Farbwert mit Alpha speichern will, verwendet man die RGBA-Eigenschaft. Das ganze geht natürlich auch in die andere Richtung.
Picturebox1.BackColor = myColor.RGB
myLong = myColor.RGBA
myColor.RGB = Me.BackColor
Die Funktionen im Modul sind hoffentlich selbstverständlich. Die Methoden in der Klasse sind englisch Dokumentiert (Kommentare darüber).
Bei Fragen, einfach hier stellen.
Mischen:
Fürs Mischen gibts 2 Modi mit je 2 Methoden. Der eine, Mix, mischt die Farben anhand eines Verhältnisses (optional auch den Alphawert), der andere, Blend, legt 2 Farben übereinander, optional mit anderem Alphawert. Das Ergebnis wird in der Variable gespeichert, in der die Methode aufgerufen wurde. Die eine Methode mischt 2 "fremde" Farben, die andere mischt die eigene mit einer "fremden" Farbe.
Achtung: Ratio ist ein Wert zwischen 0 und 1 (Double), Alpha ist ein Wert zwischen 0 und 255 (Byte).
ColorPointer:
Für die Verwendung von CopyMemory / RTLMoveMemory gibts noch eine ReadOnly-Propery ColorPointer. Der ColorPointer zeigt auf den ersten Farbwert. Folgende Codes kopieren RGB (1.) und RGBA (2.) in eine Variable Target:
CopyMemory Target, byval myColor.ColorPointer, 3
CopyMemory Target, byval myColor.ColorPointer, 4
Download:
cColor.7z (7zip, 1.93kB)
cColor.zip (Zip, 2.19kB)