如何在openoffice.org BASIC或LibreOfffice.org中移动图像

时间:2014-03-04 11:09:47

标签: openoffice-basic libreoffice-basic

使用Shape.IncrementLeft和Shape.IncrementTop在VBA中移动图片后,我想在openoffice.org BASIC代码中移动图片。 用这些关键词“移动图片”和“openoffice.org”或“打开BASIC”或“OOo BASIC”搜索互联网后,我没有找到答案。

我已经找到了如何在Java,c ++,android中移动图片,但在OpenOffice.org BASIC中没有, 我通过这些指南阅读 https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide http://www.pitonyak.org/OOME_3_0.pdf 我试图通过LIBRE OFFICE找到答案,但没有成功。 我试着录制一个宏,插入一张图片,用鼠标移动它并停止宏。 在查看代码时,我的问题的答案将我带到调度员和UNO方法之一,我相信这些与这些关键字有关: com.sun.star.awt.UnoControlImageControlModel服务中的属性 com.sun.star.drawing.GraphicObjectShape BorderBottom BorderLeft BorderRight BorderTop oPoint = oShape.Position 为getPosition() setPosition两种(点) 但我找不到一个明确的答案,我不知道如何将它们组合起来制作图像(或者也可以是插入的形状)来移动。

任何人都可以指导我如何找到答案吗?

1 个答案:

答案 0 :(得分:0)

首先:https://wiki.openoffice.org/wiki/Extensions_development_basic是一个很好的起点。特别是XRAY工具非常有用。

以下代码更改了Calc工作表上所选图像的位置:

Sub Test

 dim aNewPosition as new com.sun.star.awt.Point

 oDoc = thisComponent
 oSelection = oDoc.CurrentSelection(0)

 if oSelection.supportsService("com.sun.star.drawing.Shape") then
  aPosition = oSelection.Position
  x = aPosition.X
  y = aPosition.Y
  aNewPosition.X = x + 100
  aNewPosition.Y = y + 100
  oSelection.setPosition(aNewPosition)
 endif

End Sub

问候

阿克塞尔