LineColor default
Moderator: Moderatoren
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
LineColor default
Ich erstelle ein Koordinatensystem per Makro. In Libre Office sind die Linien schwer zu erkennen, sie sind zu blass. Ich kann jetzt für jede Linie ein dunkleres Grau und eine dickere Linie definieren, das sind aber etliche Linien. Das muss doch einfacher gehen. Die Linien haben ja auch eine Grundeinstellung in Farbe und Dicke - kann man diese Grundeinstellung ändern und im Dokument speichern?
Re: LineColor default
Hallo,
Dann wäre es doch das beste, darin die gewünschte Einstellung vorzunehmen oder übersehe ich etwas?Ich erstelle ein Koordinatensystem per Makro.
Versuchst du im Nachhinein die Linien zu ändern?Ich kann jetzt für jede Linie ein dunkleres Grau und eine dickere Linie definieren, das sind aber etliche Linien.
Gruß,
mikeleb
mikeleb
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: LineColor default
Hallo mikeleb,
vielleicht reden wir ja aneinander vorbei. Wenn in meinem Rechentrainer eine Aufgabe aufgerufen wird, in der ein Koordinatensystem benötigt wird, dann wird eine Routine aufgerufen, die nacheinander die waagerechten Gitterlinien, dann die waagerechten, die x- und y Achse, die Pfeilspitzen und die Einteilung und Beschriftung der Achsen. Anschließend wird u.U. noch ein Punkt, ein Polygon oder auch noch eine Spiegelachse erzeugt.
Die waagerechten und senkrechten Gitterlinien sind unter OpenOffice sehr schön zu erkennen, in LibreOffice nicht, je nach Einstellung des Monitors sind sie nahezu nicht zu erkennen (Bei der Arbeit bei uns im Computerraum, ging das an einem Monitor einigermaßen, am benachbarten möglicherweise gar nicht).
Wenn ich z.B. die waagerechten Linien mit:
In OO erzeuge, sieht das gut aus (auch wenn ich die Linienfarbe nicht definiere, ich glaube Grundeinstellung ist 15066597) in Libre Office muss ich die Linienfarbe extra definieren (zur Zeit rgb(100,100,100). Unter OpenOffice sieht das dann allerdings nicht mehr so gut aus. Ich muss also bei all den aufgezählten Objekten extra die LinienFarbe ausprobieren und dann anpassen. Und u.U. muss ich das auch noch bei anderen Zeichnungobjekten in meinem Programm anpassen. Da wäre es doch einfacher, die Grundeinstellung ändern zu können. In den OO Einstellungen kann ich ja das Farbschema von allen möglichen Linien anpassen, möglicherweise ist da ja auch eine Farbe für die mit Macro erzeugten Lineien dabei.
Die Frage, ob ich das im Nachhinein ändern will, verstehe ich nicht. Ich erzeuge das Koordinatensystem zur Laufzeit, wenn es von dem Aufgabentyp erfordert wird.
PS.: Wo finde ich eine Seite auf der Farben und rgb-Wert, oder auch der daraus berechnete Wert zu sehen ist? Und wie gibt man für die Farbe einen hexWert ein?
vielleicht reden wir ja aneinander vorbei. Wenn in meinem Rechentrainer eine Aufgabe aufgerufen wird, in der ein Koordinatensystem benötigt wird, dann wird eine Routine aufgerufen, die nacheinander die waagerechten Gitterlinien, dann die waagerechten, die x- und y Achse, die Pfeilspitzen und die Einteilung und Beschriftung der Achsen. Anschließend wird u.U. noch ein Punkt, ein Polygon oder auch noch eine Spiegelachse erzeugt.
Die waagerechten und senkrechten Gitterlinien sind unter OpenOffice sehr schön zu erkennen, in LibreOffice nicht, je nach Einstellung des Monitors sind sie nahezu nicht zu erkennen (Bei der Arbeit bei uns im Computerraum, ging das an einem Monitor einigermaßen, am benachbarten möglicherweise gar nicht).
Wenn ich z.B. die waagerechten Linien mit:
Code: Alles auswählen
for n=1 to anz
oLinie=oDoc.createInstance("com.sun.star.drawing.LineShape") 'horizont.
with oLinie
.Position=erzeugePunkt(StartX+n*abst,StartY)
.size=erzeugeSize(0,HH)
end with
oPage.add(oLinie)
next
Die Frage, ob ich das im Nachhinein ändern will, verstehe ich nicht. Ich erzeuge das Koordinatensystem zur Laufzeit, wenn es von dem Aufgabentyp erfordert wird.
PS.: Wo finde ich eine Seite auf der Farben und rgb-Wert, oder auch der daraus berechnete Wert zu sehen ist? Und wie gibt man für die Farbe einen hexWert ein?
Re: LineColor default
Hallo,
ich gehe davon aus, dass die Zeichungsobjekte immer in der Standardfarbe erstellt werden, sofern man die Farbe nicht explizit vorgibt.
Mit .createInstance("com.sun.star.drawing.LineShape") wird automatisch ein Linienobjekt in Standardfarbe erzeugt.
Meines Wissen kann diese Standardfarbe nicht geändert werden.
Besser und flexibler ist es, die Farben des Objekts selbst zu definieren.
Es muss dann halt in der Routine, in der eine Linie gezeichnet wird, die Farbe (und ggf. Dicke, Linienart) festgelegt werden.
Ich würde mir eine Funktion für die Linien erstellen und dann entsprechend aufrufen:
Hier wird in einem Calcdokument (1. Tabelle) eine waagerechte Linie mit Teilstrichen erzeugt.
Die Farben legst du am einfachsten per RGB() fest. Daraus wir der interne Farbwert berechnet. Welche Farbe (gemäß der Fabrbezeichung z. B. grau5) welchen RGB-Wert hat, kannst du herausfinden, indem du (z. B. bei Linienfarbe o. dgl.) die gewünschte Farbe wählst und dann auf benutzerdefinierte Farbe gehst.
ich gehe davon aus, dass die Zeichungsobjekte immer in der Standardfarbe erstellt werden, sofern man die Farbe nicht explizit vorgibt.
Mit .createInstance("com.sun.star.drawing.LineShape") wird automatisch ein Linienobjekt in Standardfarbe erzeugt.
Meines Wissen kann diese Standardfarbe nicht geändert werden.
Besser und flexibler ist es, die Farben des Objekts selbst zu definieren.
Es muss dann halt in der Routine, in der eine Linie gezeichnet wird, die Farbe (und ggf. Dicke, Linienart) festgelegt werden.
Ich würde mir eine Funktion für die Linien erstellen und dann entsprechend aufrufen:
Code: Alles auswählen
Sub test
oDoc=ThisComponent
linie_zeichnen(oDoc.DrawPages(0),1000,5000,12000,5000)
for i=1 to 10
linie_zeichnen(oDoc.DrawPages(0),1000+i*1000,5000-100,1000+i*1000,5000+100)
next
end sub
Function linie_zeichnen (oBlatt,x0,y0,x1,y1, optional farbe, optional dicke)
'Übergabeparameter:
'oBlatt: Drawpage als Objekt auf der die Linie eingefügt werden soll
'x0,y0: Startpunkt
'x1,y1: Endpunkt
'farbe: Linienfarbe (optional)
'dicke: Liniendicke (optional)
Dim aPosition as new com.sun.star.awt.Point
Dim aSize as new com.sun.star.awt.Size
Dim xShape as object
'Standardfarbe festlegen
If ismissing(farbe) then farbe=0
'Standarddicke festlegen
If ismissing(dicke) then dicke=20
xShape=ThisComponent.createInstance("com.sun.star.drawing.LineShape")
aPosition.X = x0
aPosition.Y = y0
xShape.Position = aPosition
aSize.width = x1-x0
aSize.height = y1-y0
xShape.Size=aSize
xShape.LineWidth = dicke
xShape.LineColor = farbe
oBlatt.add( xShape )
'falls die erzeugte Linie als Objekt noch irgendwie weiter benutzt werden soll
linie_zeichnen=xShape
End Function
Die Farben legst du am einfachsten per RGB() fest. Daraus wir der interne Farbwert berechnet. Welche Farbe (gemäß der Fabrbezeichung z. B. grau5) welchen RGB-Wert hat, kannst du herausfinden, indem du (z. B. bei Linienfarbe o. dgl.) die gewünschte Farbe wählst und dann auf benutzerdefinierte Farbe gehst.
Gruß,
mikeleb
mikeleb
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: LineColor default
Moin,
ich habe dazu eine Datei mit einem Makro erstellt, mit der man lernen kann, wie RGB, HEX und die Longinteger Farbnummer in OpenOffice grundsätzlich zusammenhängen. Gruß Rerikafuchs hat geschrieben: ↑Sa, 05.02.2022 16:17 PS.: Wo finde ich eine Seite auf der Farben und rgb-Wert, oder auch der daraus berechnete Wert zu sehen ist? Und wie gibt man für die Farbe einen hexWert ein?
- Dateianhänge
-
- Farbumrechnung.ods
- (63.33 KiB) 107-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: LineColor default
Hallo Rik,
wieder mal phänomenal! Ganz toll - kann man das nicht irgenwo abspeichern wo auch andere das nutzen können?
Wie man rgb in int-Werte umrechnet wusste ich ausnahmsweise schon, sogar einen hex-Wert hätte ich noch hinbekommen. Meine Frage war, wie man einen hex-Wert eingibt: LineColor=(123456) und LineColor=rgb(100,100,100) und LineColor=hex? Ich weiß sogar, dass hex(zahl) einen String mit dem hex-Wert zurückgibt. Gibt es auch eine Funktion, die aus einem hex-Wert den integer-Wert zurückgibt? Ich habe nämlich eine Tabelle mit den hex-Werten der "in OO eingebauten" Farben gefunden und wollte mir das händische Umrechnen sparen.
wieder mal phänomenal! Ganz toll - kann man das nicht irgenwo abspeichern wo auch andere das nutzen können?
Wie man rgb in int-Werte umrechnet wusste ich ausnahmsweise schon, sogar einen hex-Wert hätte ich noch hinbekommen. Meine Frage war, wie man einen hex-Wert eingibt: LineColor=(123456) und LineColor=rgb(100,100,100) und LineColor=hex? Ich weiß sogar, dass hex(zahl) einen String mit dem hex-Wert zurückgibt. Gibt es auch eine Funktion, die aus einem hex-Wert den integer-Wert zurückgibt? Ich habe nämlich eine Tabelle mit den hex-Werten der "in OO eingebauten" Farben gefunden und wollte mir das händische Umrechnen sparen.
Re: LineColor default
Hallo,
so eine Rechentabelle ist doch fix geschrieben ...
so eine Rechentabelle ist doch fix geschrieben ...
- Dateianhänge
-
- farbcodes umrechnen.ods
- (26.31 KiB) 100-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: LineColor default
Moin Peter,
Mit Xray nachgeschaut, Longinteger und RGB stimmen:
Gruß R
Du brauchst nichts umzurechnen, man kann den Objekten mit Starbasic die Hex-Farben direkt zuordnen, wenn man &H voranstellt, ein Beispiel, mit der Farbe aus o.a. Beispieldatei:erikafuchs hat geschrieben: ↑So, 06.02.2022 18:28 Ich habe nämlich eine Tabelle mit den hex-Werten der "in OO eingebauten" Farben gefunden und wollte mir das händische Umrechnen sparen.
Code: Alles auswählen
oShape.FillColor = &H1EEA80
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: LineColor default
Ist ja ganz einfach, wenn man‘s weiß. Ich habe es mit einer Klammer probiert. Und in meinen Unterlagen habe ich keine Info dazu gefunden.
Re: LineColor default
Moin,
http://www.dannenhoefer.de/faqstarbasic ... endet.html
Hier steht etwas dazu, wobei ich die letzten beiden Zeilen nicht verstanden habe.
Gruß R
http://www.dannenhoefer.de/faqstarbasic ... endet.html
Hier steht etwas dazu, wobei ich die letzten beiden Zeilen nicht verstanden habe.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO