On Sat, 2020-05-16 at 20:26 -0500, Jim wrote:
> 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.
> 
> It's been a long time since I did anything in basic. I imagine I
> would 
> have to get rid of the msgbox code and set the rgb values equal to a 
> variable and then return them, but I'm not sure how to do it.
> 
> Does anyone know how to get the color value in the python script?
> 
> Thanks, Jim
> 
> 


You need used MasterScriptProviderFactory

Change the original Basic function to:

Function ColorExampleFunc(r As Integer, g As Integer, b As Integer) As
Long
        ColorExampleFunc = RGB(r, g, b)
end function

Then you can call, look my example:
https://gitlab.com/snippets/1977700


Best regards




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