Editor component
- From: Hans-Peter Diettrich <DrDiettrich1@xxxxxxx>
- Date: Wed, 14 Feb 2007 18:32:44 +0100
Since some time I'm working on a source code editor component, and I've just uploaded the second beta version, see
<http://tagebuch.aol.de/drdiettrich1/synedit-redesign>
I've choosen SynEdit as a template for a final component, because it's functionality matches almost all my needs for an source code editor. Unfortunately Lazarus doesn't work very well on Win32 with the current SynEdit version, that's why I started a redesign of the basic procedures, in an set of basic control classes.
Currently I'm working on the lowest level of an tree of controls, which shall be usable for various viewers and editors, not only for text. The root class implements a grid with scrolling capabilities. Derived classes can implement a grid of pixels for pictures, something like a TPaintGrid, or bar diagrams, or in the case of an editor a grid of (fixed size) characters. Such a character grid already is implemented, adding input from a string list and a caret. Nothing really new so far, but I tried to make the base classes as safe as possible, while keeping them compatible with SynEdit. One of the next steps will put SynEdit on top the base control, so that syntax highlighting and block folding will become available, as is implemented in the Lazarus version of SynEdit.
Already implemented is the output of Unicode, even if the currently used TStringList doesn't support WideStrings, but such a content class can be added easily.
Also implemented is Drag&Drop for the files to show, so that the supplied demo program doesn't have a menu or other controls for now.
In the very next step I'll add selection capabilites and block marks. This will be the last touch on the basic controls, because I suspect some interference with the caret handling. Having finished this, I'll start to document the capabilites and use of the basic controls. Then the remaining features can be added, as already implemented in SynEdit or other editor controls. But most probably the redesign of SynEdit will continue, because I'm not very happy with the current implementation of the various features. In the Lazarus version I suspect that the block folding doesn't fit together with the original SynEdit design, and is the reason for the strange behaviour I observed in Lazarus.
I already have an order for a concrete control, with multiple block marks, which was the reason for my interest and work on SynEdit. Unfortunately the monolithic SynEdit control class was not a good base for such a control, so that I started to separate the basic functionality from the higher level one, and ended up in a complete redesign. Since the SynEdit mailing lists seem to be dead, apart from spam, I ask the Delphi community for their wishes on an editor component, with regards to still missing functionality, special behaviour and the like. The final controls most probably will be distributed under the MPL, which is not so restrictive as the LGPL.
If you have any comments, wishes, or suggestions, feel free to post in my blog, or in this group.
DoDi
.
- Follow-Ups:
- Re: Editor component
- From: Marco van de Voort
- Re: Editor component
- Prev by Date: Re: Access Violation Errors on Delphi startup
- Next by Date: Problem freeing components with .free
- Previous by thread: Access Violation Errors on Delphi startup
- Next by thread: Re: Editor component
- Index(es):
Relevant Pages
|