Hallo zusammen,
ich habe Probleme beim Formatieren von Text in RichEdit.
Mit diesem Code kann ich die Textattribute verändern (Farbe, Fett, usw.):
Delphi-Quellcode:
DBRichEdit1.SelStart:=0;
DBRichEdit1.Font.Name:=form1.BFont.Name;
DBRichEdit1.Font.Color:=form1.BFont.Color;
DBRichEdit1.Font.Size:=form1.BFont.Size;
DBRichEdit1.SelAttributes.Assign(DBRichEdit1.Font);
Was mache ich falsch?
Lass den dbrichedit1.Font in Frieden, das ist nur der Default-Font, und den muss man nicht verwenden. SelAttributes.Assign(Bfont) sollte direkt funktionieren.
Vermutlich tust Du irgendwas, was das Window-
Handle des richedits neu erzeugt, und dadurch gehen deine Settings verloren. Um das zu vermeiden mußt Du eine Komponente von TDBRichedit ableiten und ihre CreateWnd-Methode überschreiben. Mach dort die Settings nach dem Aufruf der ererbten Methode. Du kannst dann auch direkt einen Messagehandler für CN_NOTIFY anlegen (oder überschreiben, das Control erbt schon einen von TRichedit, glaube ich) und damit das Handling der URLs direkt im Control implementieren, eventuell dafür einen eigenen Event anbieten, den das Form verwenden kann. Die
VCL "reflektiert" eine WM_NOTIFY-Message als CN_NOTIFY an das Control, so dass man die Bearbeitung dort machen kann, wo sie hingehört, und nicht im parent des Controls.