Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение объектов на форме, C++ Builder 5 
:(
    Опции темы
Garik
Дата 4.9.2002, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 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). Может быть есть какие-то идеи?
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
TwoK
Дата 5.9.2002, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Сделай TPanel (без Aligna только) и ставь ему top равный коэффициенту "прокрученности" твоего имага.

Да, придется сделать этот самый коэффициент (0 - начало, 100 - самый низ, например) глобальной переменной или в сообщиния его припахивать.


--------------------
Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше...
PM MAIL   Вверх
Garik
Дата 5.9.2002, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



Да я в принципе так и делаю. Это понятно, не ясно другое: пока я перемещаю этот имидж, объекты, которые должны перемещаться в зависимости от его положения, остаются на месте. Как я отпустил имидж, они скакнули в нужную точку. А мне хочется, чтобы это происходило плавно, по мере перемещения имиджа.
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
TwoK
Дата 5.9.2002, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Сделай глобальный bool, в OnMouseDown ставь его, в OnMouseUp снимай. Напиши OnMouseMove и проверяй там этот буль. Если он true - выставляй top равный коэффициенту.


--------------------
Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше...
PM MAIL   Вверх
Garik
Дата 6.9.2002, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



Спасибо, попробую...
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
Garik
Дата 9.9.2002, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



К сожалению, не работает. Видимо SendMessage все перебивает...
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1222 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.