Difference between revisions of "JA/Documentation/BASIC Guide/Editing Drawing Objects"

From Apache OpenOffice Wiki
Jump to: navigation, search
(New page: {{JA/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Structure of Drawings |NextPage=Documentation/BASIC Guide/Presentations |dra...)
 
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
|ShowPrevNext=block
 
|ShowPrevNext=block
 
|ShowPrevPage=block
 
|ShowPrevPage=block
|PrevPage=Documentation/BASIC Guide/Structure of Drawings
+
|PrevPage=JA/Documentation/BASIC Guide/Structure of Drawings
|NextPage=Documentation/BASIC Guide/Presentations
+
|NextPage=JA/Documentation/BASIC Guide/Presentations
 
|draw=block
 
|draw=block
 
}}
 
}}
{{DISPLAYTITLE:▼\'90\'7d形描画オブジェクトの編集}}
+
{{DISPLAYTITLE:図形描画オブジェクトの編集}}
 
   
 
   
 
== オブジェクトのグループ化 ==
 
== オブジェクトのグループ化 ==
  
▼複数の\'90\'7d形描画オブジェクトをグループ化して、1 つのオブジェクトとして扱えると便利な場合があります。
+
複数の図形描画オブジェクトをグループ化して、1 つのオブジェクトとして扱えると便利な場合があります。
  
▼以下のサンプルコードは、2 つのオブジェクトをグループ化します。
+
次のサンプルコードは、2 つのオブジェクトをグループ化します。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 66: Line 66:
 
</source>
 
</source>
  
▼上記のサンプルコードでは、まず四角形および円形のオブジェクトを作成し、ページへ\'91\'7d入しています。そして次に、<idl>com.sun.star.drawing.ShapeCollection</idl> というサービスをサポートしたオブジェクトを新規に作成し、先に作成しておいた四角形と円形のオブジェクトを <tt>Add</tt> メソッドを用いてこの新規オブジェクトに追加しています。そして <tt>ShapeCollection</tt> というメソッドを使用し、この <tt>Group</tt> のサポートオブジェクトをページに挿入することにより、実際の <tt>Group</tt> オブジェクトを作成しています。このグループ化オブジェクトは、1 つの独立した<tt>Shape</tt>図形描画オブジェクトと同様な操作が行えます。
+
上記のサンプルコードでは、まず四角形および円形のオブジェクトを作成し、ページへ挿入しています。そして次に、<idl>com.sun.star.drawing.ShapeCollection</idl> というサービスをサポートしたオブジェクトを新規に作成し、先に作成しておいた四角形と円形のオブジェクトを <tt>Add</tt> メソッドを用いてこの新規オブジェクトに追加しています。そして <tt>Group</tt> というメソッドを使用し、この <tt>ShapeCollection</tt> のサポートオブジェクトをページに挿入することにより、実際の <tt>Group</tt> オブジェクトを作成しています。このグループ化オブジェクトは、1 つの独立した <tt>Shape</tt> 図形描画オブジェクトと同様な操作が行えます。
  
▼グループ化する各オブジェクトに対する\'95\'5c示設定は、グループ化を行う前に実行しておく必要があります。▼いったんグループ化すると、このようなオブジェクトに変更を加えることはできません。
+
グループ化する各オブジェクトに対する表示設定は、グループ化を行う前に実行しておく必要があります。いったんグループ化すると、このようなオブジェクトに変更を加えることはできません。
  
==▼\'90\'7d形描画オブジェクトの回転と傾斜==
+
==図形描画オブジェクトの回転と傾斜==
  
 
これまでの節で説明した図形描画オブジェクトに対しては、<idl>com.sun.star.drawing.RotationDescriptor</idl> サービスを用いて回転させたり傾斜させたりすることができます。
 
これまでの節で説明した図形描画オブジェクトに対しては、<idl>com.sun.star.drawing.RotationDescriptor</idl> サービスを用いて回転させたり傾斜させたりすることができます。
  
▼このサービスには、以下の属性が用意されています。
+
このサービスには、次の属性が用意されています。
  
 
;<tt>RotateAngle (Long)</tt>: 100 分の 1 度単位で指定した回転角度。
 
;<tt>RotateAngle (Long)</tt>: 100 分の 1 度単位で指定した回転角度。
 
;<tt>ShearAngle (Long)</tt>: 100 分の 1 度単位で指定したせん断角。
 
;<tt>ShearAngle (Long)</tt>: 100 分の 1 度単位で指定したせん断角。
  
以下のサンプルコードでは、四角形を作成して、 <tt>RotateAngle</tt> 属性により 30 度回転させます。
+
次のサンプルコードでは、四角形を作成して、 <tt>RotateAngle</tt> 属性により 30 度回転させます。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 105: Line 105:
 
</source>
 
</source>
  
以下のサンプルコードでも上記と同様の四角形を作成していますが、ここでは <tt>ShearAngle</tt> 属性による 30 度の傾斜を与えています。
+
次のサンプルコードでも上記と同様の四角形を作成していますが、ここでは <tt>ShearAngle</tt> 属性による 30 度の傾斜を与えています。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 130: Line 130:
 
</source>
 
</source>
  
==▼検索と置換==
+
==検索と置換==
  
▼\'90\'7d形描画ドキュメントにも、文書ドキュメント同様の検索および置換用の機\'94\'5cが用意されています。実際このような検索と置換は、「[[Documentation/BASIC_Guide/Text_Documents|Documentation/BASIC_Guide/Text_Documents]]文書ドキュメント」で説明した、文書ドキュメントの該当する機能とよく似ています。▼ただし\'90\'7d形描画ドキュメントの場合、検索と置換オプションの指定用オブジェクトは、ドキュメントオブジェクトを通じて直接作成するのではなく、対応する文字レベルを用いて作成します。▼以下のサンプルコードは、このような検索と置換の手順を説明するために用意した例です。
+
図形描画ドキュメントにも、文書ドキュメント同様の検索および置換用の機能が用意されています。実際このような検索と置換は、「[[JA/Documentation/BASIC_Guide/Text_Documents|文書ドキュメント]]」で説明した、文書ドキュメントの該当する機能とよく似ています。ただし図形描画ドキュメントの場合、検索と置換オプションの指定用オブジェクトは、ドキュメントオブジェクトを通じて直接作成するのではなく、対応する文字レベルを用いて作成します。次のサンプルコードは、このような検索と置換の手順を説明するために用意した例です。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 154: Line 154:
  
 
上記のサンプルコードでは、図形描画ドキュメント上の最初の <tt>DrawPage</tt> を対象として <tt>ReplaceDescriptor</tt> を作成してからループに入り、該当ドキュメントのすべてのページを対象とする処理を行なっています。
 
上記のサンプルコードでは、図形描画ドキュメント上の最初の <tt>DrawPage</tt> を対象として <tt>ReplaceDescriptor</tt> を作成してからループに入り、該当ドキュメントのすべてのページを対象とする処理を行なっています。
 +
  
 
{{PDL1}}
 
{{PDL1}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Editing Drawing Objects}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Editing Drawing Objects}}

Latest revision as of 16:47, 15 December 2008

doc OOo
Book.png


オブジェクトのグループ化

複数の図形描画オブジェクトをグループ化して、1 つのオブジェクトとして扱えると便利な場合があります。

次のサンプルコードは、2 つのオブジェクトをグループ化します。

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

上記のサンプルコードでは、まず四角形および円形のオブジェクトを作成し、ページへ挿入しています。そして次に、com.sun.star.drawing.ShapeCollection というサービスをサポートしたオブジェクトを新規に作成し、先に作成しておいた四角形と円形のオブジェクトを Add メソッドを用いてこの新規オブジェクトに追加しています。そして Group というメソッドを使用し、この ShapeCollection のサポートオブジェクトをページに挿入することにより、実際の Group オブジェクトを作成しています。このグループ化オブジェクトは、1 つの独立した Shape 図形描画オブジェクトと同様な操作が行えます。

グループ化する各オブジェクトに対する表示設定は、グループ化を行う前に実行しておく必要があります。いったんグループ化すると、このようなオブジェクトに変更を加えることはできません。

図形描画オブジェクトの回転と傾斜

これまでの節で説明した図形描画オブジェクトに対しては、com.sun.star.drawing.RotationDescriptor サービスを用いて回転させたり傾斜させたりすることができます。

このサービスには、次の属性が用意されています。

RotateAngle (Long)
100 分の 1 度単位で指定した回転角度。
ShearAngle (Long)
100 分の 1 度単位で指定したせん断角。

次のサンプルコードでは、四角形を作成して、 RotateAngle 属性により 30 度回転させます。

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)

次のサンプルコードでも上記と同様の四角形を作成していますが、ここでは ShearAngle 属性による 30 度の傾斜を与えています。

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)

検索と置換

図形描画ドキュメントにも、文書ドキュメント同様の検索および置換用の機能が用意されています。実際このような検索と置換は、「文書ドキュメント」で説明した、文書ドキュメントの該当する機能とよく似ています。ただし図形描画ドキュメントの場合、検索と置換オプションの指定用オブジェクトは、ドキュメントオブジェクトを通じて直接作成するのではなく、対応する文字レベルを用いて作成します。次のサンプルコードは、このような検索と置換の手順を説明するために用意した例です。

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

上記のサンプルコードでは、図形描画ドキュメント上の最初の DrawPage を対象として ReplaceDescriptor を作成してからループに入り、該当ドキュメントのすべてのページを対象とする処理を行なっています。


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