Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движение Image, Builder C++ 
:(
    Опции темы
Evgesha
  Дата 12.11.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проблема такая, на форме лежит Панел, на ней лежит Имдже. Имадже положил на Панель чтоб не моргала
Как при перемещении Панели изменялись СкролБары на СкролБоксе.  smile 
Код

void __fastcall TAnsichtForm::AnsichtImageMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  bMove = true;
  oldx = X; oldy = Y;
}
//---------------------------------------------------------------------------
void __fastcall TAnsichtForm::AnsichtImageMouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
if(bMove)
   {
    ReleaseCapture();
    Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0);
   }
}

//---------------------------------------------------------------------------
void __fastcall TAnsichtForm::AnsichtImageMouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  bMove = false;
}
//---------------------------------------------------------------------------


Помогите буду очень признателен 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Rodman
Дата 13.11.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



а нельзя ли просто делать видимым и ноборот????

Это сообщение отредактировал(а) Rodman - 13.11.2006, 19:22
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Evgesha
Дата 13.11.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нет так не пойдет
Мне надо двигать
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Alexeis
Дата 13.11.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Evgesha @  12.11.2006,  12:10 Найти цитируемый пост)
Имадже положил на Панель чтоб не моргала

Может стоило просто в конструкторе формы написать 
DoubleBuffered = true; ? тогда бы не мигала...


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
a_n_d_y
Дата 13.11.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

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



Напиши при сзодании формы (OnCreate)
Код

DoubleBuffered = true;

PM MAIL ICQ Skype MSN   Вверх
Evgesha
Дата 14.11.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да прочтите вы вопрос правильно у меня проблема не в моргании 
А в скролбоксе  smile 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Evgesha
Дата 15.11.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Неужели никто не сталкивался с проблемой
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Evgesha
Дата 18.11.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Обидно до слез
Ни кто не знает чтоли
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
586
Дата 19.11.2006, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



первое, что пришло в голову:
Код
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
 if(bMove)
 {
  ReleaseCapture();
  Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0);
  SendMessage(Panel1->Handle, WM_SIZE, 0, 0);
 }
}

Подойдет?
PM   Вверх
Evgesha
Дата 19.11.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я наверное вопрос не правильно поставил
С движением у меня все нормально. Не получаеться скролеры расчитать в сролбоксе
Ну например когда я имадже увеличиваю в два раза. Чтоб когда мышкой панель таскаю скролеры соответсвено двигались
Ну надеюсь теперь нормально разеснил
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
586
Дата 19.11.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Когда рисунок зайдет за границу скролл бокса, скроллеры изменятся.
Сообщение WM_SIZE дает понять скроллбоксу, что панель изменила свои размеры => изменяет скролл бары.
PM   Вверх
Evgesha
Дата 21.11.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да ноя хачу ИМАДЖЕ двигать мышкой и чтоб Скролбары двигались тоже, а вот как это зделать не догоняю  smile 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Evgesha
Дата 24.11.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вот блин неужели никто не делал помогите пожайлуста  smile 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
pandrew
Дата 24.11.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Evgesha)
вот блин неужели никто не делал помогите пожайлуста

Ты объясни повнятней, а то я также как 586 не врубаюсь, в чем у тебя проблема.

PM MAIL   Вверх
586
Дата 24.11.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Цитата(pandrew @  24.11.2006,  16:12 Найти цитируемый пост)
Ты объясни повнятней, а то я также как 586 не врубаюсь, в чем у тебя проблема.

Да я то врубаюсь, в чем проблема. Сейчас скроллбары изменяются, если кнопка мыши будет отпущена. А он хочет, чтобы во время передвижение (когда кнопка мыши нажата) скроллбары изменялись. Во время передвижения просто не проходит сообщение WM_SIZE.

Можно воспользоваться старым дедушкиным способом (спёр из книги Архангельского):
Код

bool bMove=false;
int x, y;
TRect r;

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
 bMove=true;
 //::SetCapture(Panel1->Handle);    // блокировка фокуса

 // ограничение подвижности курсора
 //RECT r;
 //GetWindowRect(ScrollBox1->Handle, &r);
 //ClipCursor(&r);
 x=X; y=Y;
}

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
 if(!bMove) return;
 r=Panel1->BoundsRect;
 r.Left+=X-x;  r.Right+=X-x;
 r.Top+=Y-y;   r.Bottom+=Y-y;
 Panel1->BoundsRect=r;
}

void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
 bMove=false;
 //::ReleaseCapture();     // освобождение фокуса

 // освобождение подвижности курсора
 //ClipCursor(0);
}


Это сообщение отредактировал(а) 586 - 24.11.2006, 17:23
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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