My Edit Project
Main Editor
Dual Edit Panes
  Created 23-02-08

  This project was started as the freeware editor I had been using for about 3 years was a rough diamond. The owner of the
  product had not fixed any of the bugs I had reported since using it. The editor was growing in scope and new bugs
  were being introduced.

  I tried to sub class a Richedit class but could not gain enough control over the class.

  I then sub classed the Borland TCustomControl class defined as:
   • TCustomControl is the base class from which to derive windowed controls that require the support
     of a Canvas for drawing complex visual images.

  class TEditor : public TCustomControl

  BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_CHAR, TMessage, OnReceiveChar)
    MESSAGE_HANDLER(WM_PAINT, TWMDrawItem, EditorPaint)
    MESSAGE_HANDLER(WM_KEYUP, TMessage, EditorKeyUp)
    MESSAGE_HANDLER(WM_MOUSEWHEEL, TMessage, EditorMouseWheel)
    MESSAGE_HANDLER(WM_LBUTTONDOWN, TWMMouse, EditorMouseDown)
    MESSAGE_HANDLER(WM_LBUTTONUP, TWMMouse, EditorMouseUp)
    MESSAGE_HANDLER(WM_MOUSEMOVE, TWMMouse, EditorMouseMove)
    MESSAGE_HANDLER(WM_MOUSELEAVE, TWMMouse, EditorMouseLeave)
    MESSAGE_HANDLER(WM_LBUTTONDBLCLK, TWMMouse, EditorMouseDblClick)
    MESSAGE_HANDLER(WM_SIZE, TWMSize, EditorReSize)
    MESSAGE_HANDLER(WM_SETFOCUS, TWMSetFocus, EditorSetFocus)
    MESSAGE_HANDLER(WM_KILLFOCUS, TWMKillFocus, EditorKillFocus)
    MESSAGE_HANDLER(WM_VSCROLL, TMessage, EditorVScroll)
    MESSAGE_HANDLER(WM_HSCROLL, TMessage, EditorHScroll)
  END_MESSAGE_MAP(TCustomControl)
Auto Complete
  My primary objectives for the Editor were:
   • Sytax Highlighting
   • Unlimited line size
   • Use Microsoft Alt Mouse Drag for block selection of text
   • Line numbering
   • Paste to newline
   • Cursor through tabs
   • Project handling
   • Display of function definition names
   • Numbered bookmarks
Project Support
Simple Search (Similar to an Internet Search Engine). Replaces Regular Expressions
Features:
  •  10 Global Bookmarks
  •  10 Local Bookmarks per Document
  •  Alphabetic sort
  •  Ancillary Panel
     Hosts the Function List
  •  Ascii Table Dialog
  •  Auto Complete
  •  Auto Indent
  •  Block text selection
Block Selection
Features: Continued...
  •  Bracket Matching
  •  Clipboard History List
  •  Copy Filename to Clipboard
     Shift Click includes Path
  •  Cursor beyond EOL and EOF
  •  Cursor through tabs
  •  Directory and File Listboxes
  •  Display all Functions in a new Document
  •  Display all Functions in the Results Window
  •  Drag and Drop files
  •  Dual Editor Window View
     Horizontal and Vertical
  •  Enumeration of selected items
  •  Find results to Results Window
     Ctrl F7 find previous item
     Ctrl F8 find next item
  •  Function Parsing
  •  Get function name Ctrl H
  •  Get text at cursor when using Find Dialog Ctrl F
  •  Goto line Ctrl G
  •  Hiding of Tool Panel F2, Status Bar, Ruler, Tabs Control
  •  Information Dialog
  •  Insert Date
  •  Line Numbers
  •  Line Hiding
  •  List Methods in Result Window
  •  Method Folding
  •  Multiline Tab Control
  •  Multiple Results Lists
  •  Open Document change by external source monitoring
  •  Options Dialog
Method Folding
Options Dialog
Features: Continued...
  •  Paste to New Line
  •  Paste to New End of Line
  •  Print Preview
  •  Project Support
  •  Redo Functionality
  •  Removal of Trailing Spaces
  •  Related Files: Double Click on a Project File to open a Popup Menu
Find Related Files
Features: Continued...
  •  Ruler with Dragable Margin
  •  Save of last open document, Cursor Position and Bookmarks of all Project Files
  •  Save of each Project Search Path
  •  Save all Editor User View Preferences
  •  Set File Attributes
  •  Sort of Functions and Project Files
  •  Status Bar
  •  Syntax Highlighting
Syntax Highlighting
Syntax Highlighting XML configured
Features: Continued...
  •  Tab Conversion to Spaces
  •  Tab Control top or bottom
  •  Tab Size
  •  Tool Bar
  •  Undo Functionality
  •  View File as Hex
  •  View White Space F4
Zoom to full screen
Clipboard History List
Bracket Matching
Search Word Highlighting
Calculate Selected Expressions
Undockable Results Window can be used with Dual Monitors
Built with Borland C++ Builder BDS2006
Built with Borland C++ Builder XE3