Announcement

Collapse
No announcement yet.

Easy to use, inexpensive DDT based Visual Designer (only $9.99) on sale

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Easy to use, inexpensive DDT based Visual Designer (only $9.99) on sale

    My EZGUI 4.01 Utility Dialog Designer is now on sale from August 15, 2009 until August 23, 2009.

    The regular price is $29, but for this limited time period you can buy it for only $9.99 (US).

    You can order here: http://cwsof.com/order.htm

    Where can you buy a DDT based visual designer for only $9.99 ?

    Here is a glowing testimony from one user (the creator of MLG) :
    http://www.powerbasic.com/support/pb...1&postcount=11
    http://www.powerbasic.com/support/pb...45&postcount=1


    You can download the Help file for the Designer here:

    http://cwsof.com/ezutdlg.zip

    This will give you a better understanding about some of its features, particularly library code.
    Last edited by Chris Boss; 15 Aug 2009, 02:15 PM.
    Chris Boss
    Computer Workshop
    Developer of "EZGUI"
    http://cwsof.com
    http://twitter.com/EZGUIProGuy

  • #2
    This is one powerful DDT based Visual Designer and for less than $10 you can start building DDT based apps quickly.

    This designer supports all the standard controls, the PB graphic control and also custom controls (you can add common controls via the custom control object). Just create a custom control definition file (EZC file) and you can add all sorts of custom controls, like EGrid, SIGrid, GDImage and more (custom controls must be in DLL form and creatable via the CONTROL ADD command).

    If you are hobby programmer this is a great deal.

    If you are professional programmer, don't dismiss this tool. It is a powerful Visual Designer and it generates lean DDT code. It also comes with an event engine (100% source code library).




    More Screenshots:

    http://cwsof.com/dlgb2.png
    http://cwsof.com/dlgb3.png
    http://cwsof.com/dlgb4.png

    This Designer supports the following:

    - Full Project Development (multiple forms)
    - All the Standard controls
    - Third Party Custom controls (in DLL form) (work with them Visually, no place holder)
    - even add Common controls via the Custom Control object
    - Smart Parser code generator
    - select Colors and Fonts for controls
    - Event engine similiar to EZGUI 4.0 Pro
    - Menus (Main Menu, Drop Down Menus and Sub menus off Drop down)
    - work with Palettes of Colors
    - populate Listbox and ComboBox items in designer
    - select Elliptical or Rounded Rectangle Regions for Label, Picture, Icon and Graphic controls (non-rectangular controls)
    - Import VB forms
    - save forms as Form Templates
    - Edit mode and Test mode for forms
    - customizable Snap to Grid
    - control alignment features
    - run other external apps from Tool menu
    - extended Event engine with user defined events
    - easy to use Events rather than API messages

    The Designer generates an Event based style of code similiar to EZGUI 4.0 Pro, but uses 100% DDT code and no runtimes.

    Much of the supplied event engine code is in an include file which you can modify.

    Use your favorite code editor. The Smart Parser technology allows you to use any compatible external code editor, including the PB IDE and JellyFish.

    Designer works with PB 8.0 or 9.0.
    Chris Boss
    Computer Workshop
    Developer of "EZGUI"
    http://cwsof.com
    http://twitter.com/EZGUIProGuy

    Comment


    • #3
      How does the Smart Parser work ?

      When you first generate the source code for your project, the Designer generates all the routines for you in a BAS file and automatically runs your favorite code editor which auto loads the file.

      Any code editor can be used, as long as it supports passing a filename as a parameter to the EXE (ie. pbedit.exe "c:\somepath\somefile.bas").

      The Designer will freeze itself, until you exit your code editor. Once you exit the code editor, you will return to the Designer.

      Now you can make changes to your projects Forms and Controls.

      When you regenerate the code again, after making changes to the GUI of the application (Forms, Controls), the Smart Parser kicks in.

      First, the Smart Parser will backup your previous source code file. It does this up to three levels.

      ie.

      If your source code file is:

      myproj.bas

      Then the following occurs:

      myproj.bs3 is deleted if it exists
      myproj.bs2 becomes myproj.bs3
      myproj.bs1 becomes myproj.bs2
      myproj.bas becomes myproj.bs1
      designer generates a new myproj.bas file

      When the Smart Parser generates the new source code file it does the following:

      Compares the previous source code file and what is has newly generated and compares subroutine/function names of both.

      Only subs/functions generated by the Designer are allowed by the Smart parser.

      Certain Subs/Functions are considered "Protected" by the Smart Parser and the contents of the routine are totally rewritten. Such routines can not have user edited code in them.

      The rest of the routines are considered user editable. The Designer only generates the contents of those routines, the first time they are created. After that, every time the code is regenerated, the contents of those routines is saved from the previous source code file and put into the routines.

      When you delete Forms or Controls, a number of routines previous generated are no longer needed and the code regeneration and comparison (with previous source) will show up which ones are no longer needed. The Smart Parser will purge those routines from the file, but rather than delete them totally, it does the following:

      All unneeded routines are pushed the the end of the source code file and embeded between two compiler directives like this:

      Code:
      #IF %EZ_NOSKIPCODE 
           ' all the unused subs are now here
      #ENDIF 'PARSE END
      The compilers directives remove the code from being compiled, but the code is still in your source code file. This allows you to retrieve any code which you don't want to lose.

      Now if the Smart Parser only allows routines generated by the Designer, then how do you add your own code ?

      First, any code in user editable routines is not lost.

      Next, any non-sub/function code before any Designer routines is also saved and not lost (an exception is the first routine EZ_Main).

      ie.

      Code:
      ' any comments before routine are saved
      ' any globals, constants or declares before routine are saved
      GLOBAL MyVar&
      %SomeConstant% = 100
      Declare SUB SomeSub(BYVAL N&)
      '
      SUB FORM3_Events(BYVAL hDlg&, BYVAL CID&, CMsg&, CVal&, Cancel&)
           SELECT CASE CID&
                CASE %EZ_Window
                     SELECT CASE CMsg&
                          CASE %EZ_Loading
                          CASE %EZ_Loaded
                          CASE %EZ_Started
                          CASE %EZ_Close
                          CASE ELSE
                     END SELECT
                CASE ELSE
           END SELECT
      END SUB
      But what about user defined subs/functions ?

      They can be added to your source code in two fashions.

      One, you can put them in an include file and add that include file to the project.

      Two, you can embed subs/functions into the main source code file by using the Code Tags recognized by the Smart Parser.

      ie.

      Code:
      '<<SAVE>>
      SUB MySUB(BYVAL N&)
         ' do something
      END SUB
      '<<END>>
       
      GLOBAL MyVar&
      %SomeConstant = 100
       
      SUB FORM3_Events(BYVAL hDlg&, BYVAL CID&, CMsg&, CVal&, Cancel&)
           SELECT CASE CID&
                CASE %EZ_Window
                     SELECT CASE CMsg&
                          CASE %EZ_Loading
                          CASE %EZ_Loaded
                          CASE %EZ_Started
                          CASE %EZ_Close
                          CASE ELSE
                     END SELECT
                CASE ELSE
           END SELECT
      END SUB
      The code tags above are simply a remark to the compiler, but the Smart Parser recognizes them (they are case sensitive and must have no spaces). The user defined subs/functions between the code tags ('<<SAVE>> and '<<END>>) are kept with the Designer generated routine as part of it and not changed by the Designer.

      The Smart Parser technology allows you to move seemlessly between the Designer and your favorite code editor.

      You aren't locked into a specific code editor either. As long as the editor is compatible with the Smart Parser it can be used.
      Last edited by Chris Boss; 15 Aug 2009, 02:04 PM.
      Chris Boss
      Computer Workshop
      Developer of "EZGUI"
      http://cwsof.com
      http://twitter.com/EZGUIProGuy

      Comment


      • #4
        Some interesting features:

        The Designer displays real drag handles on selected controls for sizing.

        You can display the drag handles outside of the control or inside.

        You can select what colors to use for drag handles.

        Drag Handles can have two modes:

        - Locked
        - UnLocked

        When the drag handles for specific control have been locked, the color changes and the control can not be resized or moved.

        You can lock and unlock controls via the right click menu and you can do this individually or for all the controls on a form at one time.

        There is a user defineable Snap To Grid.

        You can display the Grid or not, whichever you choose.

        The Snap To Grid can be displayed as Dots or Lines. It can be drawn solid or XOR'ed.

        The user definable features of the Snap To Grid allow a variety of configurations.

        You can group controls together and act upon them. By holding the CTRL key down, you can select multiple controls. Once you do this, you can right click and display options for acting upon them such as:

        - Copy Controls
        - Move Controls (donw through a popup dialog)
        - Delete

        From the main menu you can select any one of the group options such as:

        - Left Aligned
        - Right Aligned
        - Top Aligned
        - Bottom Aligned
        - Vertical Center Aligned
        - Horizontal Center Aligned
        - Set Size
        - Set Width
        - Set Height
        - Space Horizontally
        - Space Vertically

        The Designer uses the first selected control as the key control (ie. align all controls selected to the left position same as key control).

        The Designer supports Form Templates.

        When you save a Form as a template, it will appear in the New Form Dialog as one of the options for a new form type. This allows you to reuse Forms, without having to use the actual form files. The Designer will create copies of templates in a special folder for you and will automatically display them in the New Form dialog.

        The Designer supports Bookmarks, rather than an Undo feature.

        You can define as many bookmarks as you like when designing a form. You can save a bookmark, make changes and then return to that bookmark and the form will revert back to the state it was when the bookmark was created. Bookmarks are only good as long as the form is displayed in the Designer.

        There is a full screen mode for the Designer, so you can hide the designers borders, menus and toolbars.

        The project palette window can also be partially hidden (everything but its caption bar). Double click the project palette windows caption bar and it hides all but the caption bar. Double click it again and it shows again.
        Chris Boss
        Computer Workshop
        Developer of "EZGUI"
        http://cwsof.com
        http://twitter.com/EZGUIProGuy

        Comment


        • #5
          Features for Advanced Users

          There are a number of features available for advanced users.

          The Designer may appear simple on the surface, but there are a number of features which allow experienced programmers to push the designer beyond it basic design.

          First, you can expand the number of controls supported by using the Custom Control object. This object can even be used to add the Common controls or any custom controls you write yourself. Even controls like EGrid, SIGrid, MLG or GDImage can be used with this designer visually.

          Next, the Event engine can be expanded to add your own user defined events. A template is provided so you can hook into the event engine (which is in the Library code) so you can create events for any control you like. Once the event engine is enhanced, it will make it easier to work with any custom controls you add.

          There is also a code template feature.

          If there is code you often like to be added to all of your apps, you can select a code template (easily created in notepad) and define where code is added to different sections of the application. The Code generator with then treat this code as its own and embed it right into the app for you.

          Next there are Code Plugins.

          When the Code generator generates the code, it first passes it to the currently selected code plugin. The plugin can them modify the code any way it likes. That modified code is what is sent to your code editor.

          By using these advanced features, one could extend this Designer far beyond its basic design and be customized into a full blow development system customized the way you like.
          Chris Boss
          Computer Workshop
          Developer of "EZGUI"
          http://cwsof.com
          http://twitter.com/EZGUIProGuy

          Comment


          • #6
            The nice thing about this designer is that you can select project properties which turn off specific features of the library code.

            For example, let's say you want an application to be as small as possible (tiny) and you don't need fonts, colors, etc. You can select the appropriate properties and turn these features off. By using conditional compiling directives, the library code will not compile those sections.

            This allows you to compile very, very small apps, when needed.
            Chris Boss
            Computer Workshop
            Developer of "EZGUI"
            http://cwsof.com
            http://twitter.com/EZGUIProGuy

            Comment


            • #7
              Does it make working with Egrid32 easier?

              Comment


              • #8
                It does help a bit.

                First, you can visually display Egrid in the Designer and define a few parameters, via the tex field.

                Second, the Event engine provides the %EZ_Notify event which makes working with EGrid events a little easier.

                EGrid sends its notification events through WM_NOTIFY.

                With the Event based coding with this designer, you will have a routine generated like this:

                Code:
                SUB FORM1_EGRID1_Notify(BYVAL CVal&, Cancel&)
                     LOCAL hCtrl&, ID&, NCode&
                     EZ_GetNotify CVal&, hCtrl&, ID&, NCode&
                     SELECT CASE NCode&   ' Notification Code
                          CASE ELSE
                     END SELECT
                END SUB
                The Cval& parameter passes the pointer to the NMHDR structure. EZ_GetNotify is a library function which retrieves the control handle, ID and notification code for you from that structure.

                EGrid events are relatively easy to work with.

                You can define the controls basic properties in the control properties dialog:




                You will be able to see the EGrid control visually on your Form in the Designer like this:

                Chris Boss
                Computer Workshop
                Developer of "EZGUI"
                http://cwsof.com
                http://twitter.com/EZGUIProGuy

                Comment


                • #9
                  Anything in there for the new PB commands like the Control Adds for Listview, Treeview, Tab, Progressbar, Statusbar, etc? Or new Graphic Control Enhancements? Or, will these have to all be Custom Controls? I didn't see buttons for them in the screenshots.
                  sigpic
                  Mobile Solutions
                  Sys Analyst and Development

                  Comment


                  • #10
                    Roger,

                    This designer is my "low end" Designer for DDT. While it does not support the common controls directly, they can be added via the custom control.

                    Where can you get a Visual Designer for $9.99 ?

                    Another higher end Designer for DDT is in the works, which will have a lot more "bells and whistles" (english slang for "lots of features"). The designers use the same source code (the app itself) and I simply use compiler directives to controls the features generated. Rather than wait for that designer to be finished, I decided a low end designer would be good to release sooner, before the other is finished.

                    Of course the price would be higher for that designer.

                    Even at $29, my utility designer is a bargain, but when on sale its well worth getting.

                    This utility designer serves two purposes:

                    (1) It offers EZGUI 4.0 Pro users an alternative for creating simple utility style apps, which don't require a runtime. EZGUI 4.0 Pro is better suited to very large complex applications, where the runtime makes little difference. The code generation, designer and coding style is very similiar to EZGUI 4.0 Pro, so its easy for them to work with it, even though it generates DDT rather than EZGUI 4.0 commands.

                    (2) For DDT only programmers who have limited funds to buy a Visual Designer (ie. hobby programmers, students, etc.) this offers a very inexpensive alternative.

                    Don't under estimate this designer though. By supporting the custom control, PB graphic control, code plugins, code templates and its unique Smart Parser it is a very powerful programming tool. I didn't strip it totally, but left in crucial features which allow it to be expanded so even experienced programmers can get a lot out of it.

                    One more thing, this Designer supports both PB 8.0 and 9.0.
                    The higher end designer most likely will only support PB 9.0.
                    Chris Boss
                    Computer Workshop
                    Developer of "EZGUI"
                    http://cwsof.com
                    http://twitter.com/EZGUIProGuy

                    Comment


                    • #11
                      One of the nice features of this designer, which allows easy expansion of its feature set is its use of an include file with a library of key commands.

                      For example, rather than call PB control creation commands directly, the code generated is a call to the function:

                      EZLIB_AddControl

                      In this function the code tests the class name to see what class it is.

                      ie.

                      Code:
                                SELECT CASE UCASE$(MyClass$)
                                     CASE "GRAPHIC"
                                            ' there is more code here of course
                                     CASE "COMBOBOX"
                                            ' there is more code here of course
                                     CASE "LISTBOX"
                                            ' there is more code here of course
                                     CASE "STATIC", "EDIT", "BUTTON"
                                            ' there is more code here of course
                                     CASE ELSE
                                            ' there is more code here of course
                                END SELECT
                      This routine is the one that makes the calls to PB control creation commands.

                      You can modify the code to add features for other controls class beyond the ones supported to make sure the controls are created the way you want to. You add any support code you like to this routine.

                      By using Library calls (include), for generated code, rather than direct PB commands, it allows you to customize things much more.

                      Also the Event engine is designed to allow you to add a user defined event engine. Messages are forwarded to your user event code, to convert to easy to events.

                      Event routines generated by the designer look like this:

                      Code:
                      SUB FORM1_COMBOBOX1_Events( MyID&, CMsg&, CVal&, Cancel&)
                           SELECT CASE CMsg&
                                CASE %EZ_Change
                                     DIALOG SET TEXT hForm1, "Combo "+STR$(CVal&)
                                CASE ELSE
                           END SELECT
                      END SUB
                      The Event engine forwards events to your routines. The parameters are:

                      MyID& is the controls ID number
                      CMsg& is a EZGUI control event constant (ie. %EZ_Click, %EZ_DClick)
                      CVal& is any extra value the event needs to pass to the routine
                      Cancel& is used to pass back a return value to cancel the default action

                      The EZ Events already provided by the event engine are:

                      Code:
                      %EZ_Close       Form closes
                      %EZ_Click       Click event
                      %EZ_DClick      DOUBLE Click event
                      %EZ_Focus       GET FOCUS event
                      %EZ_NoFocus     Lose FOCUS event
                      %EZ_Disable     STATIC CONTROL IS disabled
                      %EZ_Change      Change event
                      %EZ_Command     unknown WM_COMMAND message
                      %EZ_Notify      WM_NOTIFY message event
                      %EZ_Loading     Loading event (before CONTROL OR Form IS CREATED)
                      %EZ_Started     Started event (form starts)
                      %EZ_Loaded      Loaded event (after CONTROL OR form IS CREATED)
                      %EZ_Enable      STATIC CONTROL enabled
                      %EZ_FreeNow     WM_DESTROY message so free stuff now
                      %EZ_Maximize    USER Maximizing Form
                      %EZ_Minimize    USER Minimizing Form
                      %EZ_Restore     USER Restoring Form
                      Rather than use a unique notification code for each control class, this event engine uses a set of universal notification (event) constants for all control classes.

                      You can add your own events to the event engine to expand its capability. This encourages the writing of reusable code.
                      Chris Boss
                      Computer Workshop
                      Developer of "EZGUI"
                      http://cwsof.com
                      http://twitter.com/EZGUIProGuy

                      Comment


                      • #12
                        One very nice feature in this Designer for those who like to use colors a lot with controls and forms (rather than use the system colors) is in how you select colors.

                        Rather than use fixed RGB colors for form and controls, you select colors from an index color palette. A number of the colors can be user defined.

                        What this means is that let's say you haven't decided yet exactly what color scheme you want to use yet. You can define for example 8 unique user defined colors for an individual project. Create your forms and controls using those colors.

                        Let's say you later decide you don't like the colors and want to change them. If each control/form used a fixed RGB color, you would have to modify the color for each form and control indvidually.

                        By using a color palette, you can just change the palette color definitions and all the forms/controls which use those colors all change at once together.
                        Chris Boss
                        Computer Workshop
                        Developer of "EZGUI"
                        http://cwsof.com
                        http://twitter.com/EZGUIProGuy

                        Comment


                        • #13
                          Sale continues until August 31, 2009.
                          Chris Boss
                          Computer Workshop
                          Developer of "EZGUI"
                          http://cwsof.com
                          http://twitter.com/EZGUIProGuy

                          Comment


                          • #14
                            Chris,

                            This is a good Designer, and the price is right. This designer should be part of your development tool kit.

                            One issue I do have with it is its apparent inability to correctly, or should I say completely, parse a VB form file that contains a tab control. As you know tab controls in VB can function as a container for other controls, and now PB has the same basic functionality. So I would like to see your Designer attempt to completely parse a VB form file.

                            Or will that functionality be in your, as yet unreleased advanced designer? Any clue when your advanced designers will be released?
                            Later...

                            JR

                            "When governments fear the people there is liberty. When people fear the government there is tyranny." - Thomas Jefferson

                            Comment


                            • #15
                              The Utility Designer VB form parser only parses the controls the designer directly supports. The more advanced one of course would support more.
                              Chris Boss
                              Computer Workshop
                              Developer of "EZGUI"
                              http://cwsof.com
                              http://twitter.com/EZGUIProGuy

                              Comment


                              • #16
                                Chris,

                                The point that I was trying to make, and it looks as if I didn't do a very good job of it, centers on the fact that the VB controls assigned to the tab control are referenced in the VB form file on a tab by tab basis which directly relates to the page by page reference found in the PB Tab Control. Not only that, but the VB control locations are also related to the upper left corner of the VB tab control container. With this in mind I would think it would be easy enough to parse the VB form and place the same (directly supported PB controls) on its equivalent PB tab control page with roughly the same layout.

                                Quite a few of my old VB applications utilized the tab control and I would like to save some time by using the DDT designer to convert the VB form file, particularly if the DDT designer could at least make an attempt to place the equivalent PB controls on the proper tab page. As it stands right now, if I'm converting a VB app that uses a tab control to PB I just start over from scratch and hand code.
                                Later...

                                JR

                                "When governments fear the people there is liberty. When people fear the government there is tyranny." - Thomas Jefferson

                                Comment


                                • #17
                                  Chris,
                                  I already have the DDT Visual Designer, but do you have plans to develop it further?
                                  For example, support for tab controls (that John also mentioned) would be nice.

                                  Kind regards
                                  Eddy

                                  Comment


                                  • #18
                                    Yes,

                                    It is already in development!

                                    It will support the common controls, layers and more.
                                    Chris Boss
                                    Computer Workshop
                                    Developer of "EZGUI"
                                    http://cwsof.com
                                    http://twitter.com/EZGUIProGuy

                                    Comment


                                    • #19
                                      Does this support all DDT features?

                                      Comment


                                      • #20
                                        Brice,

                                        This designer is for building utility style apps which don't require a lot in the way of the GUI.

                                        All the standard controls are supported, including the PB Graphic control.
                                        The common controls are not directly supported, but can be added via the custom control object.
                                        Third party custom controls can be used via the custom control object, such as Egrid, GDImage, SIgrid.
                                        Chris Boss
                                        Computer Workshop
                                        Developer of "EZGUI"
                                        http://cwsof.com
                                        http://twitter.com/EZGUIProGuy

                                        Comment

                                        Working...
                                        X