Thanks to All for the Toolbar test.

I will probably use the routine thats in Test13,
because of the constraints using CreateToolbarEx.

I normally use CreateWindowEx with CreateMappedBitmap,
but it did not work properly with that particular Bitmap.
But after rebuilding the Bitmap it seems to work ok.

Thanks again.

Posted on 2001-10-14 19:28:52 by Ewayne
What is the problem with using CreateToolbarEx?
And does "But after rebuilding the Bitmap it seems to work ok." mean
that test13 will look as good as test11? And why are you still stuck
in win9x? :)
Posted on 2001-10-14 19:35:07 by f0dder
To KetilO, thanks.

I think I might have given you the advice.

I downloaded your radASM today, very nice.


Posted on 2001-10-14 19:51:47 by Ewayne
To f0dder:

I don't like using CreateToolbarEx, because of
the muted white color and the extra resizing step
you have to do if it's a non standard size.

But I do like the way it handles (transparency?).

I use PhotoShop for creating Bitmaps and it seems
like when I switch from indexed color to RGB and
back again it does something to the Bitmap and
CreateMappedBitmap does not work properly.

No, using CreateWindowEx with CreateMappedBitmap
will not look as good as CreateToolbarEx, but it
is acceptable.

I also have NT 4.0 and in most cases if something
works in NT it will also work in Win2k.

My next upgrade will be to XP.


Posted on 2001-10-14 20:42:23 by Ewayne
Hmmm, white color stuff on CreateToolbarEx?

No, using CreateWindowEx with CreateMappedBitmap
will not look as good as CreateToolbarEx, but it
is acceptable.

Indeed it's acceptable :).

When you get XP, be sure to get the Pro version and not the home
version. And if you can, by ALL means get the corporate edition
(to free yourself from the crappy activation shit).
Posted on 2001-10-14 20:51:06 by f0dder
To f0dder:

I will get both XP versions.

Posted on 2001-10-14 21:12:42 by Ewayne
To dxantos:

The Ctrl-F4 to close a Tab, and Ctrl-Tab to cycle
Tabs features are done.

I'm a one finger Keyboard poker, so I didn't give
the extended Keys very much thought.

If you have downloaded the 10-12-2001 package,
you will only need to download the file.

Just unpack it and copy the files to their
appropriate directories.


Posted on 2001-10-15 15:30:13 by Ewayne
It have improved the IDE from looking good, but being a little anoying to being a great IDE.

Once again thanks for making that modification, and for giving the Asm comunity access to your IDE.
Posted on 2001-10-16 11:03:08 by dxantos
Thanks dxantos, and to all for the positive email

I would still like to see some negitive responses,
and or more suggestions and ideas.

My primary web site has reached it's download limit
a few times, I also have a mirror site at:


Posted on 2001-10-16 12:13:29 by Ewayne
Posted on 2001-10-16 20:02:44 by NaN
Thanks NaN, your much too kind.

+ : I love the costom code tool bar, and the way you have it situated (toggle on and off as needed).

You can also position the User Code Toolbar
horizontally or detach it and move it.

-: But i still think you should provide some sort of 'override' keystroke for the autocomplete. Still can't type: "invoke InvalidateRect, NULL, NULL" with out
seing NULL_BRUSH. And manually edit out the "_BRUSH". My suggestion is a SHIFT+SPACE to force only what was typed to be shown.

The option is there when you type in nu you will
get NULL_BRUSH, just use the right arrow key to
position the the cursor to the end of the NULL
and then press the insert key and it will remove
the _BRUSH.

I will look into the MouseWheel thingie, I don't
use the Wheel so I never noticed it.

!! : A big feature I truedly enjoy in UltraEdit is the function list window. I have it set up to 'recognise' PROC's and place them in its list box. This makes it
easy to jump around in code, by clicking on the funciton name. Something I think which would greatly add to editor. This window automatically re-updates
when other file tabs are selected as well, such that it will only lists the fucntions found in the current displayed file.

What is the main purpose of the Listbox? Does it
just display the Functions in a Proc or displayed
file? What does it do if you have more then one of
the same Function?
Does it list the complete Function or just the
Function name?
I can see it's usefulness if it's at the Proc
level, but it seems like you could get to many
wrong hits at the Program level.

I think I'm starting to answer my own question
I could prefix the Function with it's Proc name
and have the option of either filling the Listbox
with Functions at the Proc or Program level.

!! : Another idea would be to provide a Tool's interface for custom .dll's. Such that i can design a custom tool, make it adhear to the needed requirements to
work with your editor.

Great idea, I think I know to do it, but I might
need some help with the interface.

What type of interaction would it have with AsmEdit.
Could you give me an example?

I will start to work on the Tool interface.

Thanks again for the suggestions and feedback.

Posted on 2001-10-16 21:40:05 by Ewayne
Sorry about my spelling... (man that was a hard re-read :( hehe)

Ya.. in ultra edit, you can script how you want your "function list" to capture information. In masm i have it looking for:

/Function String = "^(%[0-9a-zA-Z_@?$]+[ ^t]^)+proc+[ ^t^p]"

Basically = Newline + Anything + "PROC" + Anything

When a match is found in a given file, it is added to the function list box. And the line # is internally stored in the entry. When i double click on a function name, it takes me to that point in the file where the code begins.

As for multiple proc names, this should never happen, as you cant compile that file. There is only one list box for this, but it is dependant of the current file being edited. So by switching files (selecting another file tab), the function list will re-update with the functions present in the new file selected, etc. etc.

The entire point is to just jump around easily in a given file. :) And its very nice to have!!

As for the wheel mouse probs.. I tried about 8 months ago to figure it out (but i was still a bit green back then). I was trying to subclass the richedit window, and intercept mouse wheel messages, null them, and instead send slider messages (as if i slid the bar instead). I didnt get very far back then, but that was the basic idea i had.

And for the tool idea... I didnt give it too much thought. I suppose the biggest thing is access to the editor's memory for your own custom automations. Other interfaces would be stuff that the editor would require from the "forign" code, provideing some sorta struct with Name of tool, etc. etc.

If i were to say... err ahh, build our OOP tool to add code directly into your editor, i would need to be able to access the editor and automatically add text. Also, i would most likely want to start a new file automatically, as each new class is a separate file.

Hmmm... this is all i can think of right now... but i will keep it in the back of my mind...

As for help, Im pretty strapped for time in the next couple of months (school and all), but perhaps in the winter i can give more assistance ??

Posted on 2001-10-17 01:22:09 by NaN
Hi NaN,

As for multiple proc names, this should never happen, as you cant compile that file. There is only one list box for this, but it is dependant of the current
file being edited. So by switching files (selecting another file tab), the function list will re-update with the functions present in the new file selected, etc.

I meant to say multiple Function names, but I can
see thats no problem.

The only problem I see is maintaining the integrity
of the Listbox, e.g. adding or deleting Functions
and adding or deleting code and keeping the line
numbers in sync.

Unless I would do a complete refresh of the Listbox
everytime the total number of lines changed and
that would take a while if it's a large program.


Posted on 2001-10-17 02:06:37 by Ewayne
AsmEdit has been updated with a Function list.

The Functions are grouped by their Procedures, if
there are any.

You can click on a Function in the list and the
Edit window will be scrolled to that location.

If you have already installed the 10-12-2001
package, just unpack the file below and copy the
files to their proper directories.

The program will run standalone with limited
functions, but you can test the Function list.


Posted on 2001-10-18 13:42:38 by Ewayne
Wow that was fast :)

I see your getting the idea, and you've taken it one step further by hunting down all the invokes and calls within each proceedure.

This is actually a neat idea, didnt think of it myself, but on the flip side it clutters everything up. :(

UE's version would only display the equivalent to your " *** Something PROC" entries. So if i had 10 procedures, it would have 10 entries in the list box. Playing with your version i discovered your not using the " *** " entries other than to simply give the user a head's up where the invoke's that follows are comming from. I dont want to bash, i do like this idea!!

But if i may add more constructive critizism, perhaps a TREE VIEW would be better? Where collapsed it would only display the " *** " entries, and if clicked on it will take you to the line the word " PROC " is found for that proceedure. And if i wanted to hunt down more specific stuff, like invokes within a proc, i can expand that node and choose the inovke or call..

What do you think?? (I tested it with your source file, and MAN does it fill up big time! :) It takes alot of scrolling to get to a proceedure at the bottom, which almost NULL's the point in the first place )

Other than that it looks and works great!

Keep up the good work...
Posted on 2001-10-18 16:54:39 by NaN
Oh ya, as for your query about knowing when to re-update...

I would have it update:

- When first opened (of course :) )
- When A file tab is selected ( Duh! )
- When maximized or resized.
- When the user hits 'F5' (typical refresh key for most programs)
- When View->Refresh selected.

This takes alot of worry off your part. After all were programmers, and we know what we want. So if i want to jump to a new proc that is currently not in the list, i would feel perfectly comfortable hitting F5 and then choosing the new proc.

I dont see the need to poll every x keystrokes etc.

Anywho, just my thougths on this topic...

Posted on 2001-10-18 17:02:25 by NaN
Hi NaN,

Maybe I miss understood, when you stated a Function
list did you mean a Procedure list?

AsmEdit already has a Procedure list via the GoTo
Toolbar button.

I personally don't see the usefulness of a complete
Function list even with a Treeview.

Maybe someone else could voice their opion.

Posted on 2001-10-18 17:16:34 by Ewayne
Hi NaN,

I must of posted between your last and next to
last post.

The way the Function list is being refreshed is:

1. Cut, Paste, and Delete.
2. Tab switch.
3. Hide/Show Function list.

The F5 is already in use, I might be the only one
that uses the F5 and F6 keys, I would have to find
another editor if I didn't have those.
I don't want to do that, because I'm almost to the
point that I like AsmEdit.

I will add a refresh to the menu and maybe a
refresh button to the Toolbar.

In the already definded:)Procedure list, it's a
new list every time you open the GoTo dialog.


Posted on 2001-10-18 17:40:58 by Ewayne
Posted on 2001-10-18 19:37:18 by NaN
Hi NaN, no problem, I might use the new routine
for my Procedure list, I think it might be faster
and a lot shorter then what I was using before.

I might leave the feature in, like you said maybe
it could be used for trouble shooting.

I changed the program so you can click on the Proc
in the Function list and and it will scroll the
Edit window to the Proc, I don't know why I didn't
do it before, the information was there.

Below is an update to AsmEdit.

I forgot to include the latest source.

Posted on 2001-10-18 20:56:49 by Ewayne