News:

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

ShineInHex - hex view/edit control

Started by ramguru, January 14, 2006, 06:33:09 PM

Previous topic - Next topic

Jupiter

hi, ramguru.
at first, relax, you did great work and you can't implement all features at once

a little bug: when you use keyboard to move cursor, current offset isn't updated (only when using mouse)
EnJoy!

ramguru

Thanks, Jupiter
UPDATE
What's new:

  • Added unlimited Undo/Redo (it's my algo so don't expect it to work identically as others)
  • Fixed mentioned above and some more bugs

And yes Ctrl+Z - undo, Ctrl+Y - redo

Jupiter

great work, ramguru ;)
prety fast update ;)

I attached... just a color scheme ;)
put in Test_ShineInHex.exe folder

[attachment deleted by admin]
EnJoy!

ramguru

Really nice, maybe next release will contain a folder with suggested set of color schemes. Hmm, if I will release it to some kind of download site, it will require an installer (to build me a solid website), I guess, but usual installer adds 100Kb additional raw data, sad.

PBrennick

That would be great. This is an excellent piece of work so I thought I would help by giving you a nudge. When I speak up like that, it means I feel it is well worth improving.  :U

Paul
The GeneSys Project is available from:
The Repository or My crappy website

Jupiter

in case of NSIS installer, overhead is 30 KB only
http://nsis.sf.net

anyway you can always create own tiny installer ;)
EnJoy!

ramguru

cool my soft finally got published after a long wait
interesting, do they say this to everyone:
Quote
Hello,

Your product "ShineInHex 1.0f" has been tested by the Softpedia labs and found to be
completely clean of adware/spyware components.

We are impressed with the quality of your product and encourage you to keep
this high standards in the future.

To assure our visitors that "ShineInHex 1.0f" is clean, we have granted it with the
"100% FREE" Softpedia award. Moreover, to let your users know about this
certification, you may display this award on your website, on software boxes
or inside your product.

More information about your product's certification and the award is available
on this page: http://www.softpedia.com/progClean/ShineInHex-Clean-69262.html

Your product review page is located at:
http://www.softpedia.com/get/Programming/File-Editors/ShineInHex.shtml

Please feel free to link to us using the URL above.
If you choose to link to the award page for your product, you may use the
award graphic or a text link such as: "100% FREE award granted by Softpedia"

Don't hesitate to contact us for more information.

Sincerely,

I must admit, I'm impressed with these fox, they wrote program's description for me, and screen-shots are made by them...they are nice

ramguru

UPDATE
What's new, fixed:

  • Added Theme Switcher in test application
  • Added support for multiple instances of SHINEINHEX in one program (ATL thunking)
  • Now Reverse Order really finds pattern of data in reverse order
  • Now SHINEINHEX works fine if declared in dialog resource (tabstop etc.)

Jupiter

thank you for update!

BUG:
.if eax==13000 || eax==13001
invoke OpenClipboard, HM.hWnd[ebx]
invoke EmptyClipboard
mov    edx, HM.sel_start[ebx]
mov    ecx, HM.sel_end[ebx]
.if edx > ecx
sub    edx, ecx
mov    ecx, edx
.else
sub    ecx, edx
.endif
shl    ecx, 1
inc    ecx
invoke GlobalAlloc, GMEM_MOVEABLE, ecx
mov    hex_clip_copy, eax
invoke GlobalLock, hex_clip_copy
mov    hex_clip_point, eax
cmp    eax, 0
je     @exit
mov    esi, HM.pointer[ebx]
mov    edi, hex_clip_point[ebx]
mov    ecx, HM.sel_start[ebx]
mov    edx, HM.sel_end[ebx]

check registers usage
(try to hex copy selected text)
EnJoy!

ramguru

Thanks, I see my mistake  :bg , ebx is supposed to be used with HM structure, I've posted an update.

.if eax==13000 || eax==13001
invoke OpenClipboard, HM.hWnd[ebx]
invoke EmptyClipboard
mov    edx, HM.sel_start[ebx]
mov    ecx, HM.sel_end[ebx]
.if edx > ecx
sub    edx, ecx
mov    ecx, edx
.else
sub    ecx, edx
.endif
shl    ecx, 1
inc    ecx
invoke GlobalAlloc, GMEM_MOVEABLE, ecx
mov    hex_clip_copy, eax
invoke GlobalLock, hex_clip_copy
mov    hex_clip_point, eax
cmp    eax, 0
je     @exit
mov    esi, HM.pointer[ebx]
mov    edi, hex_clip_point ;[ebx] !!!!!!!!!!!!!!!
mov    ecx, HM.sel_start[ebx]
mov    edx, HM.sel_end[ebx]



ramguru

New Update

This one includes features such as:
bytecode copying in masm or C format, including selection or excluding selection.

six_L

regards

ramguru

The last update this week  :toothy
...fixed bytecode copying algos, when last char was stripped;
...fixed selection by keyboard, when last char could not be selected.

Howard

Hi Ramguru

I've just downloaded your latest release to have my first look. I've managed to figure most things in its use (it wont open a file marked read-only, or an .exe - threw me for a while, but easily gotten around). However, I can't figure what is the use of the Copy command - once I copy a block I can't seem to do anything with it - is this for outside use or something (perhaps I need to look through the source). Is there a facility for pasting a block?
The other thing happening I noticed is that it is not saving the screen width (i.e. number of columns) in the ini file.
I'm commenting on these things because it is looking very nice, especially being set up as a control - I've done this sort of thing for my own use as a control, but not as nice as this - thinking of changing to it.

Thanks
Howard

ramguru

Thanks for your thorough response, Howard

Quote from: Howard on August 03, 2007, 03:36:15 AM
(it wont open a file marked read-only,
In latest release I added HEXM_SETREADONLY , but didn't make a use of it. I think in following release test_application will be able to open read-only files and HEXM_SETREADONLY will make sure editing mode is turned off.

Quote from: Howard on August 03, 2007, 03:36:15 AM
However, I can't figure what is the use of the Copy command - once I copy a block I can't seem to do anything with it - is this for outside use or something
Of course it's for outside use, invoke your imagination :lol . Let's say you copied bare hex block, then you can check in other program if that block corresponds to opcode or something, examine it, you can paste it in find dialog (and search for reversed data) whatever.

Quote from: Howard on August 03, 2007, 03:36:15 AM
Is there a facility for pasting a block?
No, there isn't yet. It would be difficult, pasting sometimes means inserting, but this can't be implemented  :naughty: For pasting-overwriting case there is a good chance in the future.

Quote from: Howard on August 03, 2007, 03:36:15 AM
The other thing happening I noticed is that it is not saving the screen width (i.e. number of columns) in the ini file.
That can & will be implemented in the following release. But generally it's parent's responsibility to save that data, not control's.


I was using a lot this control myself lately while examining mnu,dlg formats and i have something more in mind, ways to improve it: like tabs; command line support; double view; structure viewer/editor...Will be working on some of these features after I'm finished with rc2dlg converter.