Page 2 of 4 FirstFirst 1234 LastLast
Results 11 to 20 of 38

Thread: EZGUI - getting nosy...

  1. #11
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,530
    Rep Power
    171
    Downloaded-thanx- now have some stuff to study...
    I think there are missing some Forum-sections as beta-testing and support

  2. #12
    Ok ! I removed the download now. Feel free to pass it on to Eros and Petr.

  3. #13
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,530
    Rep Power
    171
    I tried - drew a form and some button on it - thereafter used the Generate Application Button but when I try to run it in PB10 I get an Error 426 like "Variable Expected" - code-lines looks like this:
    #IF %EZLIB_UseAdjust
    SUB EZLIB_AddDlgOffsets(BYVAL WS&, BYVAL EXS&, AW&, AH&, BYVAL MFlag&)
    LOCAL H&, W&, hDC&, hOldFont&, TM AS TEXTMETRIC, SZ AS SIZEL, DW!, DH!
    cursor is in front of DW!, DH! - seems they added a new keyword. But after changing DW to DWW it works
    I think there are missing some Forum-sections as beta-testing and support

  4. #14
    EZGUI is very good work but is not nothing ultra simple or better or easier to use than
    already tB events at all.
    Rene...
    I don't get it why is classic win32 event callback way to hard for you ?

  5. #15
    The include file was for PB 8.0 and there is an alternate include file for PB 9. Try the PB 9 version. If that does not work, then simply change the variables which are now keywords (the DH and DW variables are now keywords) in the subroutine and the compiler error will be gone.

  6. #16
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,530
    Rep Power
    171
    You might be right Zlatko - it's not as easy as it sounded first - I have not find out yet how to change the caption of my button - and I don't like he PB-Editor because one does not have built-in overview as thinAir has. Always have to F2 to look for a function...

    Win32-callbacks are cumbersome and chaotic. The code is barely readable and one always needs those strange abbrv. f. words one does not know and follows no rules because of those many exceptions. Microsoft-pages are bogous and written in a language I don't understand and searching for some abbreviation for some event where I even don't know if it exists nor its name and then it does not exist the way that would be locigal (except %BN_Clicked) hours and hours without finding the solution is no fun.
    And the stupid about this is: I used MS Visual Basic for years. And they don't have "Callbacks".
    Every Form has its variables, properties, functions and events. Also the controls. And you don't have to program over and over the same stuff with a 100 embedded select cases and ifs - but you can concentrate on the things you want to create.
    Just write your code in the generated code-skeleton which is clearly structured and you just have two dropdown-combo-boxes above the code window - at the left one you pick the controls or dialogs name - on the right one you choose the event - and whoops: There's the function! Just type your code that shall happen if that control or form experiences a certain event - and done.
    Then move on to next control_event... and they had it that way already in the early 90s. So I never needed to learn callbacks because it was always done internally. And now having to do this all "manually" feels like the wheel has been invented already but mankind does not use it.
    Last edited by ReneMiner; 06-09-2013 at 23:16.
    I think there are missing some Forum-sections as beta-testing and support

  7. #17
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,530
    Rep Power
    171
    Just an update: Hope you're all busy coding and carving your ideas -EZGUI is nice work- I like the visual editor and how it's made- but it lacks a few important controls as trees and grids. Maybe not included in the free version but in the commercial one- who knows. I think the pre-defined events are not ample - just click is definetely not enough- it needs a whole lot more from rclick,mclick, -wheeled, -btnHold(mousebtn), -OnDrag, -OnDrop, -mousemove(x,y,btn) , -keydown, -keyup, -keyhold to -activate, -gotfocus, -lostfocus, onchange (scrollbars/sliders/textfields or textboxes), onResize, changeselection on list and (not available) trees or property lists- seem very important to me. Basically a good approach - just that it does not seem allow to alter properties of once defined controls- if so- then sorry_ i've no use for...
    Last edited by ReneMiner; 07-09-2013 at 20:02.
    I think there are missing some Forum-sections as beta-testing and support

  8. #18
    The DDT Designer you downloaded is a "Utility" designer for building small utlity style apps using a minimal GUI. I was planning on a more powerful version later, but wanted to see how well the DDT designer did in the market. Most PB'ers use PBForms, so the designer was not popular and I didn't make a more powerful version. I offered the designer as freeware for awhile, but after some time I felt it may have confused potential customers about my commercial product EZGUI professional (which is totally different), so I stopped making the download of the DDT designer available.

    The designer you downloaded does not reflect the commercial product, which uses NO DDT, but instead the EZGUI framework.

    The commercial product not only supports all the standard Windows controls, but also the following more advanced Windows controls:

    Toolbar
    ToolTips
    StatusBar
    ProgressBar
    Trackbar
    Treeview
    Listview
    UpDown
    DateTime
    Calendar
    Tab control
    Pager control
    Rebar control
    Animation control


    it also supports MDI (multiple document interface) and has a MDIClient control.

    it also supports the RichEdit control (versions 1.0 to 4.0)

    aside from the native controls it also has the following custom controls:

    Canvas control with 2D proprietary Sprite engine (and graphics engines)
    Drag Handle control (for drag and drop engine for building WYSIWYG style apps like a visual designer)
    Files Listbox control (a mini explorer like listbox control)
    glCanvas control (based on OpenGL with a 3D scripting language)
    MCI control (for video, audio, MIDI, CD audio and more)
    Property Listbox control
    Shape/Hotspot/Splitterbar control (serves multiple purposes)
    Turtle Graphics control (vector based graphic control with a turtle graphics macro language)


    beyond this is also has an ownerdraw and customdraw engine for customizing existing controls. For example it easily does 2D and 3D color Button controls using ownerdraw. You can even customize the common dialogs.

    So the commercial product is a totally different animal than the freeware DDT designer you downloaded and even its visual designer is far superior.

    The reason I suggested you download the freeware DDT designer is the include file with it. It has an emulation layer which provides EZGUI like commands and events, but uses DDT as the engine. This could be easily ported to ThinBasic, since ThinBasic emulates the PowerBasic GUI command set.

  9. #19
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,530
    Rep Power
    171
    Your visual designer is great- no doubt- and also how it creates a script-skeleton. Ok- the version you uploaded might not come close the product you have on the market- but just an "onLClick"-event does definetely not serve all needs. I have a problem to find the simplest thing: just to change caption of a button control or just to end the program if the button I drew gets clicked- perhaps your documentation in the "big, real version" is better - if not you won't have much word-of-mouth-advertising. If you're real "buisiness man" as John suspects I would work on that - or at documentation. But I think you're one that just haves fun creating functions and is happy if they work - as I am happy if my functions work- that's why I'm creating lots of... I want to be happy often. For "commercial quality" it needs more explanation for the "stupids" - and not just rudimentary as for the cracks which are in the stuff. But what shall I say- I only saw "freeware-preview". Your visual designer is great stuff and it deserves to be honored... but the creation of events is quite ...small ? - sorry don't know english word for less than minimal meets requirements
    I think there are missing some Forum-sections as beta-testing and support

  10. #20
    Two things you mentioned in your post about controls:

    Events

    One must be careful in how they view events. Many of the events found in modern object oriented languages, just don't exist normally in WIN32 coded controls or they require extra work to impliment. What many developers who use dot.net languages may not realize is that some events require a lot of background work to make them possible. For example, low level events like keyboard, mouse button (not a click, but button down and up) require subclassing of the controls. Some special events like drag and drop events either don't exists in the API or are very rudimentary.

    Now in WinForms apps (dot.net) likely the dot.net platform builds upon the WIN32 API to make such events available or adds what did not exist.
    In WPF apps, new controls have been created in the dot.net runtimes so they likely were able to build such events directly into them.

    ThinBasic is built on top of the WIN32 API's, so adding such events require a bit of work.

    Altering properties

    If referring to altering properties after the control is created, once again the WIN32 API does not always allow this. In the API docs certain properties (more accurately window styles) are not allowed to be changed after the creation of the control (requires destroying the control and recreating it). Some window styles can be changed, but sometimes a specific window message must be used to accomplish this rather than just use the SetWindowLong API function to change them directly.

    Object Oriented languages most programmers use today, shield programmers for the low level WIN32 API's and they are built on top of it, often changing how things really work. In the WIN32 there are no Objects as you know them. There are window classes (controls), but they are not object oriented. Instead Windows (under the hood) is message based, rather than using methods and properties.

    Now in recent years many new features have been added to Windows using COM based classes, which are more object oriented, but this is stuff which was built on top of the WIN32 API, rather than replace it.

    ThinBasic (and its parent PowerBasic) though build upon the WIN32 API and this is reflected in the GUI command set. The PowerBasic GUI command set is a set of wrappers for the WIN32 Dialog Class APIs. Likely thinbasic is too (or it simply uses the DDT command set directly). This is why there are dialog procedures, callbacks, etc (actually PowerBasic control callbacks are simply message crackers for two API messages WM_COMMAND and WM_NOTIFY).

    One of the reasons why PowerBasic producs such small and fast executables is because it relies on the low level WIN32, rather than upon a much larger more complex framework, like dot.net.

    Most programming languages (aka. Visual Studio) are based on very high level frameworks and particularly on object oriented coding styles. The WIN32 API was based on a more functional (or procedural) based coding style, often referred to as flat API's. The WIN32 is "lean and mean" . Dot.net and other modern OOP frameworks tend to be "fat and bloated".

    Consider this:

    When I first upgraded to Windows 95 (from 16 bit Windows 3.1) my PC was a 486 (or 586) CPU with only 8 megabytes (not gig) of RAM. Windows 95 ran great on that PC. It was less than 50 mhz in speed too. Todays PC's have 200 to 300 times as much RAM as it did and CPU's which are 25 to 50 times faster (maybe more). So what happened to Windows ?

    In the early 2000's, Microsoft moved away from the WIN32 (and MFC, ATL, etc.) to dot.net (managed languages). Emphasis was put on heavy object oriented coding styles. Software began to slow down because it overloaded the PC's and the hardware manufacturers had to keep pace, just to keep the PC running decently with the software, not better. Has OOP produces the panacea programmers had hoped for ?

    Some experienced programmers have had second thoughts about OOP and the effects it has had on performance (and as you know PowerBasic programmers are all about performance).

    You might find interesting some articles on my blog where I write about this:

    http://cwsof.com/blog/?p=612

    http://cwsof.com/blog/?p=412

    http://cwsof.com/blog/?p=397

    http://cwsof.com/blog/?p=395

    Now some may take issue with my views on OOP in these articles, but please following any links in the articles to stuff written by others.

    One good example is a white paper written my Richard Mansfield. Who is he ?

    Maybe most are too young to remember him, but for us old timers he is someone who really knows a lot. He used to be the editor of the Compute Gazette magazine (Commodore 64 stuff) and he also wrote a lot of books on programming. I learned how to program in 6502 machine language from his excellent book. He also wrote a lot of books on Visual Basic and later VB dot.net.

    I once read about a comment that Alexander Stepanov once is suppose to have said about OOP, calling it s Hoax. Whether this comment is accurate or not, I don't know, but from what I have read about him he tends to be more procedural oriented in coding style. Who is he ? He worked for Bell labs with all those legends in the field. He was instrumental in the writing of the C++ Standard Template Libraries and he use to work for Adobe and taught classes for their programmers.

    ThinBasic has its heritage with PowerBasic and PowerBasic is a strong procedural based language, perfect for the WIN32s. Of course it does support some OOP (classes), but it is not required though.

Page 2 of 4 FirstFirst 1234 LastLast

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •