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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перетаскивание окружности в picturebox, зажатой клавишей мыши таскать circle  
V
    Опции темы
Pugach
Дата 27.6.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хеллоу.
Подскажите плиз как тоскать нарисованный програмно circle по picturebox
Так я добился постепенного перемещения, но при этом нужно многократно нажимать на мышь:
Код

Dim Xc, Yc As Single
Private Sub Form_Load()
  DrawWidth = 10
  Xc = 100
  Yc = 100
  Picture1.Circle (Xc, Yc), 50
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Abs(X - Xc) < 50 And Abs(Y - Yc) < 50 Then
    Picture1.Cls
    Xc = X
    Yc = Y
    Picture1.Circle (X, Y), 50
  End If
End Sub

а как такое проделывать просто зажав мышь и перемещать? smile 
PM MAIL   Вверх
Akina
Дата 27.6.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Цитата(Pugach @  27.6.2007,  23:48 Найти цитируемый пост)
как такое проделывать просто зажав мышь и перемещать? 

Самое простое - обрабатывать не MouseDown, а MouseMove. Однако тормозить будет безбожно =- следовательно перерисовку придется делать не каждое событие, а по условию (скажем раз в 25 мс, или при смещении на более чем 40 твип, или еще как...)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Pugach
Дата 28.6.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Зы, класно, спасибо вроде и не лагает даже : без задержек и доп. условий
Код

Dim Xc, Yc As Single
Dim act As Boolean
Private Sub Form_Load()
  DrawWidth = 10
  Xc = 100
  Yc = 100
  Picture1.Circle (Xc, Yc), 50
  act = False
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Abs(X - Xc) < 50 And Abs(Y - Yc) < 50 Then
    If act = False Then
     act = True
     Else
     act = False
    End If
  End If
End Sub
 
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If act = True Then
    Picture1.Cls
    Xc = X
    Yc = Y
    Picture1.Circle (X, Y), 50
  End If
End Sub

+ ненадо никаких доп условий на то чтоб кружок не вылезал за picture )

Так конечно тоже сойдет но перемещение происходит по методу вкл/выкл
а хотелось бы еще чтоб во время зажатой клавиши мыши. Такой метод есть? Или нада в Api лезть?
PM MAIL   Вверх
cardinal
Дата 28.6.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Код

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  act = False
End Sub

 smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Pugach
Дата 29.6.2007, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да, так работает, спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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