VCL RichEdit component suggestion - delphi

I tried to implement vertical paragraph alignment feature to TRichEdit control. It is such a headache. And i also need transparent background support from RichEdit control. Can you suggest any free or paid VCL RichEdit component that has full RTF support and transparent background support.

WPTools is a descent Rich Text Editor as it has much of the functionality of MS Word's RTF format. I don't recall how much it costs.
The main drawback I notices when working with it was some outline formatting issues.

Related

Delphi Text Edit Control with background colour

Does Delphi (or even Lazarus with Free Pascal) have a control that displays text and allows you to set the background colour of each individual character?
Thanks
Yes, it does.
See TRichMemo. Moreover in comparison with the TRichEdit in Delphi it has an advantage - it is cross-platform.
Also consider this question and my answer. They might be useful.

Can ligatures be used within Delphi PaintBox when writing to Canvas using TextOut or DrawTextW?

I am currently trying to implement the Bravada OTF Font from http://www.smufl.org/fonts/ in a Delphi music application. While I can easily render the private extended unicode characters to a TPaintBox using either TextOut or DrawTextW, it appears OpenType ligatures may not be handled within Delphi.
Specifically, certain unicode characters serve as modifiers ... per the README for Bravada:
"In Bravura Text, ligatures are used to adjust the vertical position of individual symbols. First, you enter the code point corresponding to the amount by which you want to change the vertical position, and then you enter the code point for the symbol itself. Provided the application you are using supports OpenType ligatures, you should see the symbol appear at the desired vertical position."
"So to position, say, a black notehead at the G4 staff position, you would first enter U+EB89 (lower by two staff positions) followed immediately by U+E0A4 (the black notehead)."
My rudimentary attempts like this:
Canvas.TextOut(10,10, #$EB89+#$E0A4);
Only reveal two characters, not moving E084 by the vertical offset desired. Knowing that clients are responsible for understanding the ligature rules and responding accordingly, are there any workable options available in Delphi for OTF features? I'd love to raw draw to the canvas but even if there is a more advanced canvas VCL out there... I'll take it.
VCL's TCanvas class is a thin wrapper around Microsoft's GDI API. GDI by itself does not support what you are asking for. However, you can use Microsoft's DirectWrite API (part of DirectX), which does support OpenType and its advanced features.
Introducing DirectWrite
DirectWrite takes advantage of the advances in OpenType Font technology to enable high quality typography within a Windows application...
...
The OpenType support provided by DirectWrite enables developers to add to their applications advanced typographic features and support for international text.
It is possible to have DirectWrite render to a GDI surface. It would first render to an in-memory bitmap HDC, which you could then draw onto the TPaintBox afterwards, by either:
wrapping the rendered HDC in a temp TCanvas object and then copying it to the TPaintBox.Canvas using the TCanvas.CopyRect() or TCanvas.Draw() method.
copying it directly to the HDC provided by TPaintBox.Canvas.Handle using GDI's BitBlt() or StretchBlt() function.

Delphi cutting glass

I'm using Delphi XE2, and I like glass effects, and I want to "cut" glass as in Windows 7 tablet tools.
If you also know how cut a button I'll be happy if you tell me how.
Thanks
Drawing in the top area is simply a matter of using a glass frame and painting in the non-client area, or alternatively, using the DwmExtendFrameIntoClientArea API.
The best code sample I have seen for this is the VCL "Ribbon" control, which provides a "QAT" (quick Access toolbar) area, painted in the "non client area".
Note that the author has to think not only about how to render when Vista/Win7 systems which have Glass ON, but also has to decide how to render on WinXp, Win7 and Vista when the Themes engine is off. There is quite a bit of logic in the Vcl.Ribbon.pas (or just Ribbon.pas if you're in XE or earlier) unit dedicated to that.
Look at procedure TCustomRibbonQuickAccessPopupToolbar.NCPaint(DC: HDC); in the Vcl Ribbon sources.
Drawing a non-rectangular "extended area" that protrudes from the bottom is probably a matter of applying a custom window clipping region.
Did you mean you want shaped forms? If so
Irregularly shaped forms
could help. I imagine this will work on Windows 7 (note Remy's comment in the answer).
hth

What's the difference between ListView and GestureListView?

What's the difference between ListView and GestureListView? Examples would be helpful.
the TListview is a VCL control, based in the windows listview, this component is for general use and supports different visualizations (styles) like report style, lists, small icons, etc.
by the other hand the TGestureListView is a TCustomListView descendant which was made to display the name of gestures and a small thumbnail with the gesture’s shape.

Looking for a simple graphical component for Delphi

I am looking for a graphical component in Delphi winch have such features:
allows to paint text in different font types, sizes and colors
allows to select previously drawn text and copy it
paints images on a given coords, gif support would be nice
its very fast in terms of CPU usage
I need this component as a main chat window. I don't want to use it as a text editor.
I've tried two solutions so far:
TVirtualStringTree
THtml
Currently I am using THtml. It performs quite nice but it is a bit to slow due to two facts:
It supports many features which are not necessary in my case
Each time I want to add some content to it, I must reload the whole content
I really don't want to go into its sources and modify them until I have no other choice. So maybe someone of you knows some nice lightweight component which I can use instead?
Take a look at TRichView. It's derived from TCustomControl so no external dependencies. It's third party commercial component, but a very good one. Skype Win client uses it.
What about a TRichEdit? Most of the things you mention should be easiliby possible with this component.
Concering the insertion of a bitmap, see this article on Delphi 3000.
Did you consider using TWebBrowser?
At least it ticks all your boxes...

Resources