Mehr Farben

Zur Vorstellung von Komponenten und Units für Lazarus
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Mehr Farben

Beitrag von pluto »

Hallo,
ich habe mir heute, eine kleine Farbe liste zusammen gestellt von der seite:
http://www.uni-magdeburg.de/counter/rgb.txt.shtml
Habe mir den Soruce Code von der Seite runter geladen und ihn gepasst dabei ist diese unit im Anhang rauß gekommen.

Was haltet ihr davon ?
Habt ihr noch mehr Farben ?
weil ich finde die paar 16 Farben sind zu wenig.
http://de.wikipedia.org/wiki/Webfarben
http://www.uni-magdeburg.de/counter/rgb.txt.shtml
http://chat.internetworx.de/help/Farbtabelle.html
http://www.drweb.de/ressourcen/farbnamen.shtml

Autor : Michael Springwald
Erstellt: unbekannt
Updates : Montag, 16.Juli.2007, Freitag, 20.Juli.2007
Samstag, 21.Juli.2007

-----------------------------------------------------------------
Stellt mehr(649) Farben zu verfügung !

Ich habe die internet seite:
http://www.uni-magdeburg.de/counter/rgb.txt.shtml
runtergeladen un gepasst und damit diese Liste erstellt.

Sie Stellt die Funktionen/Proceduren:
procedure ColorToStringList(var StringList:TStrings);
Füllt die Angebe StringList Komplet mit den Neuen Farben
Dabei werden nur die Farbnamen zurück geben.

Später sollte hierauch noch der Farb Wert zurück geben werden können
bzw. Beide.

Wandelt einen Farbwert in einen String um.
Berücksichtig allerdings die Neuen und die Alten Farben
function Color2ToString(const Color:TColor;const isAltColor:Boolean = True):String;

Wandelt einen String in einem TColor Wert um.
Berücksichtig allerdings die Neuen und die Alten Farben

function String2ToColor(const ColorStr:String; const isAltColor:Boolean = True):TColor;
-----------------------------------------------------------------

Gibt eine Zufallst Farbe aus einer angeben Liste oder aus TColors2
Wenn ColorList Leer ist, wird aus Colors2 gewählt, dabei wird dann
auch der Tolleranz Wert berücksichtig, der Wiederum
wenn ColorList nicht leer ist nicht berücksichtig Wird.

NoColor Gibt ein Farb wert an der nicht ausgewählt werden darf
AutoClear Löscht die Liste die die Häufigkeit der gewählten Farben
minimieren sollte

Tolleranzbereich
ist ein Wert von der die Farbe maximal abweichen darf

function RandomColorList(ColorList:array of TColor; noColor:TColor = clNone; const AutoClear:Integer = 10; const TolleranzBereich:Integer = 10):TColor;
--------------------------------------------------------


[highlight=yellow]Update 2 am Freitag, 21.Juli.2007[/highlight]
- Autor Infos Hinzugefügt.
- Beschreibung der Funktionen/Proceduren
- Eine Neue Funktion: RandomColorList(Siehe Beschreibung Oben)

[highlight=yellow]Update 1 am Montag, 16.Juli.2007[/highlight]
Habe die unit geändert. Es gibt jetzt eine Farbliste Colors2 und
eine neue Procedure:
ColorToStringList
erwartet eine Var von Typ TStrings

und zwei neue Funktionen:
function Color2ToString(const Color:TColor;const isAltColor:Boolean = True):String;
function String2ToColor(const ColorStr:String; const isAltColor:Boolean = True):TColor;

ist der Parameter isAltColor auf True wird ColorToString bzw. StringToColor aufgerufen, sollte der wert in meiner Tabelle nicht gefunden werden.

Ich hätte gerne ein Parameter isAltColor auch bei ColorToStringList hinzugefügt doch leider kann ich nicht auf Colors in der Unit: Graphics drauf zugreifen aus meiner.

Hätte da jemand ein Idee ?
Habt ihr noch Vorschläge/Verbesserungen ? mehr Farben ?
Nur her damit.

Ich finde das Thema Farben Interessant.
die neue Unit ist im Anhang

So Viel Spaß Damit !
Dateianhänge
ucolorlist.pas
Neue Version: 1.0
(50.84 KiB) 83-mal heruntergeladen
Zuletzt geändert von pluto am Sa 21. Jul 2007, 13:52, insgesamt 9-mal geändert.
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

16 Farben sind imho wirklich wenig.

Aber wäre es nicht noch besser, wenn man - anstatt eine Liste mit Konstanten zu haben die Namen tragen, die sich eh keiner merken kann - ein kleines Tool für die IDE hätte (externes Werkzeug) mit dem schnell mal so eine Farbe rauspicken kann? Nur so eine Idee.

Nicht falsch verstehen, ich finde die Liste super gut und auch, dass du dir so viel Mühe machst, aber wäre das nicht ein "huge enhancement"?
;)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Die farben werden doch im Objektinspector eh angezeigt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

@bembulak
Ich verstehe nicht genau wie du dir das vorstellt.
Einfach so wie bei MS Paint ?

@Christian
Aber nur die 16, und die System Farben gehen leider nicht immer.
ich wollte clbt... noch was verwendet, und die Farbe wurde nicht übernommen !

anstatt eine Liste mit Konstanten zu haben die Namen tragen,

Was meinst du damit ? ich wollte alle Konsten die ich erstellt habe jetzt noch in ein Array packen und ColorToString2 und String2ToColor erstellen.
ach ja, wenn Farben fehlen sollten bitte ebend hinzufügen und hier posten *G*
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben:@Christian
Aber nur die 16, und die System Farben gehen leider nicht immer.
ich wollte clbt... noch was verwendet, und die Farbe wurde nicht übernommen !


Es gibt neben der Color-Combobox im OI noch einen Button. Drück mal da drauf!

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja den kenne ich, aber leider sind die Farben dort ohne Namen !
und stehen nicht für einfache Zuweisungen zur Laufzeit zuverfügung :!:
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

@Pluto: ich habe es mir so vorgestellt:

[img]http://bembulak.bas-x.de/files/bwebc.png[/img]
;)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ach so, eine Color ListView also ?
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Nun, ich dachte mir, dass es so vielleicht für Webdesigner oder so ganz interessant sein könnte. Man kann sich die Farben ja nicht alle 650 merken.
So ein kleines Tool wäre schon nett. So könnte man z.B. eine Farbe nach Name, HEX-Wert, Int-Wert, RGB-Wert, HSV, CMYk suchen! Oder man bekommt z.B. von einer Firma den Auftrag für deren Banner die Farbe "PowderBlue" zu verwenden. So muss man nicht extra danach im Netz suchen, sonder hat es gleich!

Vom Programmieren her sicher nicht aufwendig, aber eventuell ganz nützlich.

Edit: habe ich mich für die Liste und die Links eigentlich schon bedankt?? Danke!

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Edit: habe ich mich für die Liste und die Links eigentlich schon bedankt?? Danke!

Noch nicht, Aber jetzt *G*

Schön das es jemand was bringt. Deine Idee ist nicht schlecht.
Aber dann würde ich sowas ehrer als Komponente versuchen.
Die dann z.b. folgendes kann:
A) Alle Farben als Liste
B) Einen User Definierten Header, also wo gesagt werden kann, welches Farbsystem Verwendet werden soll:
RGB, HEX und soweiter muss ich mal nach suchen.
C) Evlt. als Farbe Kreis da stellen oder in anderen Typen

Ich weiß noch nicht ob ich das mache.... mal sehen. Wenn du lust hast, kannst du ja gerne sowas anfangen.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich werde sowas evlt. als Erweiterung in der Unit rein stellen.
Verschiedene Umrechnung Arten und Fertig.

Wenn für eine Firma Gelb verwendet wird, kann das meine Unit ja nicht wissen oder ?
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Nun, das mit dem Umrechnen ist so eine Sache. Ich habe mich schon "schlau" gemacht, aber mehr ausser HEX, RGB und IntValue ist nicht rauszuholen.
Das Konvertieren von einem Farbraum in einen Anderen (z.B.: RGB <-> CMYK) ist immer nur eine Annäherung und _NIEMALS_ genau.

Aber man kann mit der Liste trotzdem super rumspielen. Wenn man, wie ich, sonst keine Projekte (hat ein Hobbyprogrammierer eigentlich "Projekte") hat, kann man damit Ideal ein paar Dinge dazulernen.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Was ich gerne noch machen würde ist sowas wie Reale Namen zu verwenden um sie dann z.b. in einer Listbox anzuzeigen, weißt du wie ich das meine ?

clRed = Rot(DE, Red(en) und soweiter
clYellow = Gelb(DE), Yellow(en)

Übrings hat OpenOffice eine Prima Farben Liste, nur weiß ich leider nicht wo sie gespeichert wird. weißt du/ihr da mehr ?
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Nun, "reale" Namen nimmt man ja schon, wenn man deine Liste heranzieht. Das steht ja schon drinnen. Diese Namen/Bezeichnungen sind ja die realen Namen dieser Farben wie sie in vielen Programmen verwendet werden.

Und das mit der Übersetzung ist imho überflüssig. Wichtiger finde ich es, dass man
a) suchen kann
b) Details bekommt
c) eigene Farbräume speichert.

Zu OpenOffice: nein, tut mir leid, ich weiß nicht, wie und wo dort gespeichert wird. Auch die Farbräume von CorelDraw und Inkscape sind mir (leider) unbekannt. :(

Aber kommt Zeit, kommt ...?

(und da ich sowas mittlerweile in einer mir geläufigeren Sprache realisiert habe: http://bembulak.bas-x.de/bwebc.html)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

bembulak hat geschrieben:(und da ich sowas mittlerweile in einer mir geläufigeren Sprache realisiert habe: http://bembulak.bas-x.de/bwebc.html)


Kommt ein Port ?! :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten