Re: How can I read my code in a module in the Basic IDE with Basic code?

Johnny Rosenberg <[email protected]> Sun, 14 Aug 2011 21:01:30 +0200
Newsgroups gmane.comp.openoffice.devel.api
Message-ID <CADo7T4fbAcYuKmEywY-YHKCbz6ZRdQXu0US3w+4xnG0LTZqUWg@mail.gmail.com>
2011/8/14 Johnny Rosenberg <[email protected]>:
> 2011/8/14 Johnny Rosenberg <[email protected]>:
>> 2011/8/14 Johnny Rosenberg <[email protected]>:
>>> 2011/8/14 Oliver Brinzing <[email protected]>:
>>>> Hi Johnny,
>>>>
>>>>> If I only can read all the text in one module at once, that would do
>>>>> it just fine. If there is a simple one-liner that reads just one
>>>>> function or subroutine, that's a bonus, and if I can read a dialogue
>>>>> that's even better=E2=80=A6
>>>>
>>>> Have you tried:
>>>>
>>>> Sub Test()
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim oLibs as Object
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim oLib as Object
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim sLib as String
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim mTmp()
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim i as Integer
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim s as String
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0sLib =3D "Standard"
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0oLibs =3D GlobalScope.BasicLibraries
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0If Not oLibs.hasByName(sLib) Then
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MsgBox "Error r=
eading " & sLib
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0EndIf
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0oLib =3D oLibs.getByName(sLib)
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0mTmp() =3D oLib.getElementNames()
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0For i =3D 0 To uBound(mTmp())
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s =3D s + mTmp(=
i) & Chr(13)
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Next i
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0MsgBox s
>>>>
>>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0MsgBox oLib.getByName(mTmp(0))
>>>>
>>>> End Sub
>>>
>>> No, I didn't, but it seems to work for my global macros. I guess I
>>> need to change the =E2=80=9DoLibs =3D GlobalScope.BasicLibraries=E2=80=
=9D line for local
>>> code (macros for the current document only), but to what?
>>>
>>>
>>> Regards
>>>
>>> Johnny Rosenberg
>>> =E3=82=B8=E3=83=A7=E3=83=8B=E3=83=BC=E3=83=BB=E3=83=AD=E3=83=BC=E3=82=
=BC=E3=83=B3=E3=83=90=E3=83=BC=E3=82=B0
>>>
>>>> Regards
>>>> Oliver
>>>
>>
>> Experimented a bit:
>> Sub Main
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0Dim A As String
>>
>> ' =C2=A0 =C2=A0 =C2=A0 Getting code from the tab =E2=80=9DSpel=E2=80=9D =
in the current document:
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0A=3DThisComponent.BasicLibraries.getByName("S=
tandard").getByName("Spel")
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0MsgBox A
>> End Sub
>>
>> Thanks for your hint!
>>
>>
>> Kind regards
>>
>> Johnny Rosenberg
>> =E3=82=B8=E3=83=A7=E3=83=8B=E3=83=BC=E3=83=BB=E3=83=AD=E3=83=BC=E3=82=BC=
=E3=83=B3=E3=83=90=E3=83=BC=E3=82=B0
>>
>
> Also tried with Dialogues, but (in my case, as an example)
> ThisComponent.DialogLibraries.getByName("Standard").getByName("Namndialog=
"),
> which is a simple dialogue, seems to be an object of some kind and
> it's not very obvious how to get the information I need from it (like
> labels names of buttons and other objects, which macro they call and
> so on). I guess I have to study it a bit closer, but all shortcuts
> (like if someone would like to provide an example of some kind or
> something) are welcome=E2=80=A6
>
> After having studied it only for maybe a minute or so, it seems like I
> need to know what I'm looking for to look for it=E2=80=A6 But studying it=
 more
> might give me another impression of the whole thing, I don't know.

I think I have it now. I have to create a UNO dialogue first, then I
can get my info from it. I think the following code will give me every
information I want from one of my dialogues:

Sub main
	Dim X As Object
	X=3DCreateUnoDialog(DialogLibraries.getByName("Standard").getByName("Resul=
tatdialog"))
	Xray X
End Sub



Kind regards

Johnny Rosenberg
=E3=82=B8=E3=83=A7=E3=83=8B=E3=83=BC=E3=83=BB=E3=83=AD=E3=83=BC=E3=82=BC=E3=
=83=B3=E3=83=90=E3=83=BC=E3=82=B0
--=20
-----------------------------------------------------------------
To unsubscribe send email to [email protected]
For additional commands send email to [email protected]
with Subject: help