Как уменьшить межстрочный интервал tRichEdit
Я использую tRichEdit, чтобы установить цвета линий. Я хочу уменьшить пространство строки, как tMemo.
Когда я ввожу алфавит вручную, пространство строки уменьшается автоматически, но когда я использую tRichEdit.lines.add, ничего не происходит.
Если это невозможно, есть ли заменители?
1 ответ
Решение
Вы можете настроить межстрочный интервал, отправив EM_SETPARAFORMAT
с помощью SendMessage
, настройка PFM_LINESPACING
в dwMask
и предоставляя значения для dyLineSpacing
значение (и установка bLineSpacingRule
значение, чтобы RichEdit знал, как интерпретировать первое). Код ниже устанавливает очень узкий межстрочный интервал в TRichEdit
(линии на самом деле слегка перекрывают друг друга):
procedure TForm1.FormCreate(Sender: TObject);
var
Para: TParaFormat2;
begin
Para.cbSize := SizeOf(Para);
Para.dwMask := PFM_LINESPACING;
Para.bLineSpacingRule := 4; // Use exact twips specified
Para.dyLineSpacing := 120; // Ridiculously small value
SendMessage(RichEdit1.Handle, EM_SETPARAFORMAT, 0, LPARAM(@Para));
end;
Дополнительные сведения см. В документации MSDN для EM_SETPARAFORMAT.