Guten Tag
Beschäftige mich in Calc eben mit Drawpage, also dem Einfügen von grafischen Elementen in die Drawpage eines Calc-Sheets. Dabei hab ich aber das Problem mehrere grafische Elemente auch nacheinander der Drawpage von Sheet(0) zuzufügen.
Hab schon experimentiert mit
oDrawpage = thiscomponent.Sheets(0).Drawpage
oDrawpage.getbyIndex(0). ???
oDrawpage.getbyIndex(1). ???
Hat alles nicht funktioniert. Bei Andrew Pintonyak Seite 321 'Linien mit Pfeilen zeichnen in Calc' steht ein Beispiel wo die grafischen Linien tatsächlich programmiert werden bevor sie der Drawpage zugefügt werden(Drawpage.add(oLine)).
Kann das heissen dass man mehrere fertig erstellte grafische Elemente, also z.B. mehrere Pfeile die man z.B. über 'Linien und Pfeile' erzeugt hat wie im Bild zu sehen nicht in die Drawpage eines Sheets(x) einfügen kann ?
vielen Dank
Luftschraube
🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Calc, Grafikelemente einfügen in die Drawpage
-
- Beiträge: 39
- Registriert: So 5. Mai 2019, 09:20
Re: Calc, Grafikelemente einfügen in die Drawpage
Hallo,
hier zwei Beispielcodes, welche Du z.B. in Writer, Draw und auch Calc anwenden kannst:
hier zwei Beispielcodes, welche Du z.B. in Writer, Draw und auch Calc anwenden kannst:
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
REM ══════════════════════════════════════════════════════════════════════════════════════════════════
REM Draw: Pfeil einfügen. Das Array beinhaltet die Typen der Pfeilspitzen
REM ══════════════════════════════════════════════════════════════════════════════════════════════════
Sub [einen Pfeil einfuegen]
Dim oDoc as Object
Dim oDrawPage as Object
Dim oLine as Object
Dim aPos As New com.sun.star.awt.Point 'Position eines Punktes
Dim aSize As New com.sun.star.awt.Size 'Grafikgröße
oDoc=Thiscomponent
REM Die erste Folie wird gewählt
oDrawPage = oDoc.getDrawPages().getByIndex(0)
REM Muss NACH dem Einfügen der Linie in die Folie getan werden.
REM Nicht alle Flags funktionieren in Draw:
REM • Arrow
REM • Arrow concave
REM • Circle
REM • Dimension Lines
REM • Double Arrow
REM • Line Arrow
REM • Rounded large Arrow
REM • Rounded short Arrow
REM • Small Arrow
REM • Square
REM • Square 45
REM • Symmetric Arrow
'xray oLine
Dim myArray(11)
myArray()=Array("Arrow","Arrow concave","Circle","Dimension Lines","Double Arrow", _
"Line Arrow","Rounded large Arrow","Rounded short Arrow","Small Arrow","Square","Square 45","Symmetric Arrow")
'com.sun.star.drawing.GraphicObjectShape
oLine = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
'xray oLine
oLine = oDoc.createInstance("com.sun.star.drawing.LineShape")
oLine.LineColor = RGB(255,0,0) 'Linienfarbe
' Angabe in mm
' IN der Drawoberfläche wird Punkt erwartet:
' 1pt = 0,3527mm
' Alle Maßangaben sind in Hundertstel mm.
' 35,27mm = 1pt
' 52,09mm = 1,5pt
' 81,12mm = 2,3pt
oLine.LineWidth = 35.27 '81.12 '52.09 'Linienstärke
'xray oline
aSize.Width = 1000 'Breite
aSize.Height= 0 'Höhe
oLine.setSize(aSize)
aPos.X = 2000 'Abstand von links
aPos.Y = 2000 'Abstand von oben
oLine.setPosition(aPos)
oDrawPage.add(oLine)
' oLine.LineWidth = 50 'Linienstärke
oLine.LineEndName = myArray(0)
End Sub
Sub [mehrere Pfeile einfuegen]
Dim oDoc as Object
Dim oDrawPage as Object
Dim oLine as Object
Dim nTop as Long
Dim nCnt1 as Long
Dim aPos As New com.sun.star.awt.Point 'Position eines Punktes
Dim aSize As New com.sun.star.awt.Size 'Grafikgröße
oDoc=Thiscomponent
REM Die erste Folie wird gewählt
oDrawPage = oDoc.getDrawPages().getByIndex(0)
REM Muss NACH dem Einfügen der Linie in die Folie getan werden.
REM Nicht alle Flags funktionieren in Draw:
REM • Arrow
REM • Arrow concave
REM • Circle
REM • Dimension Lines
REM • Double Arrow
REM • Line Arrow
REM • Rounded large Arrow
REM • Rounded short Arrow
REM • Small Arrow
REM • Square
REM • Square 45
REM • Symmetric Arrow
'xray oLine
Dim myArray(11)
myArray()=Array("Arrow","Arrow concave","Circle","Dimension Lines","Double Arrow", _
"Line Arrow","Rounded large Arrow","Rounded short Arrow","Small Arrow","Square","Square 45","Symmetric Arrow")
'com.sun.star.drawing.GraphicObjectShape
oLine = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
'xray oLine
nTop=2000
for nCnt1 = 0 to 11
'Alle Maßangaben sind in Hundertstel mm.
' oCap=oLine = oDoc.createInstance("com.sun.star.drawing.LineCap")
oLine.Linecap="SQUARE"
oLine = oDoc.createInstance("com.sun.star.drawing.LineShape")
oLine.LineColor = RGB(255,0,0) 'Linienfarbe
oLine.LineWidth = 80 'Linienstärke
aSize.Width = 1000 'Breite
aSize.Height= 0 'Höhe
oLine.setSize(aSize)
'xray oLine
aPos.X = 2000 'Abstand von links
aPos.Y = nTop 'Abstand von oben
oLine.setPosition(aPos)
nTop=nTop +500
oDrawPage.add(oLine)
on error resume next
oLine.LineEndName = myArray(nCnt1)
next nCnt1
End Sub
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
-
- Beiträge: 39
- Registriert: So 5. Mai 2019, 09:20
[gelöst] Calc, Grafikelemente einfügen in die Drawpage
Hallo
Vielen Dank für das ausführliche Beispielmakro, hat mir sehr geholfen !
gruss Luftschraube
Vielen Dank für das ausführliche Beispielmakro, hat mir sehr geholfen !
gruss Luftschraube
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.