![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.01.2010
Сообщений: 21
|
![]()
Здрасьте всем!
Есть RichEdit. В нем большой текст. Есть массив подстрок этого текста, в котором сохранены сами подстроки и их позиция в тексте. Задача: 1. Нажатием кнопки выделить очередную подстроку. 2. При этом необходимо, чтобы эта выделенная подстрока позиционировалась по середине (в смысле по вертикальной середине, расположение по горизонтали роли не играет) клиентской области RichEditа. С первой задачей кое-как справился ![]() Поможите, чем могёте, пжлста! А то уже голову сломал. Пасиба. Последний раз редактировалось victorixx; 13.09.2013 в 08:26. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Центрируется абзац целиком. См. свойство Paragraph.Alignment
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.01.2010
Сообщений: 21
|
![]()
Я не в том смысле что центрировать алайнмент. Может не так выразился... Мне надо, чтобы строка, в которой находится выделенная (SelStart, SelLength и всё такое) подстрока "встала" посередине клиентской области, то есть не вверху поля ввода и не внизу, а посерединке. Понятно?
Нажатием кнопки выделяется очередная подстрока. Пока эти подстроки находятся в начале текста - все нормально. Но как только они начинают сдвигаться за пределы видимой области вниз, то сам текст, соответственно, тоже сдвигается вверх. В принципе, мне это и нужно, но при сдвиге очередная выделенная подстрока находится у нижнего края (а то и вообще в правом нижнем углу) окна ввода, и пользователю неудобно читать контекст. Scrollby не подходит, так как он медленный и не в каждом случае нужен (несколько подстрок могут находиться и в самом начале текста, а ставить выполнение или невыполнение scrollby в зависимость от позиции подстроки в тексте невозможно, так как сам текст, его размер и размер шрифта могут изменяться). Вот... как то так. Последний раз редактировалось victorixx; 13.09.2013 в 08:05. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
![]()
прокрутить область нужно?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 29.01.2010
Сообщений: 21
|
![]()
собственно говоря, да, но предварительно нужно еще узнать, насколько ее нужно прокручивать
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Можно так примерно в середину. Фокус должен оставаться на RichEdit, иначе проблемы с GetCaretPos, поэтому и SpeedButton
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 29.01.2010
Сообщений: 21
|
![]()
Блин! Не очень понял как именно, но факт - получилось. Спасибо огроменное!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выделенный текст в WebBrouser! | Leximus | Общие вопросы Delphi | 1 | 07.06.2012 11:13 |
Грабить выделенный текст. | Alex Cones | Общие вопросы Delphi | 9 | 25.03.2010 14:04 |
Выделенный текст в RichEdit | Andr | Компоненты Delphi | 1 | 20.08.2007 20:53 |
Выделенный текст в другом приложении | Nez | Win Api | 9 | 09.04.2007 01:52 |