|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
RichEdit по умолчанию выравнивание по ширине
Знаю способ (Путем отправки сообщения компоненту. 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
|
|||
|
|||
Спасибо! Попробую.
|