Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Позиционирование курсора в TMemo. [D7, XP]


JohnKorsh ©   (2012-01-26 12:41:00) 

Не подскажете ли как грамотно ставить курсор в TMemo на последнюю строку в последнюю позицию для ввода?


Германн   (2012-01-28 02:14:00) [1]

Пока ещё никто ничего не добавил, выскажусь дополнительно.
Совет в Германн ©   (27.01.12 18:08) [12] конечно даёт ответ на желание автора, но если речь действительно идёт о просмотре Журнала Событий "на лету", то сей совет скорее следует считать BadTip. Ибо стандартное поведение самое оптимальное:
1. Хочет пользователь видеть вновь поступающие сообщения сразу - ставит курсор в конец. И получает то что хочет.
2. Хочет подробно рассмотреть/прочитать/осмыслить какое-то "не последнее" - ставит курсор на него. И получает то что хочет.


Германн   (2012-01-27 18:08:00) [2]

Попробуй еще добавить
SendMessage(Memo1.Handle,WM_VSCROLL, SB_BOTTOM, 0);


JohnKorsh   (2012-01-27 18:02:00) [3]

Да, лог. А как написать, чтобы изначально прокручивался знаете?


Inovet   (2012-01-26 17:36:00) [4]

> [9] Сергей М. ©   (26.01.12 17:33)
> Ты вот скажи накой шиш тебе понадобилось это ?

Наверное лог пишет и надо, чтобы прокручивался.


Сергей М.   (2012-01-26 17:33:00) [5]

Ты вот скажи накой шиш тебе понадобилось это ?

Курсор указывает юзеру тек.позицию ввода в тект.поле контрола.

Чего он там, юзер, успеет ввести за то смехотворное время, за которое программа успеет добавить в мемо 100 записей ?


JohnKorsh   (2012-01-26 17:24:00) [6]

for i := 1 to 100 do
begin
 Memo.Lines.Add ('Text');
end;
Memo.SelStart := Length (Memo.Text);

При выполнении кода курсор остаётся в начале текста, хотя текст "уезжает" за пределы экрана.
Если при выполнении кода вручную поставить курсор на конец Text, то,
далее, при добавлении строк программой идёт прокрутка текста и крсор позиционируется как и хотелось.


Сергей М.   (2012-01-26 15:58:00) [7]


> он остаётся в начале текста


А с чего бы ему дергаться ?
Где его поставили - там он и стоит ..


JohnKorsh   (2012-01-26 15:51:00) [8]

Да я так и делаю, но есть непонимание - если программа добавляет стринги в Memo, то пока при выполнении кода вручную не передвинуть курсор на эту самую позицию Memo.SelStart := Length (Memo.Text), он остаётся в начале текста. Потом всё идёт как и положено. Не поясните ли?


Сергей М.   (2012-01-26 13:03:00) [9]


> Сессия же прошла вроде как? Откуда такой наплыв?


Другие времена, другие нравы)
Теперь сессии для лодырей длятся круглый год - были бы деньги)


OW   (2012-01-26 13:00:00) [10]


> Memo1.SelStart := Length(Memo1.Text);


как привык писать xxx.sql.text, так и в memo хочется что-то указать сначала, сразу получить текст - вроде как не заслужил кажется :)
механическая память, походу :)


Ega23   (2012-01-26 12:53:00) [11]

Сессия же прошла вроде как? Откуда такой наплыв?


~AQUARIUS~   (2012-01-26 12:48:00) [12]

Memo1.SelStart := Length(Memo1.Text);


OW   (2012-01-26 12:47:00) [13]

memo.SelStart := Length(memo.Lines.text);


Наверх

Титульная страница Поиск, карта сайта Написать письмо