Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2023, 13:00   #11
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Только изначально у RTF не было выравнивания по ширине. Его добавили потом. Соответственно в старой версии компонента нету даже констант для отображения этого выравнивания. Зато WordPad при задании выравнивания по ширине устанавливает константу равную 4, а не 3 как она указана в TParaAlignment;

Из чего я делаю вывод, что WordPad самостоятельно обрабатывает абзацы с таким типом выравнивания и его просто нету в этом системном компоненте.
macomics вне форума Ответить с цитированием
Старый 25.04.2023, 13:23   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Только изначально у RTF не было выравнивания по ширине.
А по центру RichEdit выравнивает нормально? Да, действительно, у RTF не было выравнивания по ширине. И еще надо бы проверить в более свежих версиях Делфи, может быть там добавили выравнивание?
Arigato вне форума Ответить с цитированием
Старый 25.04.2023, 17:10   #13
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
А у вас какая версия этого RichEdit выбрана (TRichEditVersion)?
Пишет, что 3-я.

Последний раз редактировалось hexor_boo; 25.04.2023 в 17:19.
hexor_boo вне форума Ответить с цитированием
Старый 06.05.2023, 00:06   #14
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Найдено великолепное решение, которое даже не требует установки дополнительных компонентов - всё можно сделать в обычном TRichEdit!

Код:
uses
 RichEdit; //А вы знали что такой юнит существует в Delphi 7? Лично я не знал. И он не подключается при добавлении TRichEdit на форму.
...
procedure TForm1.btnLoadClick(Sender: TObject);
begin
 rchText.Lines.LoadFromFile('Test.rtf');
end;

procedure TForm1.btnAlignClick(Sender: TObject);
var
 Format: TParaFormat;
const
 EM_SETTYPOGRAPHYOPTIONS = WM_USER + 202;
 EM_GETTYPOGRAPHYOPTIONS = WM_USER + 203;
 TO_ADVANCEDTYPOGRAPHY   = $0001;
begin
 rchText.SelectAll;
 Format.cbSize:=SizeOf(Format);
 Format.dwMask:=PFM_ALIGNMENT;
 Format.wAlignment:=4;

  If (SendMessage(rchText.Handle, EM_SETTYPOGRAPHYOPTIONS,
   TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY) <> 0) Then
   Begin
    SendMessage(rchText.Handle, EM_GETTYPOGRAPHYOPTIONS, 0, 0);
    SendMessage(rchText.Handle, EM_SETPARAFORMAT, 0, Integer(@Format));
   End;
end;
hexor_boo вне форума Ответить с цитированием
Старый 06.05.2023, 00:25   #15
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от hexor_boo Посмотреть сообщение
Код:
uses
 RichEdit; //А вы знали что такой юнит существует в Delphi 7? Лично я не знал. И он не подключается при добавлении TRichEdit на форму.
Когда добавляешь к модулю Clipbrd функцию поддержки WideString и пересобираешь соответствующие модули для Delphi, то либо приходится пересобирать RichEdit.pas, либо на него натыкаешься. В любом случае это не секретная информация. Все модули лежат в папке include и при создании обычной формы в Delphi 7 используется набор модулей из папки include\vcl. Так все это можно найти. Но спасибо за то, что опубликовали найденное решение.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнивание по ширине richTextBox Alex2012 C# (си шарп) 3 19.09.2011 21:26
Выравнивание по ширине в ListBox DIgorevich Компоненты Delphi 12 06.08.2010 01:07
Выравнивание по ширине FoNeZly Общие вопросы C/C++ 0 24.05.2010 23:42
выравнивание столбцов dbgrid по ширине текста kate158 БД в Delphi 2 30.07.2009 17:28
выравнивание текста по ширине Алёна Общие вопросы Delphi 6 18.04.2007 11:31