Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
1

Перетаскивание объектов на форме мышью

25.11.2012, 16:10. Показов 4957. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно сделать такое же, только в VB 6:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Explicit
 
Const SNAP! = 5
Dim Xdown!, Ydown!
 
Private Sub Label1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 
'Без этой процедуры можно обойтись, но с ней
'мышка чуть быстрее "зацепляет" объект
 
Xdown = X: Ydown = Y
End Sub
 
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim l!, t!
If Button = 1 Then
    With Label1
        .Left = Application.Min(Application.Max(.Left - Xdown + X, 0), Me.Width - .Width - 5!)
        .Top = Application.Min(Application.Max(.Top - Ydown + Y, 0), Me.Height - .Height - 19!)
        If Abs(.Left - Label2.Left) <= SNAP And Abs(.Top - Label2.Top) <= SNAP Then
            .Left = Label2.Left
            .Top = Label2.Top
        End If
    End With
Else
    Xdown = X: Ydown = Y
End If
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2012, 16:10
Ответы с готовыми решениями:

Перетаскивание объектов на форме, исправить код
Доброго времени суток. Вот такой код : public Form1() { InitializeComponent(); }...

Перемещение объектов по форме мышью
Как можно сделать перемещение объектов на различные места на форме? Т.е, зажимаешь лкм на кнопку...

Изменение размеров объектов на форме мышью
Всем привет! Делаю программу на Visual C#. В программе я сделал перетаскивание нужных мне объектов:...

Перетаскивание контролов мышью
Нужно по нажатию мыши на элементе перетаскивать контрол(элемент) за курсором.

10
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
25.11.2012, 16:22 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Const SNAP! = 500
Dim Xdown!, Ydown!
 
 
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Xdown = X: Ydown = Y
 
End Sub
 
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim l!, t!
If Button = 1 Then
    With Label1
       .Move .Left - Xdown + X, .Top - Ydown + Y
        If Abs(.Left - Label2.Left) <= SNAP And Abs(.Top - Label2.Top) <= SNAP Then
            .Left = Label2.Left
            .Top = Label2.Top
        End If
    End With
Else
    Xdown = X: Ydown = Y
End If
End Sub
1
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
25.11.2012, 16:41  [ТС] 3
Воооо!!! Спасибо!!! Может ты знаешь как сделать следующее:
При соприкосновении лейбла с лейблом должно вылетать сообщение, и главное, лейбл должен встать на изначальное место
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.11.2012, 17:18 4
Цитата Сообщение от Cricket93 Посмотреть сообщение
При соприкосновении лейбла с лейблом должно вылетать сообщение, и главное, лейбл должен встать на изначальное место
Ну это же проще простого
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Const SNAP! = 500
Dim Xdown!, Ydown!, bX As Single, bY As Single
 
 
Private Sub Form_Load()
    bX = Label1.Left: bY = Label1.Top
End Sub
 
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Xdown = X: Ydown = Y
 
End Sub
 
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim l!, t!
If Button = 1 Then
    With Label1
       .Move .Left - Xdown + X, .Top - Ydown + Y
        If Abs(.Left - Label2.Left) <= SNAP And Abs(.Top - Label2.Top) <= SNAP Then
            MsgBox "Столкновение"
            .Left = bX
            .Top = bY
            '.Left = Label2.Left
            '.Top = Label2.Top
        End If
    End With
Else
    Xdown = X: Ydown = Y
End If
End Sub
1
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
25.11.2012, 17:35  [ТС] 5
Блин почти)))) Но че-то не совсем бачит

Добавлено через 11 минут
Цитата Сообщение от SoftIce Посмотреть сообщение
Ну это же проще простого
Почему-то реагирует когда я не касаюсь лейбла, а когда касаюсь не реагирует
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.11.2012, 18:03 6
Прикрепляю проект.
Всё у меня работает. Не увеличивай размер красных лейблов. Копируй и вставляй их сколько хочешь, и из этих квадратиков строй лабиринт.
Вложения
Тип файла: rar C.rar (1.5 Кб, 77 просмотров)
1
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
25.11.2012, 18:29  [ТС] 7
Толстые лейблы, я то планировал так:
Вложения
Тип файла: rar Новая папка.rar (1.9 Кб, 34 просмотров)
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.11.2012, 20:54 8
Цитата Сообщение от Cricket93 Посмотреть сообщение
Толстые лейблы, я то планировал так
Только я не проверил до конца - терпения не хватило довести до финиша
Вложения
Тип файла: rar Новая папка.rar (2.2 Кб, 49 просмотров)
0
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
25.11.2012, 21:34  [ТС] 9
Вот блин!!! Я уже сделал из предыдущего архива
Вложения
Тип файла: rar Лабиринт Заура.rar (6.7 Кб, 73 просмотров)
0
SoftIce
25.11.2012, 21:40
  #10

Не по теме:

Цитата Сообщение от Cricket93 Посмотреть сообщение
Вот блин!!! Я уже сделал из предыдущего архива
Молодец, чо ! Будет два разных рабочих варианта.

0
145 / 46 / 1
Регистрация: 06.11.2012
Сообщений: 283
25.11.2012, 22:10  [ТС] 11
Тока я там по буквами АР следал сквозную стенку (и еще в некоторых местах), чтобы сократить путь)) Надо будет подумать над тем, как сделать чтоб показывало за сколько пройден лабиринт
0
25.11.2012, 22:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2012, 22:10
Помогаю со студенческими работами здесь

Перетаскивание объекта мышью
Добрый вечер появилась такая проблема: объекты не реагируют нужно на нажатие левой клавиши мыши,...

Перетаскивание блоков мышью
Здравствуйте, не знаете, как сделать перелистывание как в гугле или вк? Ну когда мышкой можно...

Перетаскивание символа мышью
Может быть кто-то знает, как именно сделать перетаскивание мышкой символа или слова. Скажем можено...

Перетаскивание панели мышью в рантайме
Напишите пожалуйста программку небольшую.1 панель и перетаскивается курсором вверх и вниз.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru