Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Задать расстояние между строк для TRichEdit

Delphi , Компоненты и Классы , TMemo и TRichEdit

Задать расстояние между строк для TRichEdit

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   RichEdit;

 procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte);
 var
   pf2: ParaFormat2;
 begin
   FillChar(pf2, SizeOf(pf2), 0);
   pf2.cbSize := SizeOf(PARAFORMAT2);
   pf2.dwMask := PFM_LINESPACING;
   pf2.bLineSpacingRule := lineSpacing;
   SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
 end;

 //Example: Setlinespacing to 1: 
procedure TForm1.Button1Click(Sender: TObject);
 begin
   RE_SetLineSpacing(RichEdit1, 1);
 end;

Here is the translation of the text into Russian:

Это код-сниппет на языке Delphi, который устанавливает расстояние между строками для контрола TRichEdit. Процедура RE_SetLineSpacing принимает два параметра: ARichEdit - это контрол TRichEdit, который нужно изменить, и lineSpacing - целочисленное значение, представляющее собой желаемое расстояние между строками.

Рассказ о том, что код делает:

  1. Функция FillChar инициализирует структуру ParaFormat2 нулями.
  2. Поле cbSize структуры ParaFormat2 устанавливается в размер самой структуры, который необходим для функции SendMessage позднее.
  3. Поле dwMask структуры ParaFormat2 устанавливается в PFM_ LINESPACING, что указывает на то, что мы интересуемся изменением свойства расстояния между строками.
  4. Поле bLineSpacingRule структуры ParaFormat2 устанавливается в значение параметра lineSpacing, которое specifies the line spacing rule (например, 1 для одиночной интерпретации, 2 для двойной интерпретации и т.д.).
  5. Функция SendMessage используется для отправки сообщения WM_ SETEDITPARAFORMAT контролу TRichEdit, передавая адрес модифицированной структуры ParaFormat2 в параметре lParam.

Пример кода в конце демонстрирует, как использовать эту процедуру, установив расстояние между строками для контрола RichEdit с именем RichEdit1 в значение 1 (одиночная интерпретация).

Альтернативное решение:

Вместо использования структуры ParaFormat2 и функции SendMessage можно также использовать свойство LineSpacing компонента TRichEdit для установки расстояния между строками. Например:

procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit1.LineSpacing := 1;
end;

Эта APPROACH проще и более прямая, так как не требует создания custom структуры или отправки сообщения контролу. Однако, если вам нужно более тонкое управление расстоянием между строками (например, установка конкретных размеров шрифта или стиля), использование структуры ParaFormat2 может быть необходимым.

В статье описывается создание процедуры TRichEdit для задания расстояния между строками в Rich Edit контролле с помощью SendMessage и EM_SETPARAFORMAT.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: TMemo и TRichEdit ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 16:16:18/0.0104660987854/2