No announcement yet.

PluriBASIC - Sale Price!

  • Filter
  • Time
  • Show
Clear All
new posts

  • PluriBASIC - Sale Price!

    For a limited time, PluriBASIC will drop it's price from $ 79.95 to $49.95.

    PluriBASIC is an engine capable of using external compilers (like PowerBASIC) to generate application for various platforms. The targets include EXE and DLL for windows (via PowerBASIC), Console Java apps, Android apps (with support for DDT style coding) and PHP.

    All of them with the same PowerBASIC-like syntax.

    PluriBASIC can be used for various purposes, like WIndow's desktop applications, Support DLL's, Android apps, web backends for apps (in either built in PHP or EXE via PowerBASIC). The Java mode allows to quickly test Android functions without compiling the whole application -which takes longer to compile-, making development much faster.

    All of the target platforms (except Java console apps) support all the built-in MySQL functionality -which can be compiled using the exact same source code for any platform-. This makes the code portable, you can copy portions of code from an Android app, and compile it for PHP, or WIndows.

    Please let us know if you have questions or need an specific example! We will be glad to provide.

    Please support us by aquiring a license now!

  • #2
    Good morning! This offer does not come often! Act now.


    • #3
      PluriBASIC's Android capabilities, support the following controls:


      The DDT engine treats any screen as if it was a 360 x 640 screen for placing the controls. This is usually enough to arrange the controls on the screen and the results are uniform on any screen resolution. Of course, this is configurable and the real screen size can be read with SCREEN GET SIZE and the simulated resolution with SCREEN GET UNITS. The screen can be treated as if it was some other resulution with SCREEN SET UNITS, the real screen resolution will not change, but the control placement will respect this new simulated resolution for new controls (not for already placed controls).

      The SCREEN TRANSFORM statement can translate any metrics, for example, LATLNG to UNITS, CANVAS units to PIXELS... PIXELS to LATLNG... etc, any combination. By the way, the LATLNG applies to MAP dialogs:

      DIALOG NEW MAP hParent, "My Google map dialog", 10, 10, 340, 300, %WS_POPUP OR %WS_ROUNDED TO hDlg

      For example, suppose you create a MAP dialog with the example code above... get the %WM_MOUSEMOVE notification... you get the PIXEL coordinates of the touch with CB.x and CB.y, but you also get the UNIT coordinates of the touch with CB.dialogX and CB.dialogY.

      Suppose you want to know the LATitude and LONgitude coordinates that the user touched... you would simply:

      [COLOR=#0000CD][B]LOCAL [/B][/COLOR][COLOR=#000000][B]LAT[/B][/COLOR][COLOR=#0000CD][B] AS DOUBLE[/B]
      [B]LOCAL [/B][/COLOR][COLOR=#000000][B]LON[/B][/COLOR][COLOR=#0000CD][B] AS DOUBLE[/B]
      [B]SCREEN TRANSFORM UNITS [/B][B]CB.dialogX, CB.dialogY[/B] [B]TO LATLNG [/B][/COLOR][B][COLOR=#000000]LAT, LNG[/COLOR]
      [COLOR=#A9A9A9]' At this point LAT and LNG contain the map latitude and longitude touched.[/COLOR][/B]
      Or you could also do this:

      [COLOR=#0000CD][B]LOCAL [/B][/COLOR][COLOR=#000000][B]LAT[/B][/COLOR][COLOR=#0000CD][B] AS DOUBLE[/B]
      [B]LOCAL [/B][/COLOR][COLOR=#000000][B]LON[/B][/COLOR][COLOR=#0000CD][B] AS DOUBLE[/B]
      [COLOR=#A9A9A9]' At this point LAT and LNG contain the map latitude and longitude touched.[/COLOR][/B]
      This can also be used for backwards functionality... suppose you know the latitude and longitude position of something on the map, and you want to draw something on the screen... you can use


      This way you can draw on the canvas overlay.

      Note: that you CAN draw objects directly on the map and the objects (circles, lines, polygons, rects, etc...) move and adjust to the map, while drawing in a canvas wont. The above example is only to give an example of units transformation. Try MAPVIEW ADD MARKER, MAPVIEW ADD CIRCLE, MAPVIEW ADD LINE... Etc.

      Maps are very configurable, you can set the angle, zoom, rotation, location etc, of a map with MAPVIEW SET...

      I will try to keep posting more info about this.

      Please support us by aquiring a license!
      Last edited by Brian Alvarez; 18 Jun 2017, 01:38 AM.


      • #4
        I stand corrected, for the moment, MAP dialogs cannot have the %WS_POPUP style. Im not sure why not, i will take a look tomorrow.


        • #5
          I just removed this limitation. It was possible to add popup map dialogs, but SCREEN TRANSFORM was just not designed to take into account the dialog position for units conversion. It works fine now.

          Also, thanks for reporting the issue with pre-filled STATIC variables. It is also fixed now.


          • #6
            This is a small example for a map application.

            • A PluriBASIC project profile named "mapexample"
            • A Google Project configured. (see
            • That the Google Project has the Google Maps API enabled.
            • That the PluriBASIC project (besides all normal stuff) has the API key set up.
            • That the app's package name is the same as the Google API is enabled for.
            • That the date and time on your device is setup correctly (Google maps use ssl).
            Here is the source code:

            Here is the compiled app:

            And here is a preview of the source code:

            [FONT="Courier New"][B]
            [COLOR="Blue"]#COMPILE[/COLOR] [COLOR="Blue"]APK[/COLOR]
            [COLOR="Blue"]#DIM[/COLOR] [COLOR="Blue"]ALL[/COLOR]
            [COLOR="Blue"]#REPORT[/COLOR] [COLOR="Blue"]NONE[/COLOR]
            [COLOR="Blue"]#ENCODE[/COLOR] [COLOR="Black"]NO[/COLOR]
            [COLOR="Blue"]#PROJECT[/COLOR] [COLOR="DarkGreen"]"mapexample"[/COLOR]
            [COLOR="Blue"]#VERSION[/COLOR] [COLOR="Blue"]AUTO[/COLOR]
            [COLOR="Blue"]#DATABASE[/COLOR] [COLOR="Blue"]CLOSED[/COLOR]
            [COLOR="Blue"]#OPTIONS[/COLOR] [COLOR="Black"]landscape[/COLOR]
            [COLOR="Silver"]' An icon to be displayed in the desktop.[/COLOR]
            [COLOR="Blue"]#APPICON[/COLOR] [COLOR="DarkGreen"]"Location.png"[/COLOR]
            [COLOR="Silver"]' The name that is displayed in the desktop below the icon.[/COLOR]
            [COLOR="Blue"]#APPNAME[/COLOR] [COLOR="DarkGreen"]"Map Example"[/COLOR]
            [COLOR="Silver"]' Package name. Must be the same as your Google console permissions.[/COLOR]
            [COLOR="Blue"]#PACKAGE[/COLOR] [COLOR="DarkGreen"]"com.pluribasic.MapExample"[/COLOR]
            [COLOR="Blue"]#RESOURCE[/COLOR] [COLOR="Black"]bImage[/COLOR][COLOR="Black"],[/COLOR]     [COLOR="DarkGreen"]"location.png"[/COLOR]
            [COLOR="Blue"]#RESOURCE[/COLOR] [COLOR="Black"]NormalFont[/COLOR][COLOR="Black"],[/COLOR] [COLOR="DarkGreen"]"Normal.ttf"[/COLOR]
            [COLOR="Blue"]TYPE[/COLOR] [COLOR="Blue"]FLAGTYPE[/COLOR]
                [COLOR="Black"]Id[/COLOR]      [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]LONG[/COLOR]
                [COLOR="Black"]Lat[/COLOR]     [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]DOUBLE[/COLOR]
                [COLOR="Black"]Lon[/COLOR]     [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]DOUBLE[/COLOR]
                [COLOR="Black"]Caption[/COLOR] [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]STRING[/COLOR]
                [COLOR="Black"]Custom[/COLOR]  [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]STRING[/COLOR]
                [COLOR="Blue"]OBJECT[/COLOR]  [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]VARIANT[/COLOR]
            [COLOR="Blue"]END[/COLOR] [COLOR="Blue"]TYPE[/COLOR]
            [COLOR="Blue"]CALLBACK[/COLOR] [COLOR="Blue"]FUNCTION[/COLOR] [COLOR="Black"]MapProc[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"])[/COLOR] [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]LONG[/COLOR]
            [COLOR="Blue"]LOCAL[/COLOR] [COLOR="Black"]CustomValue[/COLOR] [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]LONG[/COLOR]
            [COLOR="Blue"]LOCAL[/COLOR] [COLOR="Black"]MarkObject[/COLOR]  [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]VARIANT[/COLOR]
            [COLOR="Blue"]STATIC[/COLOR] [COLOR="Black"]Flag[/COLOR]       [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]FLAGTYPE[/COLOR]
            [COLOR="Blue"]SELECT[/COLOR] [COLOR="Blue"]CASE[/COLOR] [COLOR="Black"]CB.MSG[/COLOR]
                [COLOR="Blue"]CASE[/COLOR] [COLOR="Red"]%WM_CLICK[/COLOR]
                    [COLOR="Silver"]' The user clicked on the map, lets add a marker![/COLOR]
                    [COLOR="Silver"]' Store the latitude and longitude[/COLOR] 
                    [COLOR="Black"][/COLOR] [COLOR="Black"]=[/COLOR] [COLOR="Black"]Cb.latitude[/COLOR]
                    [COLOR="Black"]Flag.lon[/COLOR] [COLOR="Black"]=[/COLOR] [COLOR="Black"]Cb.longitude[/COLOR]
                    [COLOR="Silver"]' Set a caption. Under some OS's it is not displayed.[/COLOR]
                    [COLOR="Black"]Flag.caption[/COLOR]  [COLOR="Black"]=[/COLOR] [COLOR="DarkGreen"]"Marker caption"[/COLOR]
                    [COLOR="Black"]Flag.custom[/COLOR]   [COLOR="Black"]=[/COLOR] [COLOR="DarkGreen"]"Some custom text, it is for internal use, so you can add anything here."[/COLOR]
                    [COLOR="Silver"]' Assign an individual ID.[/COLOR]                          
                    [COLOR="Black"]Flag.Id[/COLOR]       [COLOR="Black"]=[/COLOR] [COLOR="Blue"]RND[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"]1[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]9999999[/COLOR][COLOR="Black"])[/COLOR]
                    [COLOR="Silver"]' Add the marker.                                                                 V--- this is optional[/COLOR]
                    [COLOR="Blue"]MAPVIEW[/COLOR] [COLOR="Blue"]ADD[/COLOR] [COLOR="Blue"]MARKER[/COLOR] [COLOR="Black"]Flag.caption[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Flag.Lat[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Flag.Lon[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]bImage[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"][/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Flag.custom[/COLOR] [COLOR="Blue"]TO[/COLOR] [COLOR="Black"]Flag.Object[/COLOR]
                    [COLOR="Silver"]' Make a noise.[/COLOR]
                [COLOR="Blue"]CASE[/COLOR] [COLOR="Red"]%WM_MARKERCLICK[/COLOR]
                    [COLOR="Silver"]' A marker was clicked.[/COLOR]    
                    [COLOR="Black"]MarkObject[/COLOR]  [COLOR="Black"]=[/COLOR] [COLOR="Black"]CB.OBJECT[/COLOR]
                    [COLOR="Black"]CustomValue[/COLOR] [COLOR="Black"]=[/COLOR] [COLOR="Black"]cB.WPARAM[/COLOR]
                    [COLOR="Blue"]MSGBOX[/COLOR] [COLOR="DarkGreen"]"Flag with ID # "[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Blue"]STR$[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"]cB.WPARAM[/COLOR][COLOR="Black"])[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="DarkGreen"]" was touched."[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Red"]$CRLF[/COLOR] [COLOR="Red"]&[/COLOR] _
                           [COLOR="DarkGreen"]"The title is: "[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Black"]cb.title[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Red"]$CRLF[/COLOR] [COLOR="Red"]&[/COLOR] _
                           [COLOR="DarkGreen"]"The associated text is: "[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Black"]Cb.tag[/COLOR] [COLOR="Red"]&[/COLOR] [COLOR="Red"]$CRLF[/COLOR] [COLOR="Red"]&[/COLOR] _
                           [COLOR="DarkGreen"]"And it will now be deleted..."[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Red"]%MB_ICONINFORMATION[/COLOR][COLOR="Black"],[/COLOR] [COLOR="DarkGreen"]"Marker touched"[/COLOR]
                    [COLOR="Blue"]MAPVIEW[/COLOR] [COLOR="Blue"]DEL[/COLOR] [COLOR="Blue"]MARKER[/COLOR] [COLOR="Black"]CB.OBJECT[/COLOR]
            [COLOR="Blue"]END[/COLOR] [COLOR="Blue"]SELECT[/COLOR]
            [COLOR="Blue"]END[/COLOR] [COLOR="Blue"]FUNCTION[/COLOR]
            [COLOR="Blue"]LOCAL[/COLOR] [COLOR="Black"]hDlg[/COLOR]     [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]LONG[/COLOR]
            [COLOR="Blue"]LOCAL[/COLOR] [COLOR="Black"]Lat[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Lon[/COLOR] [COLOR="Blue"]AS[/COLOR] [COLOR="Blue"]DOUBLE[/COLOR]
            [COLOR="Silver"]' This is a typical map setup.[/COLOR]
            [COLOR="Blue"]DIALOG[/COLOR] [COLOR="Blue"]NEW[/COLOR] [COLOR="Blue"]MAP[/COLOR] [COLOR="Black"]0[/COLOR][COLOR="Black"],[/COLOR] [COLOR="DarkGreen"]"Map dialog"[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]0[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]0[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]640[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]360[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Red"]%WS_GRAPHIC[/COLOR] [COLOR="Black"]or[/COLOR] [COLOR="Red"]%WS_TOUCHES[/COLOR] [COLOR="Blue"]TO[/COLOR] [COLOR="Black"]hDlg[/COLOR]
            [COLOR="Silver"]' Map can be rotated.[/COLOR]
            [COLOR="Silver"]' This is the map default font.[/COLOR]
            [COLOR="Blue"]MAPVIEW[/COLOR] [COLOR="Blue"]SET[/COLOR] [COLOR="Blue"]FONT[/COLOR] [COLOR="Black"]NormalFont[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]14[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Blue"]RGB[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"]0[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]0[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]0[/COLOR][COLOR="Black"])[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Red"]%TRUE[/COLOR]
            [COLOR="Silver"]' The map is in Satellite mode.[/COLOR]
            [COLOR="Silver"]' Gets the local GPS location if available.[/COLOR]
            [COLOR="Blue"]CALL[/COLOR] [COLOR="Blue"]GPSCOORDS[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"]Lat[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]lon[/COLOR][COLOR="Black"])[/COLOR]
            [COLOR="Silver"]'MAPVIEW SET ZOOM     18       ' This is asynchronous.[/COLOR]
            [COLOR="Silver"]'MAPVIEW SET location Lat, lon ' So, calling this immediately will overwrite the zoom change animation.[/COLOR]
            [COLOR="Silver"]' So, it is better to do this. It animates the zoom and location change in one go.[/COLOR]
            [COLOR="Blue"]MAPVIEW[/COLOR] [COLOR="Blue"]SET[/COLOR] [COLOR="Blue"]ALL[/COLOR] [COLOR="Black"]18[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Lat[/COLOR][COLOR="Black"],[/COLOR] [COLOR="Black"]Lon[/COLOR]
            [COLOR="Blue"]DIALOG[/COLOR] [COLOR="Blue"]SHOW[/COLOR] [COLOR="Blue"]MODAL[/COLOR] [COLOR="Black"]hDlg[/COLOR] [COLOR="Blue"]CALL[/COLOR] [COLOR="Black"]MapProc[/COLOR][COLOR="Black"]([/COLOR][COLOR="Black"])[/COLOR]
            [COLOR="Blue"]END[/COLOR] [COLOR="Blue"]FUNCTION[/COLOR][/B][/FONT]
            I almost forgot, Please support us by aquiring a license!



            • #7
              Very interesting. Maybe in next few days if I can afford it, might pick up a copy. Looks very powerful.
              Chris Boss
              Computer Workshop
              Developer of "EZGUI"


              • #8
                Im going to leave this offer a couple more days, dont let it go!


                • #9
                  Last day of the offer! dont let it go!

                  Also, I just uploaded a fix for some UDT's in PB-CGI compilations. please re-download the installer.
                  Thanks to those who report issues! Thanks to you we have a better product every day!

                  Get a license now!.



                  • #10

                    I ordered, but haven't received any email with a serial number for it yet. I downloaded the demo version from your web site, but without a serial number I can't unlock it.

                    How long does it normally take to get an email with the serial number ?

                    I got the paypal email already, so order went through.
                    Chris Boss
                    Computer Workshop
                    Developer of "EZGUI"


                    • #11
                      It usually takes 24 hours. You should get yours soon.

                      Thanks Chris! but i though you already had one license?


                      • #12
                        I just pushed all deliveries manually. Thanks to every one! Please let me know if you had issues with
                        receiving the license keys.

                        Sale will end some time today, as soon as someone who asked me a couple hours to purchase does!

                        By the way, i just noticed a mistake in the welcome email, our correct members area URL is:

                        I corrected it for future sales.



                        • #13

                          Got the license email. Thanks.

                          I had purchased your previous version (4) when it was Basic2PHP. Your 5 version (PluriBasic) appears to have a lot more stuff.

                          Chris Boss
                          Computer Workshop
                          Developer of "EZGUI"


                          • #14
                            Right! Let me know if you need a hand with it.


                            • #15
                              I was asked how can a file be embedded in the Android Apps... Simply use

                              [COLOR=#0000CD][B]#FILE[/B][/COLOR] MyFileHandle,[COLOR=#006400] "AnyKindOfFile.mp4"[/COLOR]
                              Now you can use the file un various ways in your Android Apps.

                              Some API features require a raw file instead of a resource. This allows to
                              embed files for those features.