Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.10.2011, 21:01
TotalRecall TotalRecall вне форума
Прохожий
 
Регистрация: 17.10.2011
Сообщения: 2
Репутация: 10
По умолчанию RichEdit по умолчанию выравнивание по ширине

Знаю способ (Путем отправки сообщения компоненту. Google помог) как выравнивать по ширине выделенный текст. Но мне нужно выравнивание по ширине, которое действует постоянно (по умолчанию). Можно сделать и с помощью способа, о котором написал выше. Например, после вставки из буфера обмена выделять весь текст и запускать выравнивание, но в этом случае остается выделение. Которое нужно убрать установив курсор в конец вставленного фрагмента, а это еще куча хитростей со своими глюками, болото в общем.
Так может есть способ установки выравнивания по ширине по умолчанию? Ведь другие виды выравнивания по умолчанию можно устанавливать.
Ответить с цитированием
  #2  
Старый 18.10.2011, 09:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

-в OnCreate вызвать SetAlignmentJustify:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetAlignmentJustify;
end;
-код вставки изменить (лучше наследника TRichEdit создать) на:
Код:
  SendMessage(RichEdit1.Handle, EM_SETSEL, -1, 0);
  SetAlignmentJustify;
  SendMessage(RichEdit1.Handle, WM_PASTE, 0, 0);
-ну и сама SetAlignmentJustify:
Код:
procedure TForm1.SetAlignmentJustify;
const
  EM_SETTYPOGRAPHYOPTIONS = WM_USER+202;
  TO_ADVANCEDTYPOGRAPHY = 1;
var
  pf: PARAFORMAT2;
begin
  SendMessage(RichEdit1.Handle, EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY);
  ZeroMemory(@pf, SizeOf(PARAFORMAT2));
  pf.cbSize:=SizeOf(PARAFORMAT2);
  pf.dwMask:=PFM_ALIGNMENT;
  pf.wAlignment:=PFA_JUSTIFY;
  SendMessage(RichEdit1.Handle, EM_SETPARAFORMAT, 0, LPARAM(@pf));
end;
-вставку с заменой доработать самому
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 19.10.2011, 00:38
TotalRecall TotalRecall вне форума
Прохожий
 
Регистрация: 17.10.2011
Сообщения: 2
Репутация: 10
По умолчанию

Спасибо! Попробую.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter