Aaaaaaaa! Sorry, Stephan Bergmann! I accidentally replied to you, while my
intention was to reply to the list.
Here it is, this time to the list, and this time with further comments at
the end:

Den fre 18 okt. 2019 kl 20:03 skrev Johnny Rosenberg <[email protected]
>:

> Den tis 15 okt. 2019 kl 08:53 skrev Stephan Bergmann <[email protected]
> >:
>
>> 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.
>>
>
> This is what I don't really understand, I think.
> From
> https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1util_1_1XSearchable.html#a5e7b729c2d45dea6fa517b96e4e3feea
> :
> com::sun::star::util::XSearchDescriptor
> <https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1util_1_1XSearchDescriptor.html>
> createSearchDescriptor (
> )
>  creates a SearchDescriptor
> <https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1util_1_1SearchDescriptor.html>
> which contains properties that specify a search in this container
>
> It seems like Dim as com.sun.star.util.XSearchDescriptor should do it (and
> both xray and mri describe them as such when Dim as Object, right after the
> oRange.createSearchDescriptor() line).
>
> I'm obviously approaching this the wrong way. Or I totally misunderstand
> what ”and to hold that object you need a var that is dim'ed accordingly”
> actually means.
>
>
I looked a little more into it and I finally got it to work. I'm not sure I
still understand this, but this works:



*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.


Kind regards

Johnny Rosenberg

-- 
To unsubscribe e-mail to: [email protected]
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

Reply via email to