[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libreoffice-users] Experimental macro features: How to determine object types?


On 21/10/2019 12:53, Stephan Bergmann wrote:
On 18/10/2019 20:16, Johnny Rosenberg wrote:
*Private Function ItemFound(sItem As string, _   oRange As
com.sun.star.sheet.XSheetCellRange) As Boolean Dim oDescriptor As
com.sun.star.util.XReplaceDescriptor
oDescriptor=oRange.createSearchDescriptor()*
*⁝*
*⁝*
*End Function*

So the answer to my question seems to be
”com.sun.star.util.XReplaceDescriptor”. Exactly why is a little blurry to
me at the moment.

css.util.XReplaceDescriptor is derived from css.util.XSearchDescriptor. I assume that what dim'ing you need should depend on what you do with oDescriptor in the part you elided:  If you only call XSearchDescriptor-methods on it, then dim as XSearchDescriptor should suffice.  If you call any of the XReplaceDescriptor-only methods (getting/setting the ReplaceString), then you need to dim as XReplaceDescriptor.

Turns out I assumed wrongly there about how LO Basic behaves. In the true spirit of dynamically typed languages, you can apparently call any method actually supported by the object, regardless of the "dim as" type of the variable that holds the object. (Only when assigning the object to the variable are types checked to match---and were checked in an inferior way, see my other mail announcing a fix.)


--
To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.