📄 hexeditor.html
字号:
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 1st November 2003), see www.w3.org" />
<title>TMPHexEditor/TMPHexEditorEx readme</title>
<meta http-equiv="content-type" content=
"text/html; charset=us-ascii" />
<meta http-equiv="content-language" content="en" />
<meta name="description" content=
"TMPHexEditor/TMPHexEditorEx readme" />
<meta name="author" content="markus stephany" />
<style type="text/css">
/*<![cdata[*/
h1 {
vertical-align:bottom;
margin:0;
padding:2px;
padding-left:4px;
font-weight:bold;
font-size:130%;
background:#ecf1f1;
color:#576565;
margin-bottom:24px;
}
h2 {
margin:0;
padding:2px;
padding-left:4px;
font-weight:bold;
font-size:110%;
background:#ecf1f1;
color:#576565;
}
td.su {
padding:8px;
border-style:none;
border-bottom-style:solid;
border-width:1px;
border-color:#ecf1f1;
font-size:100%;
}
body {
font-family:verdana,helvetica,arial,sans-serif;
color:black;
background:white;
font-size:12px;
line-height:normal;
}
a:link {text-decoration:underline; color:black;}
a:visited {text-decoration:underline; color:#576565;}
a:hover {text-decoration:underline; color:black; background-color: #fcbc05}
a:active {text-decoration:underline; color:#576565;}
a:focus {text-decoration:underline; color:black; background-color: #fcbc05}
div.top {
font-size:75%;
margin:0;
margin-top:16px;
margin-bottom:36px;
}
li { margin-bottom:8px; text-align:left;}
/*]]>*/
</style>
</head>
<body text="black" bgcolor="white" link="black" alink="gray"
vlink="black">
<a name="_top" id="_top"></a>
<h1>TMPHexEditor/TMPHexEditorEx components by <a href=
"http://www.mirkes.de">mirkes.de</a></h1>
<p><b>TMPHexEditor</b> is a TCustomGrid descendant to view and
edit binary files in hexadecimal and textual format.</p>
<p><b>TMPHexEditorEx</b> is an advanced hex editor, is supports
OLE drag and drop, printing, print preview and more.</p>
<div class="top" align="right">
<a href="#_top">top</a>
</div>
<h2><a name="contents" id="contents"></a>contents:</h2>
<table summary="" border="0" cellspacing="0" cellpadding="0"
width="100%">
<tr>
<td class="su"><b><a href="#version">version</a></b>:
version of the package</td>
</tr>
<tr>
<td class="su"><b><a href="#target">target</a></b>:
supported borland ides</td>
</tr>
<tr>
<td class="su"><b><a href="#sources">sources</a></b>:
status of the sourcecode</td>
</tr>
<tr>
<td class="su"><b><a href="#history">history</a></b>:
version history of the package</td>
</tr>
<tr>
<td class="su"><b><a href=
"#installation">installation</a></b>: how to
install the package</td>
</tr>
<tr>
<td class="su"><b><a href="#usage">usage</a></b>:
how to use the package</td>
</tr>
<tr>
<td class="su"><b><a href="#contact">contact</a></b>:
how to contact the author of the package</td>
</tr>
<tr>
<td class="su"><b><a href="#license">license</a></b>:
license of the package</td>
</tr>
</table>
<div class="top" align="right">
<a href="#_top">top</a>
</div>
<h2><a name="version" id="version"></a>version:</h2>
<p>version 09-30-2007, released september 30, 2007</p>
<div class="top" align="right">
<a href="#_top">top</a>
</div>
<h2><a name="target" id="target"></a>target:</h2>
<p>the package should work in
Borland Delphi 4, 6, 7, 2006 and C++ Builder 6.</p>
<div class="top" align="right">
<a href="#_top">top</a>
</div>
<h2><a name="sources" id="sources"></a>sources:</h2>
<p>the component sources are included in the package.</p>
<div class="top" align="right">
<a href="#_top">top</a>
</div>
<h2><a name="history" id="history"></a>history:</h2>
<p>version 09-30-2007: september 30, 2007</p>
<ul>
<li>different calculation of textheight and charwidth to better support e.g. chinese unicode characters</li>
<li>When changing HexLowerCase, the ruler has not been drawn correctly</li>
<li>added support for exporting regedit hexdata clipboard format in TMPHexEditorEx</li>
</ul>
<p>version 12-06-2006: december 06, 2006</p>
<ul>
<li>changed SelectionChanged method, so the OnSelectionChanged event should work when
the editor control is put on a TFrame component</li>
<li>added delphi2006 package</li>
<li>added AutoBytesPerRow property</li>
<li>the SelCount property is writeable now</li>
<li>standard actions support in TMPHexEditorEx</li>
</ul>
<p>version 05-24-2006: may 24, 2006</p>
<ul>
<li>fixed painting bug when drawing solid "secondary" cursor frames (FocusFrame = False)</li>
<li>restored compatibility of mphexeditorex.pas with delphi 6</li>
</ul>
<p>version 02-06-2006: february 06, 2006</p>
<ul>
<li>changed key handling (VK_INSERT, no action if a control key is pressed)</li>
<li>fixed an access violation in CursorOverSelection when moving the cursor over
a large selection</li>
<li>added conditional defines for delphi 8 and delphi 2005 in MPDELVER.INC</li>
<li>removed FastPointer property, use the GetFastPointer function instead (it checks boundaries)</li>
</ul>
<p>version 05-23-2005: may 23, 2005</p>
<ul>
<li>fixed an access violation in the undo storage code when reallocating memory during storing of undo data</li>
<li>the secondary focus frame on the hex pane now is painted around the whole actual data value (4 digits if unicode, 2 digits otherwise)</li>
<li>added procedure CenterCursorPosition</li>
<li>in InsertBuffer and Replace now the position parameter is checked</li>
</ul>
<p>version 12-29-2004: december 29, 2004</p>
<ul>
<li>initialized Result to '' in some string functions/methods to avoid non empty Result vars
at function startup due to compiler optimizations (particularly on d4), e.g. printing did not
work correctly under d4</li>
<li>updated some of the sample projects (fixed the broken bcb6 sample, added printing to the
hex viewer and the bcb6 editor sample)</li>
</ul>
<p>version 12-28-2004: december 28, 2004</p>
<ul>
<li>changed the progress event calling part in Find and FindWithWildcard to avoid a
division by zero error when working on files < 500 bytes</li>
</ul>
<p>version 12-21-2004: december 21, 2004</p>
<ul>
<li>changed PrepareFindReplaceData method to avoid an exception when
the string parameter is empty</li>
<li>TMPHexEditorEx: support for CF_HTML clipboard format</li>
</ul>
<p>version 11-12-2004: november 12, 2004</p>
<ul>
<li>changed mouse selection in insert mode, now it's more text editor-like</li>
<li>Undo and Redo disabled when ReadonlyView is True</li>
<li>TMPHexEditorEx: ole drag and drop move operation is now disabled if the editor's
ReadOnlyView property is set to True</li>
<li>some small other modifications</li>
</ul>
<p>version 10-26-2004: october 26, 2004</p>
<ul>
<li>fixed a typecasting bug in the Undo method (integer overflow)</li>
<li>added some utility functions for unsigned int64 arithmetics (AddU64, TryAddU64, SubtractU64, TrySubtractU64, MultiplyU64, TryMultiplyU64, DivideU64, TryDivideU64, ModuloU64, TryModuloU64)</li>
</ul>
<p>version 08-29-2004: august 29, 2004</p>
<ul>
<li>added ActiveFieldBackground color property</li>
<li>added print flag pfIncludeRuler in TMPHexEditorEx</li>
</ul>
<p>version 08-14-2004: august 14, 2004</p>
<ul>
<li>the caret was not set properly when switching from
hex to char pane if no data was in the editor</li>
<li>MaskedChars property added</li>
<li>changed printing in TMPHexEditorEx (color handling, pfSelectionBold meaning)</li>
</ul>
<p>version 06-15-2004: june 15, 2004</p>
<ul>
<li>added DrawDataPosition and IsDrawDataSelected
properties</li>
<li>changes in drawing/invalidating to avoid unnecessary
painting</li>
<li>OnMouseDown is now called also if offset pane or ruler
are clicked</li>
<li>if BytesPerUnit is changed, the selection is reset if
(SelCount mod BytesPerUnit) <> 0</li>
</ul>
<p>version 06-10-2004: june 10, 2004</p>
<ul>
<li>added RulerNumberBase property</li>
<li>overwritten CanFocus method due to vcl bug (see <a href=
"http://info.borland.com/devsupport/delphi/fixes/delphi4/vcl.html">
http://info.borland.com/devsupport/delphi/fixes/delphi4/vcl.html</a>,
ref 279</li>
</ul>
<p>version 06-07-2004: june 07, 2004</p>
<ul>
<li>fixed a crash ("Grid index out of range") when switching
from unicode</li>
<li>SyncView method modified to be able to synchronize the
view of editors with different data sizes/layouts, also with
offset</li>
<li>on changing TopRow/LeftCol the caret is
repositionned</li>
<li>overwritten mouse wheel handling to allow page
scrolling</li>
<li>manual handling of MaskChar property streaming due to bug
reports ("Invalid Property Value")</li>
</ul>
<p>version 05-30-2004: may 30, 2004</p>
<ul>
<li>fixed broken CanOpenFile routine (files were always
marked read-only)</li>
</ul>
<p>version 05-27-2004: may 27, 2004</p>
<ul>
<li>added IsMaxOffset property</li>
<li>the control gets focused when the mouse is clicked even
when the mouse is over the selection</li>
</ul>
<p>version 05-13-2004: may 13, 2004</p>
<ul>
<li>OnDrawCell is now also called for the top left cell</li>
<li>setting UnicodeChars to False now correctly sets
BytesPerUnit to 1</li>
</ul>
<p>version 04-18-2004: april 18, 2004</p>
<ul>
<li>parameters aBuffer and bBuffer were interchanged in the
CopyMemory call in TranslateBufferFromAnsi</li>
<li>GetOffsetString can now be called in OnGetOffsetText
without crashing (infinite recursion = stack overflow)</li>
</ul>
<p>version 01-08-2004: january 08, 2004</p>
<ul>
<li>added some explicit pointer typecasts for {$T+}
compatibility</li>
<li>removed FindTable and FindTableI properties under BCB
(BCB doesn't like array properties)</li>
</ul>
<p>version 12-16-2003: december 16, 2003</p>
<ul>
<li>setting the DataSize property is now undoable</li>
<li>added the public SetDataSizeFillByte property to be able
to control what byte is used to enlarge the data</li>
<li>now checking NoSizeChange before allowing to set
DataSize</li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -