News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

A proposal for EasyCode IDE

Started by vmars316, April 20, 2011, 01:34:06 AM

Previous topic - Next topic

vmars316

Greetings,
I can see that your IDE is top_notch.
I generally program in HotBasic these days.
But sometimes have a need to delve into winAPI.
This is a very trying experience for me.
I don't generally need to see an API all programmed out
in my preferred language.
It would be enough to know what APIs I need to use
to accomplished a certain task, and in what sequence
they should be executed.

So I would like to propose something to you:
You have already programmed your IDE to
generate the proper APIs, etc., for specific tasks.
What I propose, is that you spit out that source API info
as an extra step as you generate the masm code.   
So that dummies like me, who don't learn in traditional   
ways, can see how/what is done(by example).
Then we can go and read up on individual APIs
and finally understand how/why things are done.   

This would be a VALUABLE service for anyone wanting
to learn the WinAPI. I am on a fixed income, and
money is tight. But even I would be willing to pay $99.00
for this add on feature to your IDE.
I know you IDE creators are not in it for the money,
because I write (only) Freeware myself.
But please consider this proposal. It would be a great
service to programmers. And I know that it would be
a valuable contribution to the industry.

I think I will make this proposal to other MASM
IDE Developers too. Hopefully, one of you will jump on it.
Thanks...vmars316
ps: Please let me know where to send the $99. :)
www.quickerthanaspark.com
.
All things in moderation, except for love and forgiveness...vmars316
.
www.QuickerThanASpark.com

Ramon Sala

Hi vmars316,

Sorry if I misunderstand something, but the use of the proper API's depends on the programmer, on what he/she wants to do. The Easy Code IDE (me) can not know in advance what application you are going to program, so it can not generate any API call. The only thing that EC does is generating a basic code for the most common messages like WM_CREATE orĀ  WM_CLOSE (visual projects), or generating the basic code for creating the main window and the message loop (classic projects). Apart from that it does not generate any API call as it does not know what you (the programmer) are going to do, so the only thing it does with API's is showing a context help. This context help is built-in, but attached is the used text file (no need to pay for that) and you have to read the MSDN help for those API's you want to use in order to know how they work.

That's why I said a basic Windows level programming is needed. For example, you should know how to use CreateWindow or CreateWindowEx for creating windows or child controls, or knowing the most common notifications sent by child controls to their parent through the WM_COMMAND and WM_NOTIFY messages.

Regards,

Ramon
Greetings from Catalonia

vmars316

Hi,
For example, in EC when I click on a BUTTON control,
(BUTTON1) And In the properties window, I select OwnerDrawn
and various other properties(color, size, location).
(BUTTON2) And In the properties window, I DO NOT select OwnerDrawn
and just other properties(color, size, location).
EC then codes a CreateWindowsEx(A) API,  and various other code.

And all I have done is click on two BUTTON controls.
But EC codes different CreateWindowsEx(A)s (+ parameters) for each BUTTON.
And does uses some APIs to create color and size and location.
And for BUTTON1, EC codes the OwnerDrawing to color BUTTON1.

I would like to know what each 'generated API' looks like.
I know EC generated some APIs (and whatever else)
because when I click on RUN,
EC shows me a running GUI window, with two BUTTONs,
one COLORED BUTTON and one standard BUTTON.

And all I did was click some BUTTONS.
I know I didnt code any APIs,
and I know the EC did.

In other words, anytime EC codes an API or series of APIs
on my behalf, I would like to see those APIs and their coded sequence.

I am not trying to bribe you,
just trying to point out how valuable this [show APIs] option would be.
It would also enhance EC's user_base as an API_TUTOR.

Thanks...vmars316
.
All things in moderation, except for love and forgiveness...vmars316
.
www.QuickerThanASpark.com

vmars316

Also,
what about all the EC macros and methods.
Some of these generate APIs.
Again, as a student of APIs, I would like to see which APIs and in what sequence.
Thanks...vmars
.
All things in moderation, except for love and forgiveness...vmars316
.
www.QuickerThanASpark.com

Ramon Sala

Hi vmars316,

I will split my answer in two posts with attached information.

Easy Code has two working modes, visual and classics projects. The classic mode works, more or less, like other traditional IDE's, everything is coded by the programmer and there's no code added by EC. It just takes care of the Prototypes in order to make the work a bit easier.

In visual projects, EC does most work creating each object, window or control, depending on some predefined values (according to the type of object) and on the values given in the Properties window. When building the project, EC uses the CreateWindowEx API function and sets some fixed styles depending on the type of object (i.e. BS_PUSHBUTTON for buttons, BS_AUTOCHECKBOX for check boxes, etc.) and other styles are set depending on the properties value. So for each object, EC calls the GetRunWindowStyle procedure (attached to this post). All this work is done in the IDE when building the project and it finally links the corresponding ECLibxx.lib file, which will control the appearance and behaviour for objects at run time.

Please see the next post.

Regards,

Ramon
Greetings from Catalonia

Ramon Sala

Hi again,

Remember that the visual library (linked if static, or going with the executable if dynamic) just takes effect at run time and it controls each object (window or control) included in the project at design time. Using the static o dynamic library is up to the programmer. The static library is linked when building the project, so the final executable file has no dependency. Otherwise, using the dynamic library makes the size of the executable file smaller, but it needs the ECLibxxx.dll to be in the same folder where the executable is, or in the System directory. If in the System directory, just one ECLibxxx.dll is needed fo all EC visual projects.

Visual libraries (static or dynamic) are just for visual projects. They control the <Tab> key to set the focus to child controls according to the 'TabOrder' property set at design time, paints the back and fore colors, etc., and also receive all messages sent by Windows. Those messages are first sent to the application so that they might be processed and return TRUE (that way there will be no further processing), or returning FALSE so that the default Windows processing is applied. Most of messages are not processed by the application, so the default return value for procedures in EC visual projects is always FALSE.

As I could be writing for ages, I think the best example is the visual library source code (attached), which is an EC project. I hope you can understand all the work it does.

And that is all I can do for you. I hope it can help you!

Regards,

Ramon
Greetings from Catalonia

vmars316

Ramon,
Thank you very much for explaining all that to me.
...Vernon
.
All things in moderation, except for love and forgiveness...vmars316
.
www.QuickerThanASpark.com