![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Знаю способ (Путем отправки сообщения компоненту. Google помог) как выравнивать по ширине выделенный текст. Но мне нужно выравнивание по ширине, которое действует постоянно (по умолчанию). Можно сделать и с помощью способа, о котором написал выше. Например, после вставки из буфера обмена выделять весь текст и запускать выравнивание, но в этом случае остается выделение. Которое нужно убрать установив курсор в конец вставленного фрагмента, а это еще куча хитростей со своими глюками, болото в общем.
Так может есть способ установки выравнивания по ширине по умолчанию? Ведь другие виды выравнивания по умолчанию можно устанавливать. |
#2
|
||||
|
||||
![]() -в OnCreate вызвать SetAlignmentJustify:
Код:
procedure TForm1.FormCreate(Sender: TObject); begin SetAlignmentJustify; end; Код:
SendMessage(RichEdit1.Handle, EM_SETSEL, -1, 0); SetAlignmentJustify; SendMessage(RichEdit1.Handle, WM_PASTE, 0, 0); Код:
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
|
|||
|
|||
![]() Спасибо! Попробую.
|