在LibreOffice计算器中,通过单击形状来更改形状的大小



我在LO Calc中有几个形状,当鼠标单击时,我需要这些形状来更改它们的大小:第一次单击会放大形状,第二次单击会恢复原始大小。

我正试图用一个分配给这些形状的宏来实现这一点。我的问题是:如何在宏中确定单击了哪个形状?

我知道如何获得当前选择的形状:

dim doc as object
doc = ThisComponent
someVar = doc.CurrentSelection...

但是,单击时不会选择形状,并且此方法不起作用。

我试图将事件对象的参数添加到宏中:

sub ChangeSize( oEvent )

但这会产生一个关于参数数量错误的信息。

有没有办法在LO Basic中检测宏的调用方?或者用另一种方法通过鼠标点击来实现大小更改?

第页。S.可以使用一个单独的按钮来调用宏,并在选择所需的形状后单击此按钮,但这种方式不太方便。

编辑:正如我在下面的评论中猜测的那样,所描述的任务可以通过鼠标和形状坐标来解决。我在这里找到了解决方案的关键点:如何在OpenOffice BASIC宏中通过鼠标点击获取文档坐标

不要检测调用者,而是为每个形状单击的事件分配一个不同的单行宏。

Sub ShapeClickedA
ChangeSize("ShapeA")
End Sub
Sub ShapeClickedB
ChangeSize("ShapeB")
End Sub

相关:LibreOffice宏显示简单的TextBox形状

第页。回答后,我意识到你也问了相关的问题。这有什么不同?另一个答案是否令人不满意?

最新更新