![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Garik |
|
|||
Бывалый ![]() Профиль Группа: Участник Клуба Сообщений: 216 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 4 |
Мне надо сделать что-то типа полосы прокрутки, не используя разных дополнительных компонентов, причем чтобы она была не похожа на стандартную виндовую. Для этого использую TImage (бегунок) и панель. Перемещаю имидж по панели следующим способом:
void __fastcall TShell::Image2MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft) { ReleaseCapture (); SendMessage (Image2->Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0); } } Тут все нормально. А вот как мне в зависимости от положения Image2 перемещать другие объекты на форме? Да, я могу переместить их после того, как отпустил кнопку мыши, но мне надо отслеживать их положение в реальном времени, когда мой "бегунок" находится в процессе перемещения. Итак, надо либо перемещать нужные мне объекты в режиме реального времени либо придумать другой способ перемещать бегунок (без SendMessage). Может быть есть какие-то идеи? --------------------
Программист - это не профессия. Это диагноз... |
|||
|
||||
TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Сделай TPanel (без Aligna только) и ставь ему top равный коэффициенту "прокрученности" твоего имага.
Да, придется сделать этот самый коэффициент (0 - начало, 100 - самый низ, например) глобальной переменной или в сообщиния его припахивать. -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
Garik |
|
|||
Бывалый ![]() Профиль Группа: Участник Клуба Сообщений: 216 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 4 |
Да я в принципе так и делаю. Это понятно, не ясно другое: пока я перемещаю этот имидж, объекты, которые должны перемещаться в зависимости от его положения, остаются на месте. Как я отпустил имидж, они скакнули в нужную точку. А мне хочется, чтобы это происходило плавно, по мере перемещения имиджа.
--------------------
Программист - это не профессия. Это диагноз... |
|||
|
||||
TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Сделай глобальный bool, в OnMouseDown ставь его, в OnMouseUp снимай. Напиши OnMouseMove и проверяй там этот буль. Если он true - выставляй top равный коэффициенту.
-------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
Garik |
|
|||
Бывалый ![]() Профиль Группа: Участник Клуба Сообщений: 216 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 4 |
Спасибо, попробую...
--------------------
Программист - это не профессия. Это диагноз... |
|||
|
||||
Garik |
|
|||
Бывалый ![]() Профиль Группа: Участник Клуба Сообщений: 216 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 4 |
К сожалению, не работает. Видимо SendMessage все перебивает...
--------------------
Программист - это не профессия. Это диагноз... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |