У меня есть элемент управления TRichEdit в моей форме Delphi, и я назначаю цвет фона для определенных частей текста, используя метод execute для отправки сообщения Windows в элемент управления.(Текст выбирается с помощью SelStart и SelLength перед вызовом этого кода).
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := CFM_BACKCOLOR;
crBackColor := AColor;
fRichEdit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
Я также хочу, чтобы шрифт мог изменяться пользователем (ПОЛНЫЙ шрифт, он не избирательный, как подсветка фона),поэтому я представляю TFontDialog пользователю, когда он хочет изменить шрифт для поля редактирования, и я назначаю шрифт шрифту элемента управления TRichEdit.
RichEdit.Font.Assign(SelectedFont);
Однако,использование сообщения Windows, кажется, останавливает обновление шрифта.Когда я комментирую метод execute, все работает нормально, но когда я раскомментирую строку, шрифт не обновляется.
Я новичок в сообщениях Windows, пожалуйста, объясните, почему это происходит.