![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программно скроллировать текуст в tmemo [D6, WinXP]
karlsn © (2004-06-09 10:46:00)Подскажите, мне надо реализовать подсказку, я хочу что бы текст скролиировался в мемо1 медленно.
вот процедура которой я пользуюсь
procedure scroll;\
Var
ScrollMessage:TWMVScroll;
i:integer;
begin
ScrollMessage.Msg:=WM_VScroll;
for i := 1 DownTo 0 do
begin
ScrollMessage.ScrollCode:=sb_LineDown;
ScrollMessage.Pos:=ScrollMessage.Pos+350;
Memo1.Dispatch(ScrollMessage);
end;
Но когда двигаешь мышью по форме, то двмжение начинает ускоряться. Как от этого избавиться?
Или можно реализовать это с помощью другого кода?
karlsn (2004-06-10 17:04:00) [1]может есть другие способы прокрутки?
KilkennyCat (2004-06-10 02:15:00) [2]ИМХО, необходимо блокировать-разблокировать update, и лучше сделать в отдельном потоке. чтобы передача фокусов, перерисовка и прочее не влияла на скорость отработки требуемого.
и вот здесь все верно?
> for i := 1 DownTo 0 do
сколько раз отрабатывает этот цикл? :)
karlsn (2004-06-09 19:59:00) [3]
> отключай влияние мыши на компоненту
как это? поподробнее... кстати когда водишь по экрану ничего а когда по форме то ускоряется...
[BAD]Angel (2004-06-09 16:43:00) [4]отключай влияние мыши на компоненту
karlsn (2004-06-09 16:40:00) [5]
> Почемы бы не использовать EM_LINESCROLL ?
Я пробовал, но минимум прокручивать можно на одну строку и плавности неполучается, кажется будто он едет урывками, но проблема с мышкой решается.... нет надо другой способ.
VAleksey (2004-06-09 11:04:00) [6]Почемы бы не использовать EM_LINESCROLL ?