[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libreoffice-users] Calling a libreoffice basic function from a python script


Den sön 17 maj 2020 kl 03:28 skrev Jim <jf_byrnes@comcast.net>:

> 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¹⁶?

Kind regards

Johnny Rosenberg

>
> 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
>
>
> --
> To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
> 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
>

--
To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
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

Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.