![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Я делаю текстовый редактор чтобы он работал и с .txt и c rtf т.е чтобы когда .txt был открыт нельзя было выбрать отдельное выравнивание для абзаца...И вот столкнулся с проблемой не выравнивает вот кусок кода...
Код:
if Pos('.txt',Textovi.Caption)>0 then RichEdit1.Alignment:=taCenter else RichEdit1.Paragraph.Alignment:=taCenter; |
#2
|
||||
|
||||
![]() Цитата:
Пример со стандартным TRichEdit: Код:
RichEdit1.PlainText:=True; RichEdit1.Alignment:=taCenter; Пример с TRxRichEdit: Код:
RxRichEdit1.PlainText:=True; RxRichEdit1.Alignment:=taCenter; Правда насколько я помню, у TRxRichEdit вроде были свои глюки, которых нет у стандартного TRichEdit. Так что экспериментируй. ![]() |
#3
|
||||
|
||||
![]() Когда-то тоже сталкивался с такой проблемой (при выравнивании TRichEdit.Alignment). Сделал просто: копировал весь текст в StringList (если без форматирования), дальше
Код:
RichEdit1.Alignment:=taCenter; RichEdit1.Lines.Text:=''; RichEdit1.Lines.AddStrings(StringList); |
#4
|
|||
|
|||
![]() Цитата:
|
#5
|
|||
|
|||
![]() Цитата:
У мя были мысли проходить по всем строкам и выравнивать через параграф но это Муть надо более рациональное решение... |
#6
|
|||
|
|||
![]() Я про выделенные абзацы не просто так написал
Код:
RichEdit1.SelStart:=0; RichEdit1.SelLength:=Length(RichEdit1.Text); RichEdit1.Paragraph.Alignment:=taCenter; RichEdit1.SelStart:=0; Последний раз редактировалось Аватар, 25.08.2012 в 23:10. |
#7
|
||||
|
||||
![]() Цитата:
Кстати у TRichEdit-а есть специальный метод для выделения всего текста - SelectAll. Поэтому более правильно вышеприведённый код должен выглядеть так: Код:
RichEdit1.SelectAll; RichEdit1.Paragraph.Alignment:=taCenter; RichEdit1.SelStart:=0; Тем не менее что в первом, что во втором случае достаточно выделить весь текст (Ctrl+A) и удалить его (Delete) и опять выравнивание будет не по центру, а в соответствии с значением свойства RichEdit1.Alignment (а вовсе не в соответствии с RichEdit1.Paragraph.Alignment). И отсюда кстати вытекает способ который предлагает YVitaliy: Свойство RichEdit1.Alignment правильно сработает только на пустом TRichEdit. Если же TRichEdit непустой и содержит нужный текст, то перед очисткой TRichEdit-а этот текст можно сохранить. Например так: Код:
var s: String; begin RichEdit1.Alignment := taCenter; s := RichEdit1.Text; RichEdit1.Text := ''; RichEdit1.Text := s; end; P.S. Речь выше шла конечно же о неформатированном тексте. В форматированном же тексте каждый абзац может быть выровнен по своему и тут уже нужно использовать свойство Paragraph. Последний раз редактировалось poli-smen, 26.08.2012 в 02:58. |
#8
|
|||
|
|||
![]() poli-smen, потестил вариант Аватара с вашими доработками всё робит...пока не найду косяк к этому варианту склонюсь
|