TMPHexEditor v 06-15-2004
credits to :
- John Hamm, http://users.snapjax.com/john/
- Christophe Le Corfec for introducing the EBCDIC format and the nice idea about half byte insert/delete
- Philippe Chessa for his suggestions about AsText, AsHex and better support for the french keyboard layout
- Daniel Jensen for octal offset display and the INS-key recognition stuff
- Shmuel Zeigerman for introducing more flexible offset display formats
- Vaf, http://carradio.al.ru for reporting missing delver.inc and suggesting OnChange
- Eugene Tarasov for reporting that setting the BytesPerColumn value to 4 at design time didn't work
- FuseBurner for BytesPerUnit/RulerBytesPerUnit related suggestions
- Motzi for SyncView/ShowPositionIfNotFocused related suggestions
- Martin Hsiao for bcb compatibility and reporting some bugs when moving cursor beyond eof
- Miyu for delphi 7 defines
- Nils Hoyer for bcb testing and his help on creating a BCB6 package
- Skamnitsly S.V for reporting a bug when doubleclicking the ruler bar
- Pete Fraser for reporting problems with array properties under BCB
- Andrew Novikov for bug reports and suggestions
- Al for bug reports
- Dieter Köhler for reporting the delphi vcl related CanFocus bug
DrawDataPosition
and IsDrawDataSelected
properties BytesPerUnit
is changed, the selection is reset if (SelCount mod BytesPerUnit) <> 0 CaretKind
is ckAuto, the caret is a bottom line if ReadOnlyView
is TrueRulerNumberBase
property SyncView
modified to be able to synchronize the view of editors with different data sizes/layouts, also with offset IsMaxOffset
property OnDrawCell
is now also called for the top left cellUnicodeChars
to False now correctly sets BytesPerUnit
to 1 TranslateBufferFromAnsi
GetOffsetString
can now be called in OnGetOffsetText
without crashing (infinite recursion = stack overflow) DataSize
property is now undoableSetDataSizeFillByte
property to be able to control what byte is used to enlarge the dataNoSizeChange
before allowing to set DataSize
OnProgress
FindProgress
OnFind
, OnWildcardFind
Find
and FindWithWildcard
speeded up by using precompiled character tablesFind
and FindWithWildcard
now also fire the OnProgress
event if FindProgress
is set to trueMPHCustomCharConv
BytesPerBlock
and SeparateBlocksInCharField
properties addedDataSize
property is writeable nowOnGetOffsetText
propertyAddSelectionUndo
procedureFindWithWildcard
)SeekToEOF
GotoBookmark
method to set cursor to a bookmarked positionOnBookmarkChanged
propertyReplace
method addedTMPHexEditorEx
TMPHexEditorEx
OnDrawCell
)UnicodeChars
and UnicodeBigEndian
)DisplayStart
and DisplayEnd
functions to retrieve the data bounds currently displayedBytesPerUnit
and RulerBytesPerUnit
properties to treat words/dwords/qwords as a unitSyncView
procedure and OnSelectionChanged
property to synchronize position and selection with another editorShowPositionIfNotFocused
property to show the current position if the editor is not focusedShowRuler
, DrawGutter3D
Name | Description |
---|---|
Class EMPHexEditor | |
Class TCustomMPHexEditor | |
Class TMPHColors | |
Class TMPHexEditor |
function CheckRadixToInt(Value: string): integer; |
function CheckRadixToInt64(Value: string): int64; |
function ConvertBinToHex(aFrom, aTo: PChar; const aCount: integer; const SwapNibbles: boolean): PChar; |
function ConvertHexToBin(aFrom, aTo: PChar; const aCount: integer; const SwapNibbles: boolean; var BytesTranslated: integer): PChar; |
function GetTempName: string; |
function GridCoord(aX, aY: longint): TGridCoord; |
function IntToOctal(const Value: integer): string; |
function IntToRadix(Value: integer; Radix: byte): string; |
function IntToRadix64(Value: int64; Radix: byte): string; |
function IntToRadixLen(Value: integer; Radix, Len: byte): string; |
function IntToRadixLen64(Value: int64; Radix, Len: byte): string; |
function IsKeyDown(aKey: integer): boolean; |
function Max(a1, a2: integer): integer; |
function Min(a1, a2: integer): integer; |
function OctalToInt(const Value: string): integer; |
function RadixToInt(Value: string; Radix: byte): integer; |
function RadixToInt64(Value: string; Radix: byte): int64; |
procedure SwapWideChar(var WChar: WideChar); |
procedure TranslateBufferFromAnsi(const TType: TMPHTranslationKind; aBuffer, bBuffer: PChar; const aCount: integer); |
procedure TranslateBufferToAnsi(const TType: TMPHTranslationKind; aBuffer, bBuffer: PChar; const aCount: integer); |
function CheckRadixToInt(Value: string): integer; |
try to find the correct radix (based on prefix/suffix) and return the number, known prefixes/suffixes are:
0x<number>, 0X<number>, $<number>, <number>h, <number>H: radix 16
o<number>, O<number>, 0<number>, <number>o, <number>O: radix 8
%<number>, <number>%: radix 2
otherwise: radix 10
function CheckRadixToInt64(Value: string): int64; |
function ConvertBinToHex(aFrom, aTo: PChar; const aCount: integer; const SwapNibbles: boolean): PChar; |
translate binary data to its hex representation (see ConvertHexToBin
), (see SwapNibbles
for the meaning of the SwapNibbles value)
function ConvertHexToBin(aFrom, aTo: PChar; const aCount: integer; const SwapNibbles: boolean; var BytesTranslated: integer): PChar; |
translate a hexadecimal data representation ("a000 cc45 d3 42"...) to binary data (see SwapNibbles
for the meaning of the SwapNibbles value)
function GetTempName: string; |
get a unique filename in the temporary directory
function GridCoord(aX, aY: longint): TGridCoord; |
convert X and Y into a TGridCoord record
function IntToOctal(const Value: integer): string; |
translate an integer to an octal string (see also IntToRadix
)
function IntToRadix(Value: integer; Radix: byte): string; |
translate an integer to a radix (base) coded string, e.g.
- IntToRadix(100,16) converts into a hexadecimal (number) string
- IntToRadix(100,2) converts into a string consisting only of 0 and 1
- IntToRadix(100,8) means IntToOctal
hint: Radix must be in the range of 2..16
function IntToRadix64(Value: int64; Radix: byte): string; |
function IntToRadixLen(Value: integer; Radix, Len: byte): string; |
translate an integer to a radix coded string and left fill with 0 (see also IntToRadix
)
function IntToRadixLen64(Value: int64; Radix, Len: byte): string; |
function IsKeyDown(aKey: integer): boolean; |
check whether the given key (VK_...) is currently down
function Max(a1, a2: integer): integer; |
returns the higer of the two numbers
function Min(a1, a2: integer): integer; |
returns the lower of the two numbers
function OctalToInt(const Value: string): integer; |
translate an number string built on radix 8 into an integer (see also RadixToInt
)
function RadixToInt(Value: string; Radix: byte): integer; |
translate a radix coded number string into an integer, e.g.
- RadixToInt('0f', 16) => 15
- RadixToInt('755', 8) => 493
function RadixToInt64(Value: string; Radix: byte): int64; |
procedure SwapWideChar(var WChar: WideChar); |
swap lo and high byte of a widechar
procedure TranslateBufferFromAnsi(const TType: TMPHTranslationKind; aBuffer, bBuffer: PChar; const aCount: integer); |
translate data from Ansi to a different character set (see also TMPHTranslationKind
)
- TType: translate to this character set
- aBuffer: pointer to source data
- bBuffer: pointer to target data, must be allocated (may equal to aBuffer)
- aCount: number of bytes to translate
procedure TranslateBufferToAnsi(const TType: TMPHTranslationKind; aBuffer, bBuffer: PChar; const aCount: integer); |
translate data from a different character set to Ansi (see also TranslateBufferFromAnsi
)
PMPHFindTable = ^TMPHFindTable |
TMPHBookmark = record mPosition: integer; mInCharField: boolean; end |
TMPHBookmarks = array[0..9] of TMPHBookmark |
TMPHCharConv = array[TMPHCharConvType] of TMPHCharConvTable |
TMPHCharConvTable = array[0..255] of Char |
TMPHDrawCellEvent = procedure(Sender: TObject; ACanvas: TCanvas; ACol, ARow: Integer; var AWideText: WideString; ARect: TRect; var ADefaultDraw: Boolean) of object |
TMPHFindEvent = procedure(Sender: TObject; const Pattern: PChar; const PatLength: integer; const SearchFrom, SearchUntil: integer; const IgnoreCase: boolean; const Wildcard: Char; var FoundPos: Integer) of object |
TMPHFindTable = array[#0..#255] of Char |
TMPHGetOffsetTextEvent = procedure(Sender: TObject; const Number: int64; var OffsetText: string) of object |
TMPHOffsetFormat = record Format: string; Prefix, Suffix: string; MinWidth: integer; Flags: TMPHOffsetFormatFlags; Radix, _BytesPerUnit: byte; end |
TMPHOffsetFormatFlags = set of TMPHOffsetFormatFlag |
TMPHProgressEvent = procedure(Sender: TObject; const ProgressType: TMPHProgressKind; const aName: TFileName; const Percent: byte; var Cancel: boolean) of object |
TMPHUndoFlags = set of TMPHUndoFlag |
PMPHFindTable = ^TMPHFindTable |
precompiled converted character table types for faster data search
TMPHBookmark = record mPosition: integer; mInCharField: boolean; end |
bookmark record:
defined by pressing SHIFT+CTRL+[0..9], goto bookmark by pressing CTRL+[0..9]
- mPosition: file position
- mInCharField: cursor in character pane (True) or hex number pane
TMPHBookmarks = array[0..9] of TMPHBookmark |
array of bookmarks, representing keys 0..9
TMPHCharConv = array[TMPHCharConvType] of TMPHCharConvTable |
character conversion data storage
TMPHCharConvTable = array[0..255] of Char |
character conversion table
TMPHDrawCellEvent = procedure(Sender: TObject; ACanvas: TCanvas; ACol, ARow: Integer; var AWideText: WideString; ARect: TRect; var ADefaultDraw: Boolean) of object |
owner draw event type. parameters:
- Sender: the hex editor
- ACanvas: the editor's canvas
- ACol, ARow: the position to be drawn
- AWideText: the text to be drawn
- ARect: the cell rectangle
- ADefaultDraw: if set to True (default), default drawing isperformed after the event handler returns. if set to false, the event handler must do all cell painting.
handler for custom search routines
- Pattern: the data to find - PatLength: length of the data to find - SearchFrom: first search position - SearchUntil: last search position - IgnoreCase: case sensitive? - Wilcard: Wildcard character (only used by FindWithWildcard) - FoundPos: result, set to -1 if data was not found
TMPHFindTable = array[#0..#255] of Char |
TMPHGetOffsetTextEvent = procedure(Sender: TObject; const Number: int64; var OffsetText: string) of object |
retrieve the "line number" to display by the application
- Number: the number to convert to text - OffsetText: the resulting text output
TMPHOffsetFormat = record Format: string; Prefix, Suffix: string; MinWidth: integer; Flags: TMPHOffsetFormatFlags; Radix, _BytesPerUnit: byte; end |
offset format record
TMPHOffsetFormatFlags = set of TMPHOffsetFormatFlag |
set of the above flags
TMPHProgressEvent = procedure(Sender: TObject; const ProgressType: TMPHProgressKind; const aName: TFileName; const Percent: byte; var Cancel: boolean) of object |
progress event handler, used in OnProgress
- ProgressType: am i loading or saving? (see TMPHProgressKind
)
- aName: name of file to be load from/saved to
- Percent: current progress (0..100)
- Cancel: if set to true, the load/save procedure will abort (no meaning in Find* methods)
TMPHUndoFlags = set of TMPHUndoFlag |
set of undo flags
TMPHCaretKind | ||
look of the editor's caret: - ckFull: full block - ckLeft: left line - ckBottom: bottom line - ckAuto: left line if InsertMode , full block if overwrite, bottom line if ReadOnlyView | ||
ckFull | ||
ckLeft | ||
ckBottom | ||
ckAuto |
TMPHCharConvType | ||
character conversion type | ||
cctFromAnsi | ||
cctToAnsi |
TMPHOffsetFormatFlag | ||
offset format flags | ||
offCalcWidth | ||
offCalcRow | calculate minwidth depending on data size (width field = '-') | |
offCalcColumn | calculate _BytesPerUnit depending on bytes per row (=real line numbers) | |
offBytesPerUnit | " bytes per column (= column numbers) |
TMPHProgressKind | ||
action indicator used in OnProgress event handler:- pkLoad: loading data - pkSave: saving data - pkFind: finding | ||
pkLoad | ||
pkSave | ||
pkFind |
TMPHTranslationKind | ||
how to show a file's content in the character pane of the editor: - tkAsIs: leave as is (current windows code page) - tkDos8: current dos codepage - tkASCII: 7 bit ascii - tkMac: macintosh charset (translation always from/to ms cp 1252 (ms latin1)!! - tkBCD: ibm ebcdic codepage 38 (translation always from/to ms cp 1252 (ms latin1)!! - tkCustom: custom codepage stored in MPHCustomCharConv | ||
tkAsIs | ||
tkDos8 | ||
tkASCII | ||
tkMac | ||
tkBCD | ||
tkCustom |
TMPHUndoFlag | ||
flags internally used in the undo storage | ||
ufKindBytesChanged | kind of undo storage | |
ufKindByteRemoved | ||
ufKindInsertBuffer | ||
ufKindReplace | ||
ufKindAppendBuffer | ||
ufKindNibbleInsert | ||
ufKindNibbleDelete | ||
ufKindConvert | ||
ufKindSelection | ||
ufKindCombined | store a selection | |
ufKindAllData | ||
ufFlagByte1Changed | additional information | |
ufFlagByte2Changed | ||
ufFlagModified | ||
ufFlag2ndByteCol | ||
ufFlagInCharField | ||
ufFlagHasSelection | ||
ufFlagInsertMode | ||
ufFlagIsUnicode | ||
ufFlagIsUnicodeBigEndian | ||
ufFlagHasDescription |
CM_INTUPDATECARET = CM_BASE + $100 |
CM_SELECTIONCHANGED = CM_BASE + $101 |
MPHOffsetDec = 'a:|' |
MPHOffsetHex = '-!10:0x|' |
MPHOffsetOct = '0!8:o|' |
MPHTranslationDesc : array[TMPHTranslationKind] of string = (MPH_TK_ASIS, MPH_TK_DOS8, MPH_TK_ASCII7, MPH_TK_MAC, MPH_TK_BCD38, MPH_TK_CUSTOM) |
MPHTranslationDescShort : array[TMPHTranslationKind] of string = (MPH_TK_ASIS_S, MPH_TK_DOS8_S, MPH_TK_ASCII7_S, MPH_TK_MAC_S, MPH_TK_BCD38_S, MPH_TK_CUSTOM_S) |
MPH_CCONV_BCD38 : TMPHCharConv = ( (#$00, #$01, #$02, #$03, #$37, #$2D, #$2E, #$2F, #$16, #$05, #$25, #$0B, #$0C, #$0D, #$0E, #$0F, #$10, #$11, #$12, #$13, #$3C, #$3D, #$32, #$26, #$18, #$19, #$3F, #$27, #$1C, #$1D, #$1E, #$1F, #$40, #$4F, #$7F, #$7B, #$5B, #$6C, #$50, #$7D, #$4D, #$5D, #$5C, #$4E, #$6B, #$60, #$4B, #$61, #$F0, #$F1, #$F2, #$F3, #$F4, #$F5, #$F6, #$F7, #$F8, #$F9, #$7A, #$5E, #$4C, #$7E, #$6E, #$6F, #$7C, #$C1, #$C2, #$C3, #$C4, #$C5, #$C6, #$C7, #$C8, #$C9, #$D1, #$D2, #$D3, #$D4, #$D5, #$D6, #$D7, #$D8, #$D9, #$E2, #$E3, #$E4, #$E5, #$E6, #$E7, #$E8, #$E9, #$4A, #$E0, #$5A, #$5F, #$6D, #$79, #$81, #$82, #$83, #$84, #$85, #$86, #$87, #$88, #$89, #$91, #$92, #$93, #$94, #$95, #$96, #$97, #$98, #$99, #$A2, #$A3, #$A4, #$A5, #$A6, #$A7, #$A8, #$A9, #$C0, #$20, #$D0, #$A1, #$07, #$80, #$22, #$62, #$63, #$64, #$65, #$66, #$67, #$68, #$69, #$8A, #$8B, #$8C, #$8D, #$8E, #$8F, #$90, #$77, #$2C, #$0A, #$3B, #$3E, #$1A, #$70, #$71, #$72, #$9A, #$9B, #$9C, #$9D, #$9E, #$9F, #$A0, #$15, #$73, #$74, #$75, #$76, #$6A, #$78, #$09, #$3A, #$AA, #$AB, #$AC, #$AD, #$AE, #$AF, #$B0, #$B1, #$B2, #$B3, #$B4, #$B5, #$B6, #$B7, #$B8, #$B9, #$BA, #$BB, #$BC, #$BD, #$BE, #$BF, #$23, #$41, #$42, #$43, #$44, #$45, #$46, #$47, #$48, #$49, #$CA, #$CB, #$CC, #$CD, #$CE, #$CF, #$1B, #$24, #$06, #$14, #$28, #$2B, #$21, #$17, #$51, #$52, #$DA, #$DB, #$DC, #$DD, #$DE, #$DF, #$2A, #$E1, #$53, #$54, #$55, #$56, #$57, #$58, #$59, #$29, #$EA, #$EB, #$EC, #$ED, #$EE, #$EF, #$30, #$31, #$08, #$33, #$34, #$35, #$36, #$04, #$38, #$39, #$FA, #$FB, #$FC, #$FD, #$FE, #$FF ), (#$00, #$01, #$02, #$03, #$F7, #$09, #$D2, #$7F, #$F2, #$A8, #$93, #$0B, #$0C, #$0D, #$0E, #$0F, #$10, #$11, #$12, #$13, #$D3, #$A1, #$08, #$D7, #$18, #$19, #$96, #$D0, #$1C, #$1D, #$1E, #$1F, #$7C, #$D6, #$81, #$C0, #$D1, #$0A, #$17, #$1B, #$D4, #$E9, #$E0, #$D5, #$92, #$05, #$06, #$07, #$F0, #$F1, #$16, #$F3, #$F4, #$F5, #$F6, #$04, #$F8, #$F9, #$A9, #$94, #$14, #$15, #$95, #$1A, #$20, #$C1, #$C2, #$C3, #$C4, #$C5, #$C6, #$C7, #$C8, #$C9, #$5B, #$2E, #$3C, #$28, #$2B, #$21, #$26, #$D8, #$D9, #$E2, #$E3, #$E4, #$E5, #$E6, #$E7, #$E8, #$5D, #$24, #$2A, #$29, #$3B, #$5E, #$2D, #$2F, #$82, #$83, #$84, #$85, #$86, #$87, #$88, #$89, #$A6, #$2C, #$25, #$5F, #$3E, #$3F, #$97, #$98, #$99, #$A2, #$A3, #$A4, #$A5, #$91, #$A7, #$60, #$3A, #$23, #$40, #$27, #$3D, #$22, #$80, #$61, #$62, #$63, #$64, #$65, #$66, #$67, #$68, #$69, #$8A, #$8B, #$8C, #$8D, #$8E, #$8F, #$90, #$6A, #$6B, #$6C, #$6D, #$6E, #$6F, #$70, #$71, #$72, #$9A, #$9B, #$9C, #$9D, #$9E, #$9F, #$A0, #$7E, #$73, #$74, #$75, #$76, #$77, #$78, #$79, #$7A, #$AA, #$AB, #$AC, #$AD, #$AE, #$AF, #$B0, #$B1, #$B2, #$B3, #$B4, #$B5, #$B6, #$B7, #$B8, #$B9, #$BA, #$BB, #$BC, #$BD, #$BE, #$BF, #$7B, #$41, #$42, #$43, #$44, #$45, #$46, #$47, #$48, #$49, #$CA, #$CB, #$CC, #$CD, #$CE, #$CF, #$7D, #$4A, #$4B, #$4C, #$4D, #$4E, #$4F, #$50, #$51, #$52, #$DA, #$DB, #$DC, #$DD, #$DE, #$DF, #$5C, #$E1, #$53, #$54, #$55, #$56, #$57, #$58, #$59, #$5A, #$EA, #$EB, #$EC, #$ED, #$EE, #$EF, #$30, #$31, #$32, #$33, #$34, #$35, #$36, #$37, #$38, #$39, #$FA, #$FB, #$FC, #$FD, #$FE, #$FF ) ) |
MPH_CCONV_MAC : TMPHCharConv = ( (#$00, #$01, #$02, #$03, #$04, #$05, #$06, #$07, #$08, #$09, #$0A, #$0B, #$0C, #$0D, #$0E, #$0F, #$10, #$11, #$12, #$13, #$14, #$15, #$16, #$17, #$18, #$19, #$1A, #$1B, #$1C, #$1D, #$1E, #$1F, #$20, #$21, #$22, #$23, #$24, #$25, #$26, #$27, #$28, #$29, #$2A, #$2B, #$2C, #$2D, #$2E, #$2F, #$30, #$31, #$32, #$33, #$34, #$35, #$36, #$37, #$38, #$39, #$3A, #$3B, #$3C, #$3D, #$3E, #$3F, #$40, #$41, #$42, #$43, #$44, #$45, #$46, #$47, #$48, #$49, #$4A, #$4B, #$4C, #$4D, #$4E, #$4F, #$50, #$51, #$52, #$53, #$54, #$55, #$56, #$57, #$58, #$59, #$5A, #$5B, #$5C, #$5D, #$5E, #$5F, #$60, #$61, #$62, #$63, #$64, #$65, #$66, #$67, #$68, #$69, #$6A, #$6B, #$6C, #$6D, #$6E, #$6F, #$70, #$71, #$72, #$73, #$74, #$75, #$76, #$77, #$78, #$79, #$7A, #$7B, #$7C, #$7D, #$7E, #$7F, #$C4, #$C5, #$AB, #$C9, #$D1, #$F7, #$DC, #$E1, #$E0, #$E2, #$E4, #$E3, #$AC, #$B0, #$AA, #$F8, #$D5, #$CE, #$C3, #$CF, #$D3, #$D4, #$D2, #$DB, #$DA, #$DD, #$F6, #$F5, #$FA, #$F9, #$FB, #$FC, #$A0, #$C1, #$A2, #$A3, #$DF, #$B4, #$B6, #$A4, #$C6, #$A9, #$BB, #$C7, #$C2, #$AD, #$A8, #$FF, #$A1, #$B1, #$B2, #$B3, #$A5, #$B5, #$A6, #$B7, #$B8, #$B9, #$BC, #$C8, #$BA, #$BD, #$CA, #$C0, #$CB, #$E7, #$E5, #$CC, #$80, #$81, #$AE, #$82, #$E9, #$83, #$E6, #$E8, #$ED, #$EA, #$EB, #$EC, #$D0, #$84, #$F1, #$EE, #$EF, #$CD, #$85, #$D7, #$AF, #$F4, #$F2, #$F3, #$86, #$D9, #$DE, #$A7, #$88, #$87, #$89, #$8B, #$8A, #$8C, #$BE, #$8D, #$8F, #$8E, #$90, #$91, #$93, #$92, #$94, #$95, #$F0, #$96, #$98, #$97, #$99, #$9B, #$9A, #$D6, #$BF, #$9D, #$9C, #$9E, #$9F, #$FD, #$FE, #$D8 ), (#$00, #$01, #$02, #$03, #$04, #$05, #$06, #$07, #$08, #$09, #$0A, #$0B, #$0C, #$0D, #$0E, #$0F, #$10, #$11, #$12, #$13, #$14, #$15, #$16, #$17, #$18, #$19, #$1A, #$1B, #$1C, #$1D, #$1E, #$1F, #$20, #$21, #$22, #$23, #$24, #$25, #$26, #$27, #$28, #$29, #$2A, #$2B, #$2C, #$2D, #$2E, #$2F, #$30, #$31, #$32, #$33, #$34, #$35, #$36, #$37, #$38, #$39, #$3A, #$3B, #$3C, #$3D, #$3E, #$3F, #$40, #$41, #$42, #$43, #$44, #$45, #$46, #$47, #$48, #$49, #$4A, #$4B, #$4C, #$4D, #$4E, #$4F, #$50, #$51, #$52, #$53, #$54, #$55, #$56, #$57, #$58, #$59, #$5A, #$5B, #$5C, #$5D, #$5E, #$5F, #$60, #$61, #$62, #$63, #$64, #$65, #$66, #$67, #$68, #$69, #$6A, #$6B, #$6C, #$6D, #$6E, #$6F, #$70, #$71, #$72, #$73, #$74, #$75, #$76, #$77, #$78, #$79, #$7A, #$7B, #$7C, #$7D, #$7E, #$7F, #$C4, #$C5, #$C7, #$C9, #$D1, #$D6, #$DC, #$E1, #$E0, #$E2, #$E4, #$E3, #$E5, #$E7, #$E9, #$E8, #$EA, #$EB, #$ED, #$EC, #$EE, #$EF, #$F1, #$F3, #$F2, #$F4, #$F6, #$F5, #$FA, #$F9, #$FB, #$FC, #$A0, #$B0, #$A2, #$A3, #$A7, #$B4, #$B6, #$DF, #$AE, #$A9, #$8E, #$82, #$8C, #$AD, #$C6, #$D8, #$8D, #$B1, #$B2, #$B3, #$A5, #$B5, #$A6, #$B7, #$B8, #$B9, #$BC, #$AA, #$BA, #$BD, #$E6, #$F8, #$BF, #$A1, #$AC, #$92, #$80, #$81, #$A8, #$AB, #$BB, #$83, #$BE, #$C0, #$C3, #$D5, #$91, #$93, #$D0, #$84, #$96, #$94, #$95, #$90, #$F7, #$D7, #$FF, #$DD, #$98, #$97, #$86, #$99, #$DE, #$A4, #$88, #$87, #$89, #$8B, #$8A, #$C2, #$CA, #$C1, #$CB, #$C8, #$CD, #$CE, #$CF, #$CC, #$D3, #$D4, #$F0, #$D2, #$DA, #$DB, #$D9, #$9B, #$9A, #$85, #$8F, #$9D, #$9C, #$9E, #$9F, #$FD, #$FE, #$AF ) ) |
MPH_FILEIO_BLOCKSIZE = $F000 |
MPH_TK_ASCII7 = 'ASCII 7 Bit' |
MPH_TK_ASCII7_S = 'ASC' |
MPH_TK_ASIS = 'Windows' |
MPH_TK_ASIS_S = 'WIN' |
MPH_TK_BCD38 = 'EBCDIC Codepage 38' |
MPH_TK_BCD38_S = 'BCD' |
MPH_TK_CUSTOM = 'Custom Translation' |
MPH_TK_CUSTOM_S = 'Cust' |
MPH_TK_DOS8 = 'Dos 8 Bit' |
MPH_TK_DOS8_S = 'DOS' |
MPH_TK_MAC = 'Macintosh' |
MPH_TK_MAC_S = 'MAC' |
MPH_UC = 'Unicode Little Endian' |
MPH_UC_BE = 'Unicode Big Endian' |
MPH_UC_BE_S = 'UCBE' |
MPH_UC_S = 'UCLE' |
CM_INTUPDATECARET = CM_BASE + $100 |
this message is posted to the hex editor when it should update the caret position
CM_SELECTIONCHANGED = CM_BASE + $101 |
this message is posted when an OnSelectionChange event is to be fired
MPHOffsetDec = 'a:|' |
standard offset format: decimal
MPHOffsetHex = '-!10:0x|' |
standard offset format: hex, auto min width, prefixed by 0x
MPHOffsetOct = '0!8:o|' |
standard offset format: octal, suffixed by a small "o"
MPHTranslationDesc : array[TMPHTranslationKind] of string = (MPH_TK_ASIS, MPH_TK_DOS8, MPH_TK_ASCII7, MPH_TK_MAC, MPH_TK_BCD38, MPH_TK_CUSTOM) |
long descriptions of the different translations (e.g. for menues)
MPHTranslationDescShort : array[TMPHTranslationKind] of string = (MPH_TK_ASIS_S, MPH_TK_DOS8_S, MPH_TK_ASCII7_S, MPH_TK_MAC_S, MPH_TK_BCD38_S, MPH_TK_CUSTOM_S) |
short descriptions of the different translations (e.g. for status bars)
ebcdic cp38..ms ansi conversion
macintosh..ms ansi conversion
MPH_FILEIO_BLOCKSIZE = $F000 |
block size in file i/o
MPH_TK_ASCII7 = 'ASCII 7 Bit' |
tkASCII
MPH_TK_ASCII7_S = 'ASC' |
tkASCII
MPH_TK_ASIS = 'Windows' |
tkAsIs
MPH_TK_ASIS_S = 'WIN' |
tkAsIs
MPH_TK_BCD38 = 'EBCDIC Codepage 38' |
tkBCD
MPH_TK_BCD38_S = 'BCD' |
tkBCD
MPH_TK_CUSTOM = 'Custom Translation' |
tkCustom
MPH_TK_CUSTOM_S = 'Cust' |
tkCustom
MPH_TK_DOS8 = 'Dos 8 Bit' |
tkDos8
MPH_TK_DOS8_S = 'DOS' |
tkDos8
MPH_TK_MAC = 'Macintosh' |
tkMac
MPH_TK_MAC_S = 'MAC' |
tkMac
MPH_UC = 'Unicode Little Endian' |
unicode
MPH_UC_BE = 'Unicode Big Endian' |
unicode be
MPH_UC_BE_S = 'UCBE' |
unicode be
MPH_UC_S = 'UCLE' |
unicode
MPHCustomCharConv: TMPHCharConv |
MPHCustomCharConv: TMPHCharConv |
this character conversion is used in translations from tkAsIs to tkCustom (see TMPHTranslationKind
)
(C)1997-2004 markus stephany, merkes@mirkes.de, all rights reserved.
06-15-2004