Modifica degli oggetti di disegno

From Apache OpenOffice Wiki
Jump to: navigation, search

Template:EN/Documentation/BASICGuideTOC/v2


Raggruppamento degli oggetti

In molte situazioni è utile raggruppare diversi singoli oggetti di disegno in modo che funzionino come un unico oggetto di grandi dimensioni.

L'esempio seguente combina due oggetti di disegno:

Dim Doc As Object
Dim Page As Object
Dim Square As Object
Dim Circle As Object
Dim Shapes As Object
Dim Group As Object
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Dim NewPos As New com.sun.star.awt.Point
Dim Height As Long
Dim Width As Long
 
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
Point.x = 3000
Point.y = 3000
Size.Width = 3000
Size.Height = 3000
' create square drawing element
Square = Doc.createInstance("com.sun.star.drawing.RectangleShape")
Square.Size = Size
Square.Position = Point
Square.FillColor = RGB(255,128,128) 
Page.add(Square)
 
' create circle drawing element
Circle = Doc.createInstance("com.sun.star.drawing.EllipseShape")
Circle.Size = Size
Circle.Position = Point
Circle.FillColor = RGB(255,128,128) 
Circle.FillColor = RGB(0,255,0)
Page.add(Circle)
 
' combine square and circle drawing elements
Shapes = createUnoService("com.sun.star.drawing.ShapeCollection")
Shapes.add(Square)
 
Shapes.add(Circle)
Group = Page.group(Shapes)
' centre combined drawing elements
Height = Page.Height
Width = Page.Width
NewPos.X = Width / 2
NewPos.Y = Height / 2
Height = Group.Size.Height
Width = Group.Size.Width
NewPos.X = NewPos.X - Width / 2
NewPos.Y = NewPos.Y - Height / 2
Group.Position = NewPos

Questo codice crea un rettangolo e un cerchio e li inserisce nella pagina, quindi crea un oggetto che supporta il servizio com.sun.star.drawing.ShapeCollection e utilizza il metodo Add per aggiungere il rettangolo e il cerchio a questo oggetto. ShapeCollection viene aggiunto alla pagina utilizzando il metodo Group e restituisce l'oggetto Group effettivo che può essere modificato come una singola Shape.

Per formattare i singoli oggetti di un gruppo, applicare la formattazione prima di aggiungerli al gruppo. Una volta inseriti nel gruppo, non è più possibile modificare gli oggetti.

Rotazione e troncatura degli oggetti di disegno

Tutti gli oggetti di disegno descritti nelle sezioni precedenti possono essere ruotati e troncati anche utilizzando il servizio com.sun.star.drawing.RotationDescriptor.

Questo servizio dispone delle proprietà seguenti:

RotateAngle (Long)
Angolo di rotazione espresso in centesimi di grado.
ShearAngle (Long)
Angolo di troncatura espresso in centesimi di grado.

L'esempio seguente crea un rettangolo e lo ruota di 30 gradi utilizzando la proprietà RotateAngle:

Dim Doc As Object
Dim Page As Object
Dim RectangleShape As Object
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
 
Point.x = 1000
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
 
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
 
RectangleShape = Doc.createInstance("com.sun.star.drawing.RectangleShape")
RectangleShape.Size = Size
RectangleShape.Position = Point
 
RectangleShape.RotateAngle = 3000
 
Page.add(RectangleShape)

L'esempio seguente crea lo stesso rettangolo dell'esempio precedente, ma procede a troncarlo a 30 gradi utilizzando la proprietà ShearAngle.

Dim Doc As Object
Dim Page As Object
Dim RectangleShape As Object
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
 
Point.x = 1000
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
 
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
RectangleShape = Doc.createInstance("com.sun.star.drawing.RectangleShape")
RectangleShape.Size = Size
RectangleShape.Position = Point
 
RectangleShape.ShearAngle = 3000
 
Page.add(RectangleShape)

Ricerca e sostituzione

I documenti di disegno, come i documenti di testo, forniscono una funzione per la ricerca e la sostituzione. Questa funzione è simile a quella utilizzata nei documenti di testo come descritto in Documenti di testo. Tuttavia, nei documenti disegno gli oggetti descrittori per la ricerca e la sostituzione non vengono creati direttamente tramite l'oggetto documento, ma tramite il livello carattere associato. L'esempio seguente delinea il processo di sostituzione con un disegno:

Dim Doc As Object
Dim Page As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
 
Doc = StarDesktop.CurrentComponent
Page = Doc.drawPages(0)
 
ReplaceDescriptor = Page.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
 
For I = 0 to Doc.drawPages.Count - 1
   Page = Doc.drawPages(I)
   Page.ReplaceAll(ReplaceDescriptor) 
Next I

Questo codice utilizza la prima DrawPage del documento per creare un ReplaceDescriptor e quindi lo applica a tutte le pagine del documento di disegno in un ciclo.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools