Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Chris Boss

Pages: [1] 2 3 ... 5
1
EZGUI 5 support forum / Re: Light/Dark Mode
« on: April 05, 2025, 08:14:23 am »
An example:

Code: [Select]
     EZ_StartCList "Form1", ""
     Count&=EZ_GetCListCount
     IF Count&>0 THEN
          FOR N&=1 TO Count&
              ID& = EZ_GetCListID(N&)
              Class$ = EZ_GetCListClass(N&,1)
              hWnd& = EZ_GetCListHandle(N&)
          NEXT N&
     END IF
     EZ_EndCList

2
EZGUI 5 support forum / Re: Light/Dark Mode
« on: April 05, 2025, 08:12:29 am »
There is a section in Help file:

"Your EZ Guide to EZGUI"
... "Forms"
... ... "Enumerating a Forms Controls"

The available commands are:

EZ_StartCList
EZ_EndCList
EZ_GetCListCount
EZ_GetCListID
EZ_GetCListClass
EZ_GetCListHandle

You start an enumeration task with EZ_StartCList.

Then you can get info about the controls on the form using the other functions and then finish the enumration task with EZ_CList.

3
EZGUI 5 support forum / Re: Light/Dark Mode
« on: April 03, 2025, 04:47:33 pm »
EZGUI provides enumeration commands so you can walk through all the controls on a form.

In controls you desire to allow changing their color you can change their color enmass for a form in the forms %EZ_Loaded event before the form is visible.

Once a form is visible and the user changes color mode, you can disable the forms redraw state, enumerate all the controls and change their colors as desired, enable the forms redraw state and then force the form to redraw itself.

Use a Global variable to track the color mode state and store that in the registry so it can be automatically set when the app is run again.

It will require a little effort, but it is quite doable.

There are functions which can tell you want the class (type) of control it is when you enumerate through them.

For ownerdraw stuff it will be a little more complicated, since you have to custom the ownerdraw routine so it can change colors.

4
EZGUI 5 support forum / Re: Issue with EZGUI.INC
« on: February 15, 2025, 04:53:01 pm »
One consideration is when one tries to combine EZGUI with the PB DDT stuff. Don't know if you tried that or not.

I recommend not to use the PB DDT command set with EZGUI. One can use the WIN32 API, but rather than include the WIN32 API includes, I always recommend copying just the API declarations you require into your EZGUI app.


5
Powerbasic / Re: Welcome
« on: January 31, 2025, 06:55:15 pm »
PB forums are back up and running.

6
Other BASIC languages / Other Basic languages worth checking out
« on: January 28, 2025, 11:59:23 am »
Here is a short list of other Basic languages worth checking out:

Oxygen (O2) Basic compiler (32 bit and 64 bit) :   https://github.com/Charles-Pegge/OxygenBasic

PluriBasic (generates apps for a variety of platforms):   https://www.patreon.com/c/pluribasic/posts

ThinBasic (interpreter) :  https://www.thinbasic.com/


7
WIN32 Programming / Where to download Windows SDK
« on: January 28, 2025, 11:48:45 am »
To use the WIN32 API in Windows successfully I strongly recommend downloading the Windows SDK (Software Development Kit) to get the WIN32 docs.

You can download the latest SDK for Windows 11 here:

https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/

Personally I find that it is better to use an older version of the SDK for q quick reference, since it leaves out much of the "bleeding edge" API's of later versions of Windows such as Windows 10 and 11. I find that the Windows 7 SDK is the best one to use for everyday reference. You can download it here:

https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/

Scroll down to the Windows 7 download link on the above webpage.

I use the Windows 7 SDK for everyday quick reference use (it is less bloated and easier to traverse) and also double check API docs online for Windows 11 (the latest).

For the latest docs online go here:

https://learn.microsoft.com/en-us/windows/apps/api-reference/




8
FreeBasic / Where to download FreeBasic
« on: January 28, 2025, 11:41:44 am »
Freebasic is a popular open source BASIC programming language. It can be downloaded at the link below:

https://freebasic.net/

9
BCX (Basic to C) Transpiler / Where to download BCX
« on: January 28, 2025, 11:40:11 am »
BCX is an excellent BASIC programming language. It is not a compiler, but a transpiler.

At least that is the term I like to use. It generates C code from the Basic and then compiles using a C compiler as a backend.

You can get more info about BCX here:

https://www.bcxbasiccoders.com/

10
Powerbasic / Welcome
« on: January 28, 2025, 11:33:42 am »
Welcome to the Powerbasic section of my forums. The Powerbasic website and forums both currently are down and no indication they will return.
If you would like access to this forum just email me a request to join (real names required).

chrisboss@centurylink.net

or

support@cwsof.com

I personally have decades of experience with the Powerbasic compilers and still use them.
I also have decades of experience with the WIN32 API.

Chris Boss

11
General Discussion / What should I do with EZGUI ? (its future)
« on: September 07, 2024, 02:25:20 pm »
I am in a quandary of what to do with EZGUI ?

Powerbasic, simply put is dead. I won't go into the details, but it is a fact and the chances of it resurfacing are slim at best.

So what to do with EZGUI, without Powerbasic. There is too much code for me to port it to another language, unless that language supports a syntax at least close to Powerbasic. I used a lot of tricks found in the PB language which would need to exist in whatever I port it to. Second, 64 bit is critical to make it worth the time to port EZGUI.

EZGUI is over 50,000 lines of Powerbasic code (with a tiny bit of inline assembler).

Is it worth it to port it ?
I think so. EZGUI , as far as GUI tools go, has features far beyond anything in the PB compiler. It is so complex it is almost a programming language in of itself. There are over 1000 GUI commands in it, and so many low level features is can be extended to add even much more.

Kevin Diggins BCX looks interesting to me. That may be one approach to port EZGUI.

If one looks at many of the "other" BASIC's out there (indie developed BASIC's), I doubt any of them come close to the feature set of EZGUI. EZGUI is also quite unique in that I wrote 100% of it from scratch. Not a single line of so called "open source" code or libraries. What ever I do with it, I don't have to worry about third party licenses getting in the way.

Languages like Purebasic for example use a third party 3D engine. EZGUI's graphic engine I wrote myself from scratch.

EZGUI has features very unique to it such as:

2D Sprite animation engine which is very fast and does not require DirectX. It uses the Windows GDI (using Device Independent Bitmaps). It creates its own memory buffers and handles all drawing via my own code and then Bitblt's the memory buffer to the screen. It is very fast. I benchmarked to Patrice Terriers GDImage (which uses GDIplus) and the animation was significantly faster.

3D OpenGL based scripting language. It even supports loading and displaying STL 3D models (used in 3D printing). It is so fast it can load and display huge 3D models with over 1 million polygons in a few seconds, even on a old computer and does not need the latest (bleeding edge) hardware to do it.

Drag and Drop Visual Designer engine (build your own programming visual designers, form editors).

and much more.

If you have any suggestions, feel free to post them here or contact me via email (support@cwsof.com)



12
EZGUI 5 support forum / Re: Using EZ_SETONLAYER with a Page Form
« on: August 13, 2024, 09:29:57 pm »
A lot may depend upon when you create the page form.

I find it best to add the page forms during the parent forms %EZ_Loaded event. EZGUI does not like shifting between forms control creation mid stream.

Also it may be difficult to put the page form itself on the parent forms layers.

I really didn't do a lot of testing with layers on page forms as well as the parent form at the same time. There may be issues.

My suggest is simply to experiment with different ways of handling things. You may find one that works for your situation.

Now one technique which may work better is to convert your page form into a a Component (see: EZ_DefComponent command).

Components are forms which have controls on them which are treated as it is a single control. A component can even be used multiple times on the same parent form.

Since a Component is treated as if it was a single control it may work better with Layers.


13
EZGUI 5 support forum / Re: Questions about PButton and EZ_LoadPicture
« on: August 05, 2024, 08:09:20 pm »
If you want to change the image on the Picture Button, etc. dynamically using EZ_LoadPicture you must use the EZ_SetImage command to change the image, passing the value returned by EZ_LoadPicture.

This sends a message to the control that a new picture needs to be used. 

14
EZGUI 5 support forum / Re: Questions about PButton and EZ_LoadPicture
« on: August 05, 2024, 08:06:35 pm »
It is best to use Bitmaps which are 256 color for Picture Button and Picture controls.

EZ_LoadPicture can load 24 or 32 bit images for use with the Canvas control, but you draw them yourself using the EZGUI canvas commands. The Picture Button and Picture controls though do the drawing themselves and 256 color seems to be the most they can handle.


15
Advanced EZGUI / Re: Number Component
« on: July 17, 2024, 02:33:22 pm »
Just for your info, EZGUI has a masked edit control which can do this.

From the Help file under the EZ_Text command:


Masked Edit Features


            EZGUI converts the standard Text (Edit) control to a Masked Edit control if you define a Mask in the CProp$ parameter (after the properties).  The Mask is a set of characters between { }   characters (curly brackets). For example, a Mask for a telephone number would be:


            "{(999)999-9999}"


            The Mask must be added to the CProp$ (properties) parameter after the standard properties are listed  ( ie.   "ESTG({999)-999-9999}" )


            The Text field will also be set to a maximum length based on the length of the Mask. The Mask characters are defined below.


Standard Mask Characters:


      X - Any Character
      A - Alpha Character only and Space
      U - Alpha Character only and Space. Converted to Upper case !
      9 - Digits only (0 to 9)
      # - Digits (0 to 9) and space, +, -  and period
      N - AlphaNumeric and Space
      L - Logical (Y/N or T/F)
      Y - Logical (Y/N)
      T - Logocal (T/F)
      P - PlaceHolder when not using E property (means Read Only)


            Examples of Standard Masks:


     (999)999-9999 - Telephone number
     XXXXXXXXXX    -        Any text
     AAAAAAAAAA    - Alpha only
     UUUUUUUUU     - Uppercase only
     UUU-9999999   - Part number
     99/99/9999    - Date




            All other non-mask characters will be used "as is". They are frozen and can't be edited. If the Text Control is multiline, the Mask property is ignored. If the Text Control is readonly (does not have E (edit) property), then all mask characters are converted to P (Placeholder) mask character.


Calculator Mode Mask Characters:


      +  - This mask allows a Space (for Plus) or a minus sign ( - )
           and is used only in the first character position of a
           calculator mode mask.
      #  - Floating Point Mask
           (you can use a fixed decimal with this mask)
      %  - Whole Number Mask
      $_ - When a Dollar sign and a space are put to the
           left of a Calculator mode mask, then a $ and
           space will appear to the left in the textbox.


              ie. "$ ###.##"


      _% - When a space and % character are put at the
           end of a Calculator mode mask, then a space
           and % character will appear in the textbox at
           the far right.


              ie. "{##.## %}"


            Examples of Calculator mode masks:


     %%%%%%   - Whole number (positive only)
     +%%%%%   - Whole number (positive or negative)
     ######## - Floating Point number (positive only)
     +####### - Floating Point number (positive or negative)
     #####.## - Floating Point number
                (positive and fixed decimal)
     +####.## - Floating Point
                (positive or negative and fixed decimal)


     $ ###.## - Floating Point with $ (and space) to left
     ###.## % - Floating Point with (space and ) % to right


            When using a Calculator Mode Mask the Text control will allow entry of a real number and the characters will display Right to Left, like a calculator does. You can also add a + sign as the first character to allow plus or minus values (  ie. {+####} ). Also you can add just one decimal point (  ie. {+###.###} ). Using this format, you can mask Integers and real Numbers (with decimal).


            Caret Position !


            By default the Mask Edit control will set the caret position at the first character when the control gets the Focus. If you want the control to remember the previous position of the caret (character position cursor) then put a ? character in front of the mask (ie. {?XXXX} ). Masks that define a Calculator mode mask, always set the caret at the end of the text field, so the ? mask character has no effect.
           
            You can now use the Backspace key in most masks ! The control will determine the proper character to replace text with. For example, if the mask character is X, A, U or N it will use a space. If the mask character is a 9 (digits only) it will use a 0 (zero) when back spacing.




Pages: [1] 2 3 ... 5