Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 38

Thread: EZGUI - getting nosy...

  1. #21
    Ok, what does all of this have to do with programming language design ?

    A great deal.

    In object oriented languages one is used to things like:

    Form.caption = "some text"
    Button.caption = "some text"

    Button.top = 20
    Button.left = 30

    In the WIN32, this does not exist. In the WIN32 to change the text of a dialog or a button control one would either call a flat API or send the window a message like this:

    SetWindowText hWindowHandle&, SomeTextinAsciiZFormat

    or

    SendMessage hWindowHandle&, %WM_SETTEXT,0, VARPTR(SomeTextString_which_isNullTerminated)

    The PowerBasic compiler (which ThinBasic emulates) uses a command like:

    DIALOG SET TEXT hDialogHandle&, "some text"

    or

    CONTROL SET TEXT hDialogHandle&, ControlID&, "some text"

    These commands are simply wrappers for the above WIN32 methods.

    You can see that WIN32 coding is a far cry from object oriented coding.

    True WIN32 coding is more procedural in style, while dot.net coding (and other Microsoft languages) are more object oriented.

    Objects are something inherent to modern programming languages, rather than the core of Windows.

    This love affair with OOP is what has caused Windows to bloat into the monstrousity it is now.

    Microsofts C++ expert Herb Sutter discusses this in his talk "Why C++ ?":

    http://channel9.msdn.com/posts/C-and...b-Sutter-Why-C

    He explains how Windows Vista was Microsofts attempt to do everything with the operating system using a managed language (aka. dot net) and how it was a failure (slow and bloated basically) because of this. Why ?

    Because performance can only be found using native coding (in Windows this means the WIN32) and more low level approaches to coding. Now personally I don't think he goes far enough, because C+ programmers still use a degree of OOP, but he faces the real problem with modern computer devices (including mobile), which is poor performance and managed languages just don't cut it.

    Now personally I would go a step further. OOP has added too much extra overhead to our software today, making it more difficult to debug and also bloated.

    Don't believe this ?

    Ask any professional programmer today to try to develop some software and tell them they can only use a computer with less than 1 gigabye memory and a CPU which is less than 1 ghz. They would laugh in your face and say it can't be done. Now ask them to develop some software using a 10 year old Windows XP computer with only 256 meg ram and a 20 gig harddrive. Again they would laugh in your face.

    Now tell them you want the software they develop to run just as well on a Windows 98,XP or 2000 machine with only 256 meg ram or less as it does on a modern PC and they will say it is impossible.

    But it is possible and it can all be done using native coding using the WIN32 API.

    Look at how tiny ThinBasic is. The entire installation (once installed) is about 28 megabytes. Impressive. This is why the use of PowerBasic really makes a difference in its development.

  2. #22
    Here is a list of all the Events in EZGUI 5.0 Professional:

    Note: Some are specific to certain controls, some are specific to non-controls like the common dialogs or tray icons or the like.

    • %EZ_Close
    • %EZ_Click
    • %EZ_DClick
    • %EZ_Focus
    • %EZ_NoFocus
    • %EZ_Disable
    • %EZ_Change
    • %EZ_Timer
    • %EZ_ToolTip
    • %EZ_UnKnown
    • %EZ_Command
    • %EZ_Notify
    • %EZ_Redraw
    • %EZ_CtrlError
    • %EZ_PrintError
    • %EZ_AllowEdit
    • %EZ_DragForm
    • %EZ_SysMenu
    • %EZ_DClickCap
    • %EZ_NoDClick
    • %EZ_DoMDIMsg
    • %EZ_GameLoop
    • %EZ_KeyDown
    • %EZ_KeyUp
    • %EZ_KeyPress
    • %EZ_Enable
    • %EZ_HelpShow
    • %EZ_HelpShowC
    • %EZ_HelpShowM
    • %EZ_HelpShowID
    • %EZ_SysKeyDown
    • %EZ_SysKeyUp
    • %EZ_SysKeyPress
    • %EZ_ActivateMe
    • %EZ_FinishMCI
    • %EZ_FlagMCI
    • %EZ_AppFocus
    • %EZ_NoAppFocus
    • %EZ_CBDropDown
    • %EZ_CBDropUp
    • %EZ_NoAutoSize
    • %EZ_ChangeZOrder
    • %EZ_ChangeSize
    • %EZ_ChangePos
    • %EZ_PollCtrl
    • %EZ_NextCtrl
    • %EZ_CaptureOff
    • %EZ_AllowFirstCtrl
    • %EZ_RTFLink
    • %EZ_Updated
    • %EZ_ConvBtnPos
    • %EZ_DoDefFocus
    • %EZ_Compare
    • %EZ_InitPropDlg
    • %EZ_Loading
    • %EZ_Started
    • %EZ_Loaded
    • %EZ_FreeNow
    • %EZ_LButtonDown
    • %EZ_LButtonUp
    • %EZ_LButtonDC
    • %EZ_MButtonUp
    • %EZ_RButtonUp
    • %EZ_DragClear
    • %EZ_DragPos
    • %EZ_SubClass
    • %EZ_Drag
    • %EZ_Drop
    • %EZ_Size
    • %EZ_DropFiles
    • %EZ_Cancel
    • %EZ_NoDrag
    • %EZ_DragItem
    • %EZ_Move
    • %EZ_Dropping
    • %EZ_DragItemDrop
    • %EZ_Maximize
    • %EZ_Minimize
    • %EZ_Restore
    • %EZ_MouseMove
    • %EZ_MouseEnter
    • %EZ_MouseLeave
    • %EZ_Sizing
    • %EZ_AutoSizeStart
    • %EZ_AutoSizeEnd
    • %EZ_ScaleMe
    • %EZ_SelectCursor
    • %EZ_TrayLButtonDown
    • %EZ_TrayLButtonUp
    • %EZ_TrayRButtonDown
    • %EZ_TrayRButtonUp
    • %EZ_TrayDClick
    • %EZ_HotMouseMove
    • %EZ_HotMouseEnter
    • %EZ_HotMouseLeave
    • %EZ_FormSizable
    • %EZ_TextUpdated
    • %EZ_AttrUpdated
    • %EZ_ColorUpdated
    • %EZ_FontUpdated
    • %EZ_SelUpdated
    • %EZ_ClearUpdated
    • %EZ_BitmapUpdated
    • %EZ_IconUpdated
    • %EZ_CmpSet
    • %EZ_CmpGet
    • %EZ_OwnerDraw
    • %EZ_OwnerSize
    • %EZ_NoCustomDraw
    • %EZ_CustomDraw
    • %EZ_EraseBG
    • %EZ_PaintSP
    • %EZ_EraseSP
    • %EZ_Thread
    • %EZ_ThreadP
    • %EZ_ThreadCode
    • %EZ_Post
    • %EZ_Collapse
    • %EZ_Expand
    • %EZ_Selected
    • %EZ_SMSelected
    • %EZ_MenuClose
    • %EZ_MenuShow
    • %EZ_UnSelected
    • %EZ_Terminate
    • %EZ_ScrollBG
    • %EZ_ScrollBGKey
    • %EZ_DragItemID
    • %EZ_DragItemDraw
    • %EZ_NoLeftSize
    • %EZ_NoRightSize
    • %EZ_NoTopSize
    • %EZ_NoBottomSize
    • %EZ_MinMax
    • %EZ_EditSetSel
    • %EZ_SaveSetSel
    • %EZ_LVClickInfo
    • %EZ_LVDClickInfo
    • %EZ_SetODChildID
    • %EZ_FindDlgTerminate
    • %EZ_FindDlgFindNext
    • %EZ_FindDlgReplace
    • %EZ_FindDlgReplaceAll
    • %EZ_ShowCommonDlg
    • %EZ_ChildFocus
    • %EZ_ChildNoFocus
    • %EZ_ChildReturn
    • %EZ_ChildEscape
    • %EZ_ChildShow
    • %EZ_ChildHide
    • %EZ_ChildUpdate
    • %EZ_NoTheme
    • %EZ_NoVirtualSize
    • %EZ_SysChange
    • %EZ_PTimer


    If you consider my comments about how one converts API messaging to an Event oriented engine, this is why I built a GUI framework rather than simply a GUI library. I had to build an event engine which would do all the extra work to generate all these events.

    Sorry about them not being in alphabetic order, since I just copied them out of products include file.
    Last edited by Chris Boss; 07-09-2013 at 21:40.

  3. #23
    John,

    Rather than post lots of opinions, why not post something more constructive. Opinions are cheap, why not instead:

    • Post some examples of thinbasic code for the benefit of others
    • post some explanations about complex programming subjects (ie. the WIN32 API)
    • teach something useful, such as how to solve a particular problem


    You may not like what others say or do and you have the right to your opinion, but why not for once post something constructive rather than destructive.

  4. #24
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,527
    Rep Power
    170
    I would appreciate if your controls would have properties- and that is not difficult to achieve - even if no oop-langauge. The events is a class higher- Your designer is great- no doubt. I just miss the possibility to change properties of once designed objects - did I overread something? I tried to change the caption of a simple button when I click it- but I had to give up because I did not find any explanation how to- otherwise I could certainly have done it. But honestly: This is not the commercial product- so I can not really compare. But if I would get this as a try-out-version - I would not buy it. It's a lot of work to do it better than that- in any case. But since I have no time pressure I would save myself the money and would have the fun to create it myself (no offense- please do not understand wrong- I'm just a lazy end-product-user as lots of them out there. I'm trying to create some TB-GL-UI myself and I was nosy how you did it (now it's admitted) and I would not dare to sell my stuff - I'm hobby-user- and I make my stuff available to all other hobbyists out there because I lke the attitude of providing informazione for everyone and exchange experience for free ( No fear- your stuff stays here or gets deleted eventually but never gets out here unasked nor unpermitted - and your approach is certainly no model I would copy) . Maybe you take this as a hint to improve - or the version I saw was just a "reduced snoop'in preview" - but honestly: I would not spend the money for it. The stuff I made myself is already much easier to handle (except your designer- which is great and where you are way ahead - but the events are petty) but currently I search for some way to create UI-controls that are important but secondary ( I want to concentrate on other stuff) and I don't see any reason to chagrin myself with that, so currently I'm coding nothing but wait for Eros to release long desired 1.9.8 with loads of fixes and new functions ( sadly probably without this one) . So the worlds faith lays in Eros hands

    EDIT: I already used up more than 1 and 1/2 hours to reply so there are posts I did not read when I posted...so I have to check out- maybe next post follows ( if it's not just John that posted his unasked opinion )
    Last edited by ReneMiner; 07-09-2013 at 22:14.
    I think there are missing some Forum-sections as beta-testing and support

  5. #25
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,527
    Rep Power
    170
    OK- John- you're right- without reading your post - I know you have the right - you have the right to be right- you're an american and those deserve their rights naturally- others have to fight for them and don't desvere the freedom without the battle because their ancestors are no immigrants in a foreign country that killed the native inhabitants... so much for that- we're still talking about ezgui here... if you like it or not- please open your own thread if you want to get rid of your JS-Special-B.S.
    Last edited by ReneMiner; 07-09-2013 at 22:42.
    I think there are missing some Forum-sections as beta-testing and support

  6. #26
    Rene,

    The DDT Designer you downloaded does not use a property list for changing properties. Instead you double click the control to display a full property dialog instead where you can change the captions, colors, fonts, etc.

    What I was referring to about not being able to change properties after a control is created was refering to the runtime when an app runs and you want to change properties while the control exists. The designer gets around this when you click apply in the property dialogbox by simply recreating the control using the changed properties.

    Most people are used to the Visual Basic style designer environment and expect a property list. My designers instead expect you to double click a control to display a property dialog, which is more suited to the complexity of properties and options which need to be set (especially is this so in my commercial product).

    Actually, my 5.0 product does now have a small property list for common properties, but also uses the double click to display the more complex property dialog.

    One thing about EZGUI 5.0 Pro is that it has a drag and drop engine built in. This means it could be used to build your own visual designer and it does all the hardwork. It would be nice to see someone build a full blow drag and drop environment for ThinBasic using it. It can do all the drag and drop stuff, has its own property list control too and all that would be needed would be a code editor control, like the one used in ThinAir. EZGUI supports third party controls in DLL format, so one could use such a code editor control with EZGUI.

    I have noticed that one of the biggest issues with many independent BASIC languages (free and commercial) found on the web is the challenge of building a true drag and drop environment for development. There are a number of code editor controls available, but no drag and drop engines. EZGUI was designed so you can build your own tools and build WYSIWYG style applications.

    My own commercial designer does not utilitize the property listbox control as much as I would like, but that is because I didn't want to rebuild the designer from scratch, but continued to improve the existing designer over each generation. I have been using property dialogs rather than property lists for some time in the product. This does not mean though one could not build a designer which trully emulates a visual basic like environment using EZGUI. It only lacks the code editor control, but there are a some excellent freeware ones available, which one could use.

    I would love to see a full blown drag and drop environment built for Thinbasic.

    I don't have the time to spend building one myself, but if any EZGUI user desired to do so I would be happy to be of some support to them to help them build it.
    Last edited by Chris Boss; 07-09-2013 at 22:43.

  7. #27
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,527
    Rep Power
    170
    No- in-designer mode is really easy and very clear how to change properties of "objects" as controls. I'm complaing I can not find any possibility to change properties (as a caption) in Run-time. So either they are undocumented - (and I can not do anything about this then since I don't know function names to change them) or if they really were static - they are of no real use but just nice to look at once.
    I think there are missing some Forum-sections as beta-testing and support

  8. #28
    Rene,

    Maybe check out some videos I have on my youtube channel. They provide a better understand of what EZGUI can do and how its designer works.

    Designer tutorial #1:

    Designer and ownerdraw:

    Designer Visual Bookmark feature:

    Working with Tab order in Designer:

    Project Palette window in designer:

    Using layers in the Designer:

    Using user designed custom controls in designer:

    All the controls supported by the designer:

    Some of the runtime features:

  9. #29
    Wow !

    I simply posted links to my videos in the above post. I didn't expect the forum to embed the videos automatically.

    Sorry about that. Looks a little overwhelming.

  10. #30
    Rene,

    The DDT designer you downloaded only is for generation of the UI. It was expect that users would be familiar with the DDT command set for changing things like text in a control at runtime, so it is not documented. I assume thinbasic has something similiar to PowerBasic DDT.

    In PowerBasic to set a controls caption for example would be like this:

    CONTROL SET TEXT hDialogHandle&, ControlID& "Some text"
    
    In the commercial product to work with controls there is an EZGUI command set based on the runtime engine.

    In EZGUI 5.0 Pro you don't use handles for dialogs (forms). Instead all forms are referenced by a name.

    For example, the create a Form would look like this:

    EZ_Form "MyForm", "", "My caption text", 0,0, 60, 20, "C"
    

    To change the forms caption text would be done like this:

    EZ_SetText "MyForm", 0, "My new caption text"
    

    To create a button control would be like this:

    %MYFORM_BUTTON1
    
    EZ_Button %MYFORM_BUTTON1, 30, 10, 20, 1.5, "I am a button", "T"
    
    To change the buttons text would be like this:

    EZ_SetText "MyForm", %MYFORM_BUTTON1, "Some new text"
    
    For example to add items to a listbox would be done like this:

    EZ_AddItems "MyForm", %MYFORM_MYLISTBOX, "Apples|Pears|Oranges|Peaches|Grapes|Watermellons|Lemons|Limes|"
    
    Forms have names and controls have ID's (numbers) which can be represent by a constant if you like.

    It is like how we have Street names, but houses have numbers. In EZGUI Forms are like streets (with names) and the controls are like the houses (with numbers).
    Last edited by Chris Boss; 07-09-2013 at 23:11.

Page 3 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
  •