Difference between revisions of "NL/Documentation/BASIC Guide/Editing Drawing Objects"
m |
|||
Line 66: | Line 66: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Deze code maakt een rechthoek en een cirkel en voegt die op de pagina in. Het maakt dan een object dat de service <idl>com.sun.star.drawing.ShapeCollection</idl> ondersteunt en gebruikt dan de methode <tt>Add</tt> om de rechthoek en cirkel aan dat object toe te voegen. De | + | Deze code maakt een rechthoek en een cirkel en voegt die op de pagina in. Het maakt dan een object dat de service <idl>com.sun.star.drawing.ShapeCollection</idl> ondersteunt en gebruikt dan de methode <tt>Add</tt> om de rechthoek en cirkel aan dat object toe te voegen. De <tt>ShapeCollection</tt> wordt toegevoegd aan de pagina met behulp van de methode <tt>Group</tt> en geeft het actuele object <tt>Group</tt> weer dat kan worden bewerkt als een individuele <tt>Shape</tt>. |
Als u de individuele objecten van een groep wilt opmaken, pas dan de opmaak toe vóórdat u ze toevoegt aan de groep. U kunt de objecten niet aanpassen als zij aan de groep zijn toegevoegd. | Als u de individuele objecten van een groep wilt opmaken, pas dan de opmaak toe vóórdat u ze toevoegt aan de groep. U kunt de objecten niet aanpassen als zij aan de groep zijn toegevoegd. |
Latest revision as of 14:10, 10 February 2021
- De structuur van tekeningen
- Tekenobjecten bewerken
- Presentaties
Objecten groeperen
In veel situaties, is het handig om verschillende individuele tekenobjecten te groeperen zodat zij zich gaan gedragen als één enkel groot object.
Het volgende voorbeeld groepeert twee tekenobjecten:
Dim Doc As Object Dim Pagina As Object Dim Vierkant As Object Dim Cirkel As Object Dim Vormen As Object Dim Groep As Object Dim Punt As New com.sun.star.awt.Point Dim Grootte As New com.sun.star.awt.Size Dim NieuwPos As New com.sun.star.awt.Point Dim Hoogte As Long Dim Breedte As Long Doc = ThisComponent Pagina = Doc.DrawPages(0) Punt.x = 3000 Punt.y = 3000 Grootte.Width = 3000 Grootte.Height = 3000 ' maak tekenelement vierkant Vierkant = Doc.createInstance("com.sun.star.drawing.RectangleShape") Vierkant.Size = Grootte Vierkant.Position = Punt Vierkant.FillColor = RGB(255,128,128) Pagina.add(Vierkant) ' maak tekenelement cirkel Cirkel = Doc.createInstance("com.sun.star.drawing.EllipseShape") Cirkel.Size = Grootte Cirkel.Position = Punt Cirkel.FillColor = RGB(255,128,128) Cirkel.FillColor = RGB(0,255,0) Pagina.add(Cirkel) ' combineer de tekenelementen vierkant en cirkel Vormen = createUnoService("com.sun.star.drawing.ShapeCollection") Vormen.add(Vierkant) Vormen.add(Cirkel) Groep = Pagina.group(Vormen) ' centreer gecombineerde tekenelementen Hoogte = Pagina.Height Breedte = Pagina.Width NieuwPos.X = Breedte / 2 NieuwPos.Y = Hoogte / 2 Hoogte = Groep.Size.Height Breetde = Groep.Size.Width NieuwPos.X = NieuwPos.X - Breedte / 2 NieuwPos.Y = NieuwPos.Y - Hoogte / 2 Groep.Position = NieuwPos
Deze code maakt een rechthoek en een cirkel en voegt die op de pagina in. Het maakt dan een object dat de service com.sun.star.drawing.ShapeCollection ondersteunt en gebruikt dan de methode Add om de rechthoek en cirkel aan dat object toe te voegen. De ShapeCollection wordt toegevoegd aan de pagina met behulp van de methode Group en geeft het actuele object Group weer dat kan worden bewerkt als een individuele Shape.
Als u de individuele objecten van een groep wilt opmaken, pas dan de opmaak toe vóórdat u ze toevoegt aan de groep. U kunt de objecten niet aanpassen als zij aan de groep zijn toegevoegd.
Roteren en schuin trekken van tekenobjecten
Alle teken-objecten die worden beschreven in de voorgaande gedeelten kunnen ook worden geroteerd of vervormt met behulp van de service com.sun.star.drawing.RotationDescriptor.
De service verschaft de volgende eigenschappen:
- RotateAngle (Long)
- draaihoek in 100-en van een graad
- ShearAngle (Long)
- hoek om schuin te trekken in 100-en van een graad
Het volgende voorbeeld maakt een rechthoek en draait die 30 graden met behulp van de eigenschap RotateAngle:
Dim Doc As Object Dim Pagina As Object Dim RechthoekVorm As Object Dim Punt As New com.sun.star.awt.Point Dim Grootte As New com.sun.star.awt.Size Punt.x = 1000 Punt.y = 1000 Grootte.Width = 10000 Grootte.Height = 10000 Doc = ThisComponent Pagina = Doc.DrawPages(0) RechthoekVorm = Doc.createInstance("com.sun.star.drawing.RectangleShape") RechthoekVorm.Size = Grootte RechthoekVorm.Position = Punt RechthoekVorm.RotateAngle = 3000 Pagina.add(RechthoekVorm)
Het volgende voorbeeld maakt dezelfde rechthoek als in het voorgaande voorbeeld, maar trekt die schuin over 30 graden met behulp van de eigenschap ShearAngle.
Dim Doc As Object Dim Pagina As Object Dim RechthoekVorm As Object Dim Punt As New com.sun.star.awt.Point Dim Grootte As New com.sun.star.awt.Size Punt.x = 1000 Punt.y = 1000 Grootte.Width = 10000 Grootte.Height = 10000 Doc = ThisComponent Pagina = Doc.DrawPages(0) RechthoekVorm = Doc.createInstance("com.sun.star.drawing.RectangleShape") RechthoekVorm.Size = Grootte RechthoekVorm.Position = Punt RechthoekVorm.ShearAngle = 3000 Pagina.add(RechthoekVorm)
Zoeken en vervangen
Net als in tekstdocumenten verschaffen documenten voor tekeningen een functie voor Zoeken en vervangen. Deze functie komt overeen met die welke wordt gebruikt in tekstdocumenten, zoals beschreven in Tekstdocumenten. Echter, in documenten voor tekeningen worden de beschrijvingsobjecten voor Zoeken en vervangen niet direct door het documentobject gemaakt, maar door het geassocieerde niveau van het teken.
Dim Doc As Object Dim Pagina As Object Dim VervangOmschijving As Object Dim I As Integer Doc = ThisComponent Pagina = Doc.DrawPages(0) VervangOmschijving = Pagina.createReplaceDescriptor() VervangOmschijving.SearchString = "is" VervangOmschijving.ReplaceString = "was" For I = 0 to Doc.DrawPages.Count - 1 Pagina = Doc.DrawPages(I) Pagina.ReplaceAll(VervangOmschijving) Next I
Deze code gebruikt de eerste pagina van het document om een ReplaceDescriptor te maken en past de omschrijving dan toe op alle pagina's in het document, door middel van een lus.
Content on this page is licensed under the Public Documentation License (PDL). |