***************************************** *REdit - A RichEdit descendent component* ***************************************** Features: - Provides its own methods to load from files of various formats - RTF content published so that it can be read and modified - Easy for you to add your own search engine (template provided) - Variable length of spaces between tab markers or use real tab, - Supports auto-indent and back-space-unindent - Customize most of the above while program is running - Getting and changing the current row and column - Getting and changing the current topmost row - Getting the current maximum number of visible rows - Getting if it is in insert or overwrite mode - Supports insertion of files at selection - Supports saving to Unix and Macintosh formats - Changed behavior: Holding while pressing , , or scrolls without moving the caret - A method to trim all trailing spaces - Added events: 1. On Position Change 2. On Mode (Insert <-> Overwrite) Change 3. On Horizontal Scroll 4. On Vertical Scroll - Document Source Code with hints on where you can add extra stuffs *************************************************** *New Public (not published) methods and properties* *************************************************** constructor Create(AOwner: TComponent); override; Constructor -------------------------------------------------------------------------------- destructor Destroy; override; Destructor -------------------------------------------------------------------------------- procedure LoadFromFile(const FileName: string); Load from a file given the filename. Use this method to load files of any form (DOS/Unix/Mac) Note: - ONLY use TREdit.LoadFromFile, and NOT Lines.LoadFromFile, to open files -------------------------------------------------------------------------------- procedure InsertFromFile(const FileName: string); Inserts a file at at the current selection point given the file name -------------------------------------------------------------------------------- procedure SaveToDOS(const FileName: string); procedure SaveToUnix(const FileName: string); procedure SaveToMac(const FileName: string); Save the editor content to various formats in the given file name Note: - ONLY use TREdit.SaveTo*, and NOT Lines.SaveToFile, to save files -------------------------------------------------------------------------------- procedure TrimAllTrail; Trims all trailing spaces in the editor content -------------------------------------------------------------------------------- function Find(InPattern: string; InStart: integer; IsCaseSen: boolean; IsRegExp: boolean): integer; Given the search pattern, the position from which to start searching, case sensitivity, and if it is a regular expression search, search the given pattern in the editor content. Note: - This part is commented out because I cannot include RegExp.pas with the component -------------------------------------------------------------------------------- property CurrentRow: integer; Get or set the current row where the caret is at -------------------------------------------------------------------------------- property CurrentCol: integer; Get or set the current column where the caret is at -------------------------------------------------------------------------------- property CurrentTop: integer; Get or set the current topmost visible row OnVScroll is called if it is assigned -------------------------------------------------------------------------------- property MaxVisible: integer; Get the maximum number of visible lines -------------------------------------------------------------------------------- property IsOverwrite: boolean read FIsOverwrite; Get the insertion mode - Insert:false, Overwrite:true ************************** *New Published properties* ************************** property RTFText: string; Get or set the RTF content -------------------------------------------------------------------------------- property IndentSpace: integer; Get or set the number of spaces between tab markers A value of 0 corresponds to using the true tab character -------------------------------------------------------------------------------- property BackSpaceUnIndent: boolean; Get or set "back space unindent", true if this feature is wanted -------------------------------------------------------------------------------- property AutoIndent: boolean; Get or set "auto indentation", true if this feature is wanted -------------------------------------------------------------------------------- property OnPosChange: TPosChange; procedure(InRow, InCol: integer) where InRow is the row and InCol is the column it will supply to your event handler Triggered when the caret changes its position -------------------------------------------------------------------------------- property OnModeChange: TModeChange; procedure(IsStateOverwrite: boolean) where IsStateOverwrite is the status of the "overwrite state" (true -> overwrite, false -> insert) it will supply to your event handler Triggered when the input mode is changed between Insert and Overwrite -------------------------------------------------------------------------------- property OnScrollV: TNotifyEvent; Triggered when there is a vertical scroll -------------------------------------------------------------------------------- property OnScrollH: TNotifyEvent; Triggered when there is a horizontal scroll End of Document