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