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

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

В Наследнике TScrollBox периписать процедуру скроллинга [D7]


Stanislav ©   (2005-08-18 12:16:00) 

Есть наследник TScrollBox. Он Содержит объект, который при вертикальном скроллинге должен изменять положение TOP.
Подскажите пожалуйста
Какая процедура отвечает за это ? Либо за прорисовку объектов после скроллинга?


Stanislav   (2005-08-25 10:31:00) [1]

Спасибо! пробую.


Наиль   (2005-08-25 01:56:00) [2]

>[4]
С этого и надо было начинать.
Природа ScrollBy такова, что ты не можешь отменить перемещение контролов. Но если присмотреться внимательнее, то можно увидеть, что в этой процедуре не происходит прорисовки. А это значит, что если поменять координаты обратно до того как будет произведена прорисовка, то ни кто не чего не заметит. Теперь следи за мыслёй. Вызовы: ScrollBy->Realign->AlignControl.
AlignControl является виртуальным. Понял мою мысль? Тогда действуй!


Stanislav   (2005-08-22 14:14:00) [3]

Наиль ©   (19.08.05 22:29) [3]
Мне нужно, чтобы передвигались все кроме одного (Шкала времени), Он передвигается по горизонтали, но не должен передвигаться по вертикали.
А ScrollBy пробывал переписать, но она не вызывается при скроллинге.


Наиль   (2005-08-19 22:29:00) [4]

СкроллБокс для того и придуман, чтобы компоненты передвигались автоматическипри изменении скроллинга. За это отвечает функция ScrollBy.
Либо вопрос задан не правильно, либо ты делаешь что-то не правильно.


Stanislav   (2005-08-19 11:14:00) [5]

Наиль ©   (18.08.05 21:19) [1]
Спасибо, с этм понятно.
Я наверное неправильно поставил вопрос.
Мне нужно знать в какой момент переместить свой контрол.
Например: пользователь протащил скроллинг вниз, если бы у объекта TScrollBox была процедура paint, я бы в ней переместил свой объект, а в нем нет этой процедуры.


Наиль   (2005-08-18 21:19:00) [6]

Посмотри
procedure TWinControl.ScrollBy(DeltaX, DeltaY: Integer);
Обрати внимание на
     Inc(Control.FLeft, DeltaX);
     Inc(Control.FTop, DeltaY);

Дальше, я думаю, наша помощь больше не понадобится.


Наверх

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