Units
Class Hierarchy
Classes, Interfaces and Objects
Types
Enumerations
Variables
Constants
Functions and Procedures
Identifiers

Class TCustomMPHexEditor

Unit

MPHexEditor

Declaration

type TCustomMPHexEditor = class(TCustomGrid)

Description

protected ancestor of the hex editor components

Methods

Overview

Publicprocedure AddSelectionUndo(const AStart, ACount: integer);
Protectedprocedure AdjustMetrics;
Publicprocedure AppendBuffer(aBuffer: PChar; const aSize: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);
Protectedprocedure BookmarkChanged; virtual;
Publicfunction BufferFromFile(const aPos: integer; var aCount: integer): PChar;
Protectedprocedure Changed; virtual;
Publicprocedure CombineUndo(const aCount: integer; const sDesc: string = '');
Publicprocedure ConvertRange(const aFrom, aTo: integer; const aTransFrom, aTransTo: TMPHTranslationKind; const UndoDesc: string = '');
Publicprocedure CreateEmptyFile(const TempName: string);
Protectedprocedure DefineProperties(Filer: TFiler); override;
Publicfunction DeleteNibble(const aPos: integer; const HighNibble: boolean; const UndoDesc: string = ''): boolean;
Publicprocedure DeleteSelection(const UndoDesc: string = '');
Publicfunction DisplayEnd: integer;
Publicfunction DisplayStart: integer;
Protectedprocedure DoSetCellWidth(const Index: integer; Value: integer);
Protectedfunction DropPosition: integer;
Publicfunction Find(aBuffer: PChar; aCount: integer; const aStart, aEnd: integer; const IgnoreCase: boolean): integer;
Publicfunction FindWithWildcard(aBuffer: PChar; aCount: integer; const aStart, aEnd: integer; const IgnoreCase: boolean; const Wildcard: char): integer;
Publicfunction GetAnyOffsetString(const Position: integer): string; virtual;
Publicfunction GetCursorPos: integer;
Protectedfunction GetDataSize: integer;
Publicfunction GetOffsetString(const Position: cardinal): string; virtual;
Protectedfunction GetSelectionAsHex: string;
Protectedfunction GetSelectionAsText: string;
Publicfunction GetTopLeftPosition(var oInCharField: boolean): integer;
Publicfunction GotoBookmark(const Index: integer): boolean;
Publicprocedure HideDragCell;
Publicprocedure InsertBuffer(aBuffer: PChar; const aSize, aPos: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);
Publicfunction InsertNibble(const aPos: integer; const HighNibble: boolean; const UndoDesc: string = ''): boolean;
Publicfunction IsSelected(const APosition: integer): boolean;
Publicprocedure LoadFromFile(const Filename: string);
Publicprocedure LoadFromStream(Strm: TStream);
Protectedprocedure OldCursor;
Publicfunction PrepareFindReplaceData(StrData: string; const IgnoreCase, IsText: boolean): string;
Protectedprocedure PrepareOverwriteDiskFile; virtual;
Publicprocedure ReadBuffer(var Buffer; const Index, Count: Integer);
Protectedprocedure ReadMaskChar(Reader: TReader);
Protectedprocedure ReadMaskChar_I(Reader: TReader);
Publicfunction Redo: boolean;
Publicfunction Replace(aBuffer: PChar; aPosition, aOldCount, aNewCount: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = False): integer;
Publicprocedure ReplaceSelection(aBuffer: PChar; aSize: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);
Publicprocedure ResetSelection(const aDraw: boolean);
Publicprocedure ResetUndo;
Publicfunction RowHeight: integer;
Publicprocedure SaveRangeToStream(Strm: TStream; const APosition, ACount: integer);
Publicprocedure SaveToFile(const Filename: string; const aUnModify: boolean = True);
Publicprocedure SaveToStream(Strm: TStream);
Publicfunction Seek(const aOffset, aOrigin: integer): integer;
Publicprocedure SeekToEOF;
Publicprocedure SelectAll;
Protectedprocedure SetSelectionAsHex(const s: string);
Protectedprocedure SetSelectionAsText(const s: string);
Publicprocedure SetTopLeftPosition(const aPosition: integer; const aInCharField: boolean);
Publicfunction ShowDragCell(const X, Y: integer): integer;
Protectedprocedure Stream2Stream(strFrom, strTo: TStream; const Operation: TMPHProgressKind; const Count: integer = -1);
Publicprocedure SyncView(Source: TCustomMPHexEditor; SyncOffset: integer = 0);
Publicfunction TranslateFromAnsiChar(const aByte: byte): char;
Publicfunction TranslateToAnsiChar(const aByte: byte): char;
Publicfunction Undo: boolean;
Publicfunction UndoBeginUpdate: integer; virtual;
Publicfunction UndoEndUpdate: integer; virtual;
Publicprocedure UpdateGetOffsetText;
Protectedprocedure WaitCursor;
Publicprocedure WriteBuffer(const Buffer; const Index, Count: Integer); virtual;
Protectedprocedure WriteMaskChar_I(Writer: TWriter);

Description

Publicprocedure AddSelectionUndo(const AStart, ACount: integer);

store a selection as undo record, so you can restore the selection start and end by using Undo. this can be useful e.g. to show position of replaced data

Protectedprocedure AdjustMetrics;

adjust cell widths/heigths depending on font, offset format, bytes per row/column...

Publicprocedure AppendBuffer(aBuffer: PChar; const aSize: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);

append some data at the end of the data buffer

Protectedprocedure BookmarkChanged; virtual;

fire OnBookmarkChanged

Publicfunction BufferFromFile(const aPos: integer; var aCount: integer): PChar;

returns a buffer containing parts of the data buffer's contents. the buffer is allocated in this routine and must be freed by the caller

Protectedprocedure Changed; virtual;

call changed on every undo creation for OnChange event

Publicprocedure CombineUndo(const aCount: integer; const sDesc: string = '');

combine two or more changes, so Undo will discard the at once

Publicprocedure ConvertRange(const aFrom, aTo: integer; const aTransFrom, aTransTo: TMPHTranslationKind; const UndoDesc: string = '');

convert a part of the data buffer's content from one character table to a different one

Publicprocedure CreateEmptyFile(const TempName: string);

empty the data buffer and set the filename (e.g. "Untitled")

Protectedprocedure DefineProperties(Filer: TFiler); override;

 

Publicfunction DeleteNibble(const aPos: integer; const HighNibble: boolean; const UndoDesc: string = ''): boolean;

delete 4 bits (=half byte = nibble) from the data buffer (see also InsertNibble)

Publicprocedure DeleteSelection(const UndoDesc: string = '');

delete the currently selected data

Publicfunction DisplayEnd: integer;

return the offset of the last displayed data

Publicfunction DisplayStart: integer;

return the offset of the first displayed data

Protectedprocedure DoSetCellWidth(const Index: integer; Value: integer);

 

Protectedfunction DropPosition: integer;

returns the drop file position after a drag'n'drop operation

Publicfunction Find(aBuffer: PChar; aCount: integer; const aStart, aEnd: integer; const IgnoreCase: boolean): integer;

searches for text or data in the data buffer, returns the find position (-1, if data have not been found):

- aBuffer: data to search for
- aCount: size of data in aBuffer
- aStart: start search at this position
- aEnd: searches up to this position
- IgnoreCase: if True, lowercase and uppercase characters are treated as if they were equal
- SearchText: if True, the current Translation is taken into account when searching textual data

NOTE: call PrepareFindReplaceData before the first Find call

Publicfunction FindWithWildcard(aBuffer: PChar; aCount: integer; const aStart, aEnd: integer; const IgnoreCase: boolean; const Wildcard: char): integer;

searches for text or data in the data buffer using a wildcard character returns the find position (-1, if data have not been found):

- aBuffer: data to search for
- aCount: size of data in aBuffer
- aStart: start search at this position
- aEnd: searches up to this position
- IgnoreCase: if True, lowercase and uppercase characters are treated as if they were equal
- SearchText: if True, the current Translation is taken into account when searching textual data
- Wildcard: this character is a placeholder for any character

NOTE: call PrepareFindReplaceData before the first FindWithWildcard call

Publicfunction GetAnyOffsetString(const Position: integer): string; virtual;

returns the given position as it would be drawn in the offset gutter, exception: if OffsetFormat is set to an empty string, returns the hexadecimal representation of the Position value (see also GetOffsetString)

Publicfunction GetCursorPos: integer;

get the current data position (depending on the cursor/caret)

Protectedfunction GetDataSize: integer;

get the size of the contained data

Publicfunction GetOffsetString(const Position: cardinal): string; virtual;

returns the given position as it would be drawn in the offset gutter, see also OffsetFormat

Protectedfunction GetSelectionAsHex: string;

returns the current selection in hex format ('00010203...') as string, uses SwapNibbles

Protectedfunction GetSelectionAsText: string;

returns a string containing the currently selected data

Publicfunction GetTopLeftPosition(var oInCharField: boolean): integer;

returns the data position of the top left cell and also whether the caret is in the character pane, see also SetTopLeftPosition

Publicfunction GotoBookmark(const Index: integer): boolean;

call this procedure to navigate to a bookmarked position

Publicprocedure HideDragCell;

hide the drop position marker (see also ShowDragCell)

Publicprocedure InsertBuffer(aBuffer: PChar; const aSize, aPos: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);

insert some data at the specified position into the data buffer

Publicfunction InsertNibble(const aPos: integer; const HighNibble: boolean; const UndoDesc: string = ''): boolean;

insert 4 bits (0000) into the data buffer (see also DeleteNibble)

Publicfunction IsSelected(const APosition: integer): boolean;

is the given position part of the selection?

Publicprocedure LoadFromFile(const Filename: string);

load the contents of a file into the data buffer

Publicprocedure LoadFromStream(Strm: TStream);

load the contents of a stream into the data buffer

Protectedprocedure OldCursor;

reset the Cursor to the previous value (see also WaitCursor)

Publicfunction PrepareFindReplaceData(StrData: string; const IgnoreCase, IsText: boolean): string;

 

Protectedprocedure PrepareOverwriteDiskFile; virtual;

allows descendants to take special action if contents are to be saved to the file from where the data was load

Publicprocedure ReadBuffer(var Buffer; const Index, Count: Integer);

read data into a buffer

Protectedprocedure ReadMaskChar(Reader: TReader);

 

Protectedprocedure ReadMaskChar_I(Reader: TReader);

 

Publicfunction Redo: boolean;

discard the last undo action (only one single redo is possible)

Publicfunction Replace(aBuffer: PChar; aPosition, aOldCount, aNewCount: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = False): integer;

replace some amount of data

Publicprocedure ReplaceSelection(aBuffer: PChar; aSize: integer; const UndoDesc: string = ''; const MoveCursor: Boolean = True);

replace the currently selected data with some other data

Publicprocedure ResetSelection(const aDraw: boolean);

remove selection state from all data

Publicprocedure ResetUndo;

free the undo storage (discard all possible undo steps)

Publicfunction RowHeight: integer;

returns the height of one row in pixels

Publicprocedure SaveRangeToStream(Strm: TStream; const APosition, ACount: integer);

save a range of bytes to a stream

Publicprocedure SaveToFile(const Filename: string; const aUnModify: boolean = True);

save the contents of the data buffer to a file

Publicprocedure SaveToStream(Strm: TStream);

save the contents of the data buffer into a stream

Publicfunction Seek(const aOffset, aOrigin: integer): integer;

set the current position (like TStream.Seek)

Publicprocedure SeekToEOF;

seek behind the last position if InsertMode = True, goto last position otherwise

Publicprocedure SelectAll;

select all data

Protectedprocedure SetSelectionAsHex(const s: string);

replace the current selection by a string containing data in hex format ('00 01 02 03' or similar), uses SwapNibbles

Protectedprocedure SetSelectionAsText(const s: string);

replaces the currently selected data with the string's contents

Publicprocedure SetTopLeftPosition(const aPosition: integer; const aInCharField: boolean);

set top left cell to the given data position and also whether the caret is in the character pane (see also GetTopLeftPosition)

Publicfunction ShowDragCell(const X, Y: integer): integer;

show a drop position marker on the cell at the given mouse cursor position (see also HideDragCell)

Protectedprocedure Stream2Stream(strFrom, strTo: TStream; const Operation: TMPHProgressKind; const Count: integer = -1);

copy a stream to a second one and fire the OnProgress handler

Publicprocedure SyncView(Source: TCustomMPHexEditor; SyncOffset: integer = 0);

synchronize another TCustomMPHexEditor view (top, left, selection), the optional SyncOffset parameter may be used for a different viewpoint

Publicfunction TranslateFromAnsiChar(const aByte: byte): char;

translate a byte from Windows Codepage to the current Translation (see also TranslateToAnsiChar)

Publicfunction TranslateToAnsiChar(const aByte: byte): char;

translate a byte from the current Translation to the Windows Codepage (see also TranslateFromAnsiChar)

Publicfunction Undo: boolean;

undo the last modification, multiple undos are possible

Publicfunction UndoBeginUpdate: integer; virtual;

each call to UndoBeginUpdate increments an internal counter that prevents using undo storage and also disables undo functionality (see also UndoEndUpdate)

Publicfunction UndoEndUpdate: integer; virtual;

each call to UndoEndUpdate decrements an internal counter that prevents using undo storage and also disables undo functionality. the return value is the value of this counter. if the counter is reset to zero, undo creation is permitted again (see also UndoBeginUpdate)

Publicprocedure UpdateGetOffsetText;

call this function if the external offset formatting changed (see OnGetOffsetText)

Protectedprocedure WaitCursor;

store the current Cursor and set it to crHourGlass (see also OldCursor)

Publicprocedure WriteBuffer(const Buffer; const Index, Count: Integer); virtual;

write a buffer to the file data

Protectedprocedure WriteMaskChar_I(Writer: TWriter);

 

Properties

Overview

Protectedproperty AllowInsertMode: boolean;
Publicproperty AsHex: string;
Publicproperty AsText: string;
Publicproperty Bookmark[Index: byte]: TMPHBookmark;
Protectedproperty BookmarkBitmap: TBitmap;
Publicproperty ByteChanged[index: integer]: boolean;
Protectedproperty BytesPerBlock: Integer;
Protectedproperty BytesPerColumn: integer;
Protectedproperty BytesPerRow: integer;
Protectedproperty BytesPerUnit: integer;
Publicproperty CanRedo: boolean;
Publicproperty CanUndo: boolean;
Publicproperty Canvas;
Protectedproperty CaretKind: TMPHCaretKind;
Publicproperty Col;
Publicproperty ColCountRO: integer;
Protectedproperty Colors: TMPHColors;
Publicproperty CurrentValue: integer;
Publicproperty Data[Index: integer]: Byte;
Publicproperty DataSize: integer;
Publicproperty DrawDataPosition: integer;
Protectedproperty DrawGridLines: boolean;
Protectedproperty DrawGutter3D: boolean;
Publicproperty FastPointer: PByteArray;
Publicproperty Filename: string;
Protectedproperty FindProgress: boolean;
Publicproperty FindTable: TMPHFindTable;
Publicproperty FindTableI: TMPHFindTable;
Protectedproperty FocusFrame: boolean;
Protectedproperty GraySelectionIfNotFocused: boolean;
Protectedproperty GutterWidth: integer;
Publicproperty HasFile: boolean;
Protectedproperty HexLowerCase: boolean;
Protectedproperty HideSelection: boolean;
Publicproperty InCharField: boolean;
Protectedproperty InsertMode: boolean;
Publicproperty IsCharFieldCol[const ACol: integer]: Boolean;
Publicproperty IsDrawDataSelected: boolean;
Publicproperty IsMaxOffset: boolean;
Publicproperty LeftCol;
Protectedproperty MaskChar: char;
Protectedproperty MaxUndo: integer;
Publicproperty Modified: boolean;
Publicproperty MouseOverSelection: boolean;
Protectedproperty NoSizeChange: boolean;
Protectedproperty OffsetFormat: string;
Publicproperty OnBookmarkChanged: TNotifyEvent;
Protectedproperty OnChange: TNotifyEvent;
Protectedproperty OnDrawCell: TMPHDrawCellEvent;
Publicproperty OnFind: TMPHFindEvent;
Protectedproperty OnGetOffsetText: TMPHGetOffsetTextEvent;
Protectedproperty OnInvalidKey: TNotifyEvent;
Protectedproperty OnProgress: TMPHProgressEvent;
Protectedproperty OnSelectionChanged: TNotifyEvent;
Protectedproperty OnTopLeftChanged: TNotifyEvent;
Publicproperty OnWildcardFind: TMPHFindEvent;
Publicproperty PositionAtCursor[const ACol, ARow: integer]: integer;
Publicproperty ReadOnlyFile: boolean;
Protectedproperty ReadOnlyView: boolean;
Publicproperty Row;
Publicproperty RowCountRO: integer;
Protectedproperty RulerBytesPerUnit: integer;
Protectedproperty RulerNumberBase: byte;
Publicproperty SelCount: integer;
Publicproperty SelectionAsHex: string;
Publicproperty SelectionAsText: string;
Publicproperty SelEnd: integer;
Publicproperty SelStart: integer;
Protectedproperty SeparateBlocksInCharField: boolean;
Publicproperty SetDataSizeFillByte: Byte;
Protectedproperty ShowPositionIfNotFocused: Boolean;
Protectedproperty ShowRuler: boolean;
Protectedproperty SwapNibbles: boolean;
Publicproperty TopRow;
Protectedproperty Translation: TMPHTranslationKind;
Publicproperty UndoDescription: string;
Protectedproperty UnicodeBigEndian: Boolean;
Protectedproperty UnicodeChars: Boolean;
Protectedproperty Version: string;
Publicproperty VisibleColCount;
Publicproperty VisibleRowCount;
Protectedproperty WantTabs: boolean;

Description

Protectedproperty AllowInsertMode: boolean;

if set to False, switching between overwrite and insert mode is not allowed (see also InsertMode and NoSizeChange)

Publicproperty AsHex: string;

retrieve or set the data as hex formatted string (00 01 02 03...)

Publicproperty AsText: string;

retrieve or set the data as string

Publicproperty Bookmark[Index: byte]: TMPHBookmark;

retrieve or set bookmarks programmatically (see also TMPHBookmark)

Protectedproperty BookmarkBitmap: TBitmap;

bitmap containing 20 10x10 pixels pictures for bokkmarks (they are displayed in the offset gutter), the first ten pictures represent the bookmarks 0(10)..9, if they are set in the hexpane, the last 10 pics are shown if bookmarks are set in the character pane (see also TMPHBookmark)

Publicproperty ByteChanged[index: integer]: boolean;

has the byte at the given position been modified ? (only in overwrite mode)

Protectedproperty BytesPerBlock: Integer;

how many bytes form one block in a row? blocks are separated by a one character wide blank. -1 means no block separation (see also SeparateBlocksInCharField)

Protectedproperty BytesPerColumn: integer;

number of bytes to show in each column

Protectedproperty BytesPerRow: integer;

number of bytes to show in each row

Protectedproperty BytesPerUnit: integer;

setting this property changes the way how mouse/keyboard selection works:
e.g. if set to two, two bytes will be treated as a unit, that means you cannot select a single byte, only two, four, six... bytes can be selected. also drag/drop and clipboard pasting is affected (data size is always a multiple of BytesPerUnit). See also RulerBytesPerUnit

Publicproperty CanRedo: boolean;

is Redo possible?

Publicproperty CanUndo: boolean;

is Undo possible?

Publicproperty Canvas;

the control's canvas

Protectedproperty CaretKind: TMPHCaretKind;

look of the editor's caret (see TMPHCaretKind)

Publicproperty Col;

current column (grid column)

Publicproperty ColCountRO: integer;

retrieves the number of columns (grid columns)

Protectedproperty Colors: TMPHColors;

colors to display (see TMPHColors)

Publicproperty CurrentValue: integer;

get the data value at the current caret position, returns -1 if an error occured

Publicproperty Data[Index: integer]: Byte;

array to the data buffer's content

Publicproperty DataSize: integer;

tells which value to use to fill the new data

Publicproperty DrawDataPosition: integer;

during OnDrawCell event handlers, this property tells the data position currently being drawn (-1, if offset or ruler are drawn)

Protectedproperty DrawGridLines: boolean;

if set to True, a grid is drawn

Protectedproperty DrawGutter3D: boolean;

if set to True, a 3d line is drawn at the right of the offset gutter

Publicproperty FastPointer: PByteArray;

 

Publicproperty Filename: string;

name of the file that has been loaded into the data buffer

Protectedproperty FindProgress: boolean;

if set to True, the find* routines also fire OnProgress events (default is False)

Publicproperty FindTable: TMPHFindTable;

precompiled character comparison table for custom find routines, see also FindTableI, OnFind, OnWildcardFind, case sensitive, not public under BCB!

Publicproperty FindTableI: TMPHFindTable;

precompiled character comparison table for custom find routines, see also FindTable, OnFind, OnWildcardFind, case insensitive, not public under BCB!

Protectedproperty FocusFrame: boolean;

if FocusFrame is set to True, the current caret position will be displayed in the second field (hex - characters) as a dotted focus frame, if set to False, it will be shown as an ordinary rectangle

Protectedproperty GraySelectionIfNotFocused: boolean;

if set to True and HideSelection is False, then the current selection will be grayed when the hex editor looses focus (the values from the Colors property will be converted to grayscale colors)

Protectedproperty GutterWidth: integer;

width of the offset display gutter, if set to -1, automatically adjust the gutter's width

Publicproperty HasFile: boolean;

has data been load from/saved to a file (or is the filename valid)

Protectedproperty HexLowerCase: boolean;

if set to True, hex data and hex offsets are displayed in lower case

Protectedproperty HideSelection: boolean;

hide the current selection when the hex editor looses focus (see also GraySelectionIfNotFocused)

Publicproperty InCharField: boolean;

is the caret in the character or the hex pane ?

Protectedproperty InsertMode: boolean;

insert mode (typed characters are inserted at the current position) or overwrite mode (typed characters replace values at the current position), see also AllowInsertMode, NoSizeChange and ReadOnlyView

Publicproperty IsCharFieldCol[const ACol: integer]: Boolean;

is the given col in the hex or the character pane?

Publicproperty IsDrawDataSelected: boolean;

during OnDrawCell event handlers, this property tells whether the cell is to be draw in selected style (only valid if DrawDataPosition <> -1)

Publicproperty IsMaxOffset: boolean;

this property is valid only in the OnGetOffsetText event. if True, the component asks for the string of the highest possible offset, if False, a row's offset text is queried

Publicproperty LeftCol;

first visible column

Protectedproperty MaskChar: char;

replace whitespaces (#0..#31) with the following character in the character pane

Protectedproperty MaxUndo: integer;

maximum memory that is used for undo storage (in bytes, approximately)

Publicproperty Modified: boolean;

if True, changes have been made to the data buffer content

Publicproperty MouseOverSelection: boolean;

returns True if the mouse cursor is positionned over selected data

Protectedproperty NoSizeChange: boolean;

if set to True, the data size is readonly, e.g. no data may be appended, deleted or inserted, just overwriting is allowed. this also affects InsertMode.

Protectedproperty OffsetFormat: string;

offset display ("line numbers") format, in the form
[r|c|<HEXNUM>%][-|<HEXNUM>!]<HEXNUM>:[Prefix]|[Suffix]
(<HEXNUM> means a number in hexadecimal format (without prefix/suffix))

- first field (up to the percent sign):


- second field (up to the exclamation mark):

- third field (up to the colon):

- fourth field (up to the pipe ('|') char):

- fifth (and last) field:

Publicproperty OnBookmarkChanged: TNotifyEvent;

this event is fired when a bookmark is added/modifed/removed

Protectedproperty OnChange: TNotifyEvent;

this event is called on every data change (load/empty/undo/redo)

Protectedproperty OnDrawCell: TMPHDrawCellEvent;

use this event to implement owner drawing. see also TMPHDrawCellEvent

Publicproperty OnFind: TMPHFindEvent;

see also OnWildcardFind

Protectedproperty OnGetOffsetText: TMPHGetOffsetTextEvent;

if this handler is assigned, the OffsetFormat is not used to create "line numbers", but the application tells the editor how to format the offset text

Protectedproperty OnInvalidKey: TNotifyEvent;

this event is fired if an invalid character has been typed (like non-hex characters in the hex pane)

Protectedproperty OnProgress: TMPHProgressEvent;

this event is called in LoadFromFile, SaveToFile, Find and FindWithWildcard routines, so a progress indicator may be updated (see also TMPHProgressEvent, FindProgress)

Protectedproperty OnSelectionChanged: TNotifyEvent;

this event is fired when the selection/caret position has changed

Protectedproperty OnTopLeftChanged: TNotifyEvent;

this event is fired if the first visible row or column have been changed (e.g. on scrolling)

Publicproperty OnWildcardFind: TMPHFindEvent;

to this handler, see also OnFind

Publicproperty PositionAtCursor[const ACol, ARow: integer]: integer;

calculate a data position from a col/row pair

Publicproperty ReadOnlyFile: boolean;

if True, the currently loaded file cannot be overwritten

Protectedproperty ReadOnlyView: boolean;

if set to True, the data can not be edited, just cursor movement is allowed ("Hex Viewer" mode)

Publicproperty Row;

current row (grid row)

Publicproperty RowCountRO: integer;

retrieves the number of rows (grid rows)

Protectedproperty RulerBytesPerUnit: integer;

setting this property affects the offset/ruler drawing:
e.g. if set to two, two bytes will be treated as a unit, that means the offset and ruler values will step by one each two bytes. if this property is set to -1, it will use the value of the BytesPerUnit property

Protectedproperty RulerNumberBase: byte;

number base (i.e. radix) for the ruler display (2-16), tells the component which number format to use when drawing the ruler

Publicproperty SelCount: integer;

retrieve the size of the selected data

Publicproperty SelectionAsHex: string;

see GetSelectionAsHex and SetSelectionAsHex

Publicproperty SelectionAsText: string;

see GetSelectionAsText and SetSelectionAsText

Publicproperty SelEnd: integer;

retrieve or set the selection end

Publicproperty SelStart: integer;

retrieve or set the selection start

Protectedproperty SeparateBlocksInCharField: boolean;

if BytesPerBlock is used, this property tells the editor whether it should separate blocks of bytes in the character pane too or not

Publicproperty SetDataSizeFillByte: Byte;

enlarges the stream

Protectedproperty ShowPositionIfNotFocused: Boolean;

mark the current position even if the editor is not focused

Protectedproperty ShowRuler: boolean;

if set to True, a ruler is shown above the first row

Protectedproperty SwapNibbles: boolean;

if SwapNibbles is set to True, the hex pane will show all bytes in the order lower 4 bits-higher 4 bits (i.e. the value 192 dec = C0 hex will be drawn as 0C). if set to False, hex values will be displayed in usual order. this setting also affects hex data input and hex-string conversions

Publicproperty TopRow;

first visible row (grid row)

Protectedproperty Translation: TMPHTranslationKind;

translation kind of the data (used to show characters on and to handle key presses in the char pane), (see also TMPHTranslationKind)

Publicproperty UndoDescription: string;

description of the next Undo action

Protectedproperty UnicodeBigEndian: Boolean;

if set to True, big endian unicode mode is used if UnicodeChars is enabled

Protectedproperty UnicodeChars: Boolean;

if set to True, the character pane displays unicode characters and the BytesPerUnit property is set to 2. Translation is set to tkAsIs. BytesPerRow and BytesPerColumn must be a multiple of two to be able to use the unicode mode. see also UnicodeBigEndian

Protectedproperty Version: string;

current version of the hex editor component (returns the build data), readonly

Publicproperty VisibleColCount;

retrieves the number of visible columns

Publicproperty VisibleRowCount;

retrieves the number of visible rows

Protectedproperty WantTabs: boolean;

if set to True, the Tab key is used to switch the caret between hex and character pane. if set to False, the Tab key can be used to switch between controls. then the combination CTRL+T is used to switch the panes


Generated by DIPasDoc 0.8.7 on Di 15. Jun 2004 20:02:30