![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиционирование курсора в 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);