On 5/17/20 2:52 AM, Johnny Rosenberg wrote:
Den sön 17 maj 2020 kl 03:28 skrev Jim <[email protected]>:

I started experimenting with calling a basic function from a python
script. I was surprised that without to much trouble I got it to work to
a certain extent.

I am working on linux Mint.

I started with a basic Sub I found. In it's original form it had 3 rgb
values hard coded and it popped up a message box that displayed the
color value from the rgb input. I rewrote it as a Function that took the
rgb values as parameters.

Here is the basic:

Function ColorExampleFunc(r as long, g as long, b as long)
Dim lVar As Long
lVar = rgb(207,231,245)
msgbox "The color " & lVar & " consists of:" & Chr(13) &_
"red= " & red(lVar) & Chr(13)&_
"green= " & green(lVar) & Chr(13)&_
"blue= " & blue(lVar) & Chr(13) , 64,"colors"

end function

Here is the python:

#test_basic.py
import os

result = os.system('soffice
"macro:///Standard.Module1.ColorExampleFunc(207,231,245)"')

This works as it will pop up the message box with the color value
displayed. What I need to do is capture that color value (which is
usually an eight digit number) in variable in the python script.

I printed result and it was equal to 0.



Well, you "rewrote it as a function", except that you didn't. The
difference between subroutines and functions (at least in Basic), is that
functions returns something. Yours don't, as far as I can see.
To return a value in Basic (at least LibreOffice Basic), you just set a
value to the function itself:

ColorExampleFunc=Something

I'm not sure what those eight digit numbers you are looking for are. Is it
something like b+g×2⁸+r×2¹⁶?

It is the result of lVar = rgb(207,231,245), which in this case is 13625333 and that is the color value of blue_classic.

So if I rewrote the function as:

Function ColorExampleFunc(r as long, g as long, b as long)
Dim lVar As Long
lVar = rgb(207,231,245)
ColorExampleFunc = lVar
end function

and called it from libreoffice basic it would return 13625333? I ask because when I call it from my python script it returns 0. If I know it is working in basic then I can concentrate on figuring out what is happening on the python part.

Thanks, Jim




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