On 14/10/2019 21:02, Johnny Rosenberg wrote:
When using the experimental features in Basic I can declare thing in a more
specific way, for instance:
*Dim SomeSheet As com.sun.star.sheet.XSpreadsheet*
Without the experimental features enabled, I had to write this instead:
*Dim SomeSheet As Object*
Is there a way to find out for sure what type some object is supposed to be?
For instance, if I use Object instead and then look at it with XRay, in the
field just above the big field with all the
properties/methods/services/etc, it says *com.sun.star.sheet.XSpreadsheet*,
so that could be a clue, but it doesn't seem to always be usable.
For instance, when declaring a range, XRay says
*com.sun.star.table.XCellRange*, but declaring it like that won't work.
*com.sun.star.sheet.XSheetCellRange* will. How can I figure this out?
(I have no idea what information that XRay tool prints, but:) A UNO
object can implement multiple unrelated interfaces, and those interfaces
in turn can each derive from (multiple) other interfaces. If you look
at the UNO API documentation
(<https://api.libreoffice.org/docs/idl/ref/index.html>, or the udkapi
and offapi modules in the core git source repo), you see that
css.sheet.XSheetCellRange is derived from css.table.XCellRange. The
former adds one additional method, getSpreadsheet, so if you want to
call that method you need to dim your var as the former, otherwise it
suffices to dim it as the latter.
At the moment I'm struggling with a search descriptor. XRay says
*com.sun.star.util.XSearchDescriptor*, but that only throws an error at
*SomeRange.createSearchDescriptor()*.
If you search for "createSearchDescriptor", there's css.util.XSearchable
that has a method of that name, so you probably have an object at hand
that implements that interface, and to hold that object you need a var
that is dim'ed accordingly.
--
To unsubscribe e-mail to: users+unsubscr...@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