kann man die Farbnamen ansprechen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

kann man die Farbnamen ansprechen?

Beitrag von clag »

Hallo Kenner und Könner,

es wird ja gerade mal wieder (im CalcForum) mit Farben experimentiert, und ich versuch gerade einen Weg "Farben zu gruppieren",
also RGB Bereiche Rot Orange Gelb Grün usw. als variable Werte für RGB.

Da tauchen für mich jetzt Fragen auf,
1. kann man die Namen aus der Standardfarbpalette anwenden um Farben zu setzen oder zu prüfen?
2. kann man per Makro die FarbPalette erweitern und auch neue Namen vergeben?
3. kann man in der Farbpalette einem Namen und den zugehörigen RGB Wert abfragen?

wenn ja wie?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: kann man die Farbnamen ansprechen?

Beitrag von F3K Total »

Hallo Clag,
hier schreibt hanya, (Programmierer von MRI) dass man mit dem Service

Code: Alles auswählen

com.sun.star.drawing.ColorTable
direkt auf die aktuelle Farbpalette zugreifen kann.
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: kann man die Farbnamen ansprechen?

Beitrag von F3K Total »

Hier ein Beispiel, wie du mit Basic auf die aktuellen Farbnamen und Farbwerte zugreifen kannst:

Code: Alles auswählen

Sub S_COLORS
    oColortable = createunoService("com.sun.star.drawing.ColorTable")
    xray oColortable
    xray oColortable.elementNames
    lColor = oColortable.getbyname("Rot")
    xray lcolor
End Sub
EDIT:Code durch CreateunoService gekürzt
Gruß R
Zuletzt geändert von F3K Total am Sa, 07.02.2015 18:28, insgesamt 1-mal geändert.
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: kann man die Farbnamen ansprechen?

Beitrag von clag »

Hallo F3K Total,

geht ja wirklich fast alles in OO besten Dank für deine Info und Hinweise, die Liste der Farbnahmen wird schön als solche dargestellt,
aber die Farbwerte dazu muss man sich dann aber doch wieder einzeln ziehen bzw durch eine Schleife holen?

Und gibt es eine interne Möglichkeit den Farbwert gleich als RGB auszugeben, bisher habe ich das in drei Schritten zu Fuß zurückgerechnet?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: kann man die Farbnamen ansprechen?

Beitrag von Karolus »

Soweit mir bekannt, gibts in Basic die Runtimefunktionen `red, green, blue, rgb`
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: kann man die Farbnamen ansprechen?

Beitrag von clag »

Hallo Karolus,

ja RGB() habe ich verinnerlicht weil setzen einer Farbe kommt ja eher mal vor

und mit RED() GREEN() BLUE() hast du völlig Recht so steht es da ganz deutlich unter runtime Funktionen,
nur habe ich es irgendwie immer überlesen, ist wie mit den Scheunentoren ....

Also besten Dank für deine Anleitung und Lesehilfe :lol:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: kann man die Farbnamen ansprechen?

Beitrag von Karolus »

Hallo

Code: Alles auswählen

import clipboard

colors = createUnoService('com.sun.star.drawing.ColorTable')

bbcodeliste = '\n'.join(['[color=#{1:06X}]{0}[/color]'.format(colorname,
                                                              colors.getByName( colorname))
                         for colorname in colors.getElementNames()])

clipboard.copy(bbcodeliste) 
voila:

  • Schwarz
    Weiß
    Grau 1
    Grau 2
    Grau 3
    Grau 4
    Grau 5
    Grau 6
    Grau 7
    Grau 8
    Grau 9
    Grau 10
    Gelb
    Orange
    Rot
    Rosa
    Magenta
    Purpur
    Blau
    Himmelblau
    Cyan
    Türkis
    Grün
    Gelb-grün
    Gelb 1
    Orange 1
    Rot 1
    Rosa 1
    Magenta 1
    Purpur 1
    Blau 1
    Himmelblau 1
    Cyan 1
    Türkis 1
    Grün 1
    Gelb-grün 1
    Gelb 2
    Orange 2
    Rot 2
    Rosa 2
    Magenta 2
    Purpur 2
    Blau 2
    Himmelblau 2
    Cyan 2
    Türkis 2
    Grün 2
    Gelb-grün 2
    Gelb 3
    Orange 3
    Rot 3
    Rosa 3
    Magenta 3
    Purpur 3
    Blau 3
    Himmelblau 3
    Cyan 3
    Türkis 3
    Grün 3
    Gelb-grün 3
    Gelb 4
    Orange 4
    Rot 4
    Rosa 4
    Magenta 4
    Purpur 4
    Blau 4
    Himmelblau 4
    Cyan 4
    Türkis 4
    Grün 4
    Gelb-grün 4
    Gelb 5
    Orange 5
    Rot 5
    Rosa 5
    Magenta 5
    Purpur 5
    Blau 5
    Himmelblau 5
    Cyan 5
    Türkis 5
    Grün 5
    Gelb-grün 5
    Gelb 6
    Orange 6
    Rot 6
    Rosa 6
    Magenta 6
    Purpur 6
    Blau 6
    Himmelblau 6
    Cyan 6
    Türkis 6
    Grün 6
    Gelb-grün 6
    Gelb 7
    Orange 7
    Rot 7
    Rosa 7
    Magenta 7
    Purpur 7
    Blau 7
    Himmelblau 7
    Cyan 7
    Türkis 7
    Grün 7
    Gelb-grün 7
    Gelb 8
    Orange 8
    Rot 8
    Rosa 8
    Magenta 8
    Purpur 8
    Blau 8
    Himmelblau 8
    Cyan 8
    Türkis 8
    Grün 8
    Gelb-grün 8
    Gelb 9
    Orange 9
    Rot 9
    Rosa 9
    Magenta 9
    Purpur 9
    Blau 9
    Himmelblau 9
    Cyan 9
    Türkis 9
    Grün 9
    Gelb-grün 9
    Gelb 10
    Orange 10
    Rot 10
    Rosa 10
    Magenta 10
    Purpur 10
    Blau 10
    Himmelblau 10
    Cyan 10
    Türkis 10
    Grün 10
    Gelb-grün 10
    Blaugrau
    Klassisches blau
    Lila
    Bordeaux
    Blassgelb
    Blassgrün
    Dunkellila
    Lachs
    Seeblau
    Diagramm 1
    Diagramm 2
    Diagramm 3
    Diagramm 4
    Diagramm 5
    Diagramm 6
    Diagramm 7
    Diagramm 8
    Diagramm 9
    Diagramm 10
    Diagramm 11
    Diagramm 12
    Tango: Himmelblau 1
    Tango: Himmelblau 2
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: kann man die Farbnamen ansprechen?

Beitrag von F3K Total »

... Wenn uns jetzt noch einer sagt, wie man, wenn dem ColorTable über insertbyname() eine neue Farbe zugeordnet wurde, dafür sorgt, dass AOO/LO die neue Farbe übernimmt, dann sind wir ganz weit vorn ... ich habe es nicht herausbekommen ...
Gruß R
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: kann man die Farbnamen ansprechen?

Beitrag von clag »

haha

wenn Karolus mich/uns neidisch machen wollte hat er es zumindest bei mir damit geschafft :shock:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: kann man die Farbnamen ansprechen?

Beitrag von Karolus »

F3K Total hat geschrieben:... Wenn uns jetzt noch einer sagt, wie man, wenn dem ColorTable über insertbyname() eine neue Farbe zugeordnet wurde, dafür sorgt, dass AOO/LO die neue Farbe übernimmt, dann sind wir ganz weit vorn ... ich habe es nicht herausbekommen ...
Gruß R
Wie es auf diesem Weg geht weiss ich auch nicht, notfalls würde ich einfach ~4/user/config/standard.soc bearbeiten.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: kann man die Farbnamen ansprechen?

Beitrag von Karolus »

clag hat geschrieben:haha
wenn Karolus mich/uns neidisch machen wollte hat er es zumindest bei mir damit geschafft
Neidisch - ja, aber nur insofern ihr euch die Frage stellen sollt "heh, warum wurstle ich immer noch ausschliesslich mit Basic rum?"

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: kann man die Farbnamen ansprechen?

Beitrag von clag »

Hallo Karolus,
Karolus hat geschrieben:Neidisch - ja, aber nur insofern ihr euch die Frage stellen sollt "heh, warum wurstle ich immer noch ausschliesslich mit Basic rum?"
ja genau so war das auch gemeint!

Formel- und Code-generierend betrachtet bis du hier im Forum ja ohne jeden Zweifel Vorreiter und kreierst exzellenten Beispiele und Lösungen.
Aber nicht jeder kann das gleich ohne etwas Erklärung dazu aufsaugen, und hier nehme ich dich jetzt mal im Namen aller Forumsleser in die Pflicht.

Sei bitte so gut, und kommentiere deinen Code zusätzlich etwas.

Dann ist das für Python gewillte Neulinge oder Basic-Umsteiger sicher erheblich einfacher, diese Beispiele aufzunehmen und damit weiter zu kommen.
Sonst ist es fast wie "Perlen vor die Säue werfen" und das wäre doch wirklich Schade.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten