我在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形状
第页。回答后,我意识到你也问了相关的问题。这有什么不同?另一个答案是否令人不满意?