Hi,
The OnChange-event of TRichText is not fired when changing fontcolor, but when adding/replacing/moving tekst it is fired correctly.
I use USEDEVEXPRESS.
Code
procedure TFDossierDetails.mbTekstkleurChange(Sender: TObject);
begin
WPTEditor.Changing;
WPTEditor.SelectedTextAttr.SetColor(mbTekstkleur.Color);
end;
procedure TFDossierDetails.WPTEditorChange(Sender: TObject);
begin
StatusBar.Panels[2].Text := 'Changed';
end;
procedure TFDossierDetails.WPTEditorCharacterAttrChange(Sender: TObject;
Attribute: TWPSetModeControl);
var vStyle: WrtStyle;
vFontName : TFontname;
vColor, vBGColor : TColor;
vTekengrootte : Single;
vOnderstreeptModus : Integer;
vVet, vCursief, vOnderstrepen, vDoorhalen, vSuperscript, vSubscript : Boolean;
begin
vStyle := WPTEditor.CurrAttr.Style;
vVet := (afsBold in vStyle);
vCursief := (afsItalic in vStyle);
vOnderstreeptModus := WPTEditor.CurrAttr.UnderlineMode;
vOnderstrepen := ((afsUnderline in vStyle) or ((vOnderstreeptModus > 0) and (vOnderstreeptModus < WPUND_NoLine)));
vDoorhalen := (afsStrikeout in vStyle);
vSuperscript := (afsSuper in vStyle);
vSubscript := (afsSub in vStyle);
if WPTEditor.IsSelected then
begin
// Bij geselecteerde tekst kan de tekst uit meerdere soorten Lettertypes, kleuren etc. bestaan
// In dat geval
if not WPTEditor.SelectedTextAttr.GetFontName(vFontName) then // Font naam bestaat niet of is leeg
vFontName := '';
if not WPTEditor.SelectedTextAttr.GetColor(vColor) then // Font kleur bestaat niet of is leeg
vColor := 0;
if not WPTEditor.SelectedTextAttr.GetBGColor(vBGColor) then // Font achtergrondkleur bestaat niet of is leeg
vBGColor := 0;
if not WPTEditor.SelectedTextAttr.GetFontSize(vTekengrootte) then // Font achtergrondkleur bestaat niet of is leeg
vTekengrootte := 0;
end else
begin
vFontName := WPTEditor.CurrAttr.FontName;
vColor := WPTEditor.CurrAttr.Color;
vBGColor := WPTEditor.CurrAttr.BKColor;
vTekengrootte := Round(WPTEditor.CurrAttr.Size);
end;
// Kleuren uit editor in kleur comboboxen zetten.
mbLettertype.Text := vFontName;
mbTekstkleur.Color := vColor;
mbMarkeren.Color := vBGColor;
mbTekengrootte.Text := IntToStr(Round(vTekengrootte));
mbVet.Down := vVet;
mbCursief.Down := vCursief;
mbOnderstrepen.Down := vOnderstrepen;
mbDoorhalen.Down := vDoorhalen;
mbSuperscript.Down := vSuperscript;
mbSubscript.Down := vSubscript;
end;
Alles anzeigen
What can be a reason why this OnChange-event isn't fired?