Manipolare selettivamente le Linee (LineShape) degli oggetti nella dispositiva corrente
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Descrizione
Spesso risulta utile essere in grado di selezionare ciclicamente una specifica classe di oggetti presenti nella diapositiva corrente. Per esempio potreste avere diversi oggetti all'interno della diapositiva, come immagini com.sun.star.GraphicObjectShape
o forme del tipo com.sun.star.drawing.RectangleShape
. Pensate di voler modificare una proprietà di tutte le forme di un tipo.
La macro che segue esegue un ciclo su tutte le forme com.sun.star.drawing.LineShape
[1], quindi modifica alcune proprietà di ogni forma (LineShape). Perciò la macro illustra le varie proprietà delle forme (LineShape) che potreste voler modificare, come il colore, inoltre mostra come selezionare ciclicamente i vari oggetti all'interno della diapositiva corrente.
Non è necessario precisare che la macro può fungere da modello anche per altre applicazioni. Una versione modificata del codice sottostante è contenuta nel file ODP scaricabile in seguito, nel quale la macro è stata suddivisa in diverse macro, assegnate a differenti Pulsanti, come visibile nella seguente schermata:
Codice
LibreOffice Basic
'Option Explicit
Sub manipulate_lineshapes ()
'''Seleziona ciclicamente tutti gli oggetti com.sun.star.drawing.LineShape e manipola le relative proprietà.'''
oSlide = ThisComponent.CurrentController.CurrentPage
For i = 0 To oSlide.getCount()-1
With oSlide.getByIndex(i)
If .getShapeType() = "com.sun.star.drawing.LineShape" Then
.LineWidth = .LineWidth + 50
.LineEndWidth = .LineEndWidth + 50
.LineEndName = "Square" ' Arrow, Square, Circle, etc
.LineColor = RGB(52,101,164)
.LineStyle = com.sun.star.drawing.LineStyle.DASH ' .SOLID or .DASH or .NONE
.LineDashName = "Ultrafine Dashed" ' Fine Dashed, Fine Dotted, Ultrafine Dashed, etc
End If
End With
Next
End Sub ' manipulate_lineshapes
Python
da completare
Scaricate il file ODP
Note
- ↑ Vedete la documentazione delle API relative agli oggetti com.sun.star.drawing.LineShape e LineProperties.