WYSIWYG formatted text & images editor for VCL & FireMonkey
Early this year, our team started the challenging task to create a new component for WYSIWYG editing of formatted text & images for Delphi. From the start, we want to create a control for FireMonkey that would fit neatly the FMX paradigm of one source code to rule all platforms (Windows, iOS, Android, Mac OSX at this time) but realising this would be a huge effort, we wanted that this effort would also be usable for VCL developers targetting Windows only.
After a lot of research was done on performance (as we knew from our experience with other FMX controls this would be difficult) we decided on what we internally disrespectfully call a sandwich architecture. This sandwich architecture should enable us to isolate a core formatted text handling layer from the framework, i.e. the VCL and FireMonkey framework. The benefit clearly is that work on the core only needs to be done once and further evolutions of the core and its maintenance automatically benefits both VCL and FireMonkey framework versions. Visually, this can be seen as:
The core middle layer not only deals with rendering the formatted text and images but also with all the manipulations that can happen with it. Non-trivial areas in this core middle layer abstraction are: dealing with font handling, coordinates and images that are all treated in a different way in VCL and FireMonkey frameworks. Between this architecture and its final implementation is of course lots and lots of hard work both in development and testing. The final result in VCL and FireMonkey platform running on Windows looks like:
TAdvRichEditor : VCL component from TMS Component Pack
TTMSFMXRichEditor : FireMonkey component from TMS Pack for FireMonkey
To whet your appetite to get started with the new editors regardless of what platform or framework you want to use, here is a short feature list:
- Compact light-weight WYSIWYG editor for formatted text
- Supports formatted text with bullets, hyperlinks, images, indenting
- Paragraphs with left,center,right alignment
- Support for images, plain text and formatted text on clipboard
- Undo/redo support
- Find & replace + text highlighting
- Mailmerge function
- Printing (on Windows)
- Exports to .TXT, .RTF, .HTML files.
- FRIENDS IN DELPHI ?? (OR OTHER ACCESS WORKAROUNDS) (2001-01-04 11:08:37)One of the quirks of Delphi is that classes in the same unit can access protected and private methods and variables. Borland does this a lot in...
- HELP WITH EXCEPTIONS ..... I'M GETTING CRAZY! (2001-01-06 21:59:49)How to make it run as if you were running it outside of Delphi.
Tools | Debugger Options --> Language Exceptions.
Their is a checkbox titled...
- QUERY PARAMETER QUESTION...? (2001-01-05 00:44:03)there are two parts
first is writing the script with variable and another is using bind variable
for first you can say
- EXES CONTAINING MORE THAN ONE ICON RESOURCE ... (2001-01-05 11:25:58)Just draw your icons with the Borland Image Editor (Delivered with Delphi). It allows to save different icons in one ico file as well.
- .BMP ISN'T A VALID PICTURE FILE FORMAT!? UHUM!? (2001-01-05 16:59:28)I think you have to Specify
what line the text is in, like this.
If the text in the...
- SAVING CURSORS? (2001-01-07 05:09:39)Well whenever I want to login I have to enable cookies - that's a bit annoying.
And people were able to enter their email addresses before as...
- HOW TO COPY A COMPLETE STRINGLIST TO THE CLIPBOARD? (2001-01-08 10:51:56)Where do you want to paste your items ?? In Notepad, or in your application ? If you want to copy it between your applications, I've exactly what...
- HOW DO I STRETCH THE SIZE OF FORM WHEN SCREEN RES INCREASED? (2001-01-09 05:54:00)first of all i am not sure what is your requirement
are u concerned with first time sizing of your form on initialization or do you want to...
- QUICK REPORT (2001-01-09 03:24:47)Well, it's not exactly clear what you mean, but you should
first set the AutoSize properties false and then:
- enlarge the horizontal size of the...
- STRANGE PROBLEM WITH OUTPUTTING THE '&' CHARACTER... (2001-01-09 05:49:53)Not a Delphi's bug... Simply the "shortcut". Put "&&" instead of "&" and it'll solve your problem...
If you are using DrawText function, you wan...