перетаскивание

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
JIeT4uK
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 23.03.2003 (Вс) 4:48
Откуда: Украина, Донецк

перетаскивание

Сообщение JIeT4uK » 26.10.2003 (Вс) 8:34

как сделать перетаскивание объектов по форме мышкой?Я идиот! Убейте меня, кто-нибудь!??

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

ответ

Сообщение BOO » 26.10.2003 (Вс) 14:48

Я че-то не понял? А ты умеешь перетаскивать клавой?? :lol:

событие drag_over возникает когда перетаскиваемый объект находится над объектом вызвавшим событие (form_drag_over возникает когда ты переносиш какой то объект над формой) вэту процедуру входят параметры: x,y-координаты мышки;source-переносимый объект, и state-это тебе не надо
в конце перетаскивания(когда ты отпускаешь мышку происходит событие drag_over

т.е если ты хочеш чтобы объект просто таскался по форме юзай это:
(у меня объект -command1)
Option Explicit
Dim LastX As Integer 'Я идиот! Убейте меня, кто-нибудь!?? Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь! X
Dim LastY As Integer 'Я идиот! Убейте меня, кто-нибудь!?? Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь! Y
Private Sub Command1_DragDrop(Source As Control, X As Single, Y As Single)
'Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!
End Sub
Private Sub Command1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
'???? Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!????
Command1.Left = Command1.Left + X - LastX
Command1.Top = Command1.Top + Y - LastY

End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Я идиот! Убейте меня, кто-нибудь!? Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!????
Command1.Drag vbBeginDrag
LastX = X
LastY = Y
End Sub
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
'Я идиот! Убейте меня, кто-нибудь!???? ??? Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!:
'???? ?? Я идиот! Убейте меня, кто-нибудь!? Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!? ?? ??? ?? Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!? Command1_DragOver Я идиот! Убейте меня, кто-нибудь!?? Я идиот! Убейте меня, кто-нибудь! ??? Я идиот! Убейте меня, кто-нибудь!????!
'?.?. ???? ? ???? ?? Я идиот! Убейте меня, кто-нибудь!???? ??? Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!? Я идиот! Убейте меня, кто-нибудь!?? Я идиот! Убейте меня, кто-нибудь!??? Я идиот! Убейте меня, кто-нибудь!??-Я идиот! Убейте меня, кто-нибудь!??? frame1,Я идиот! Убейте меня, кто-нибудь! Я идиот! Убейте меня, кто-нибудь!? Я идиот! Убейте меня, кто-нибудь!???? ??? ??? ? ? frame1__DragOver
Command1.Left = X - LastX
Command1.Top = Y - LastY
End Sub
Слушайте рок!

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

упс

Сообщение BOO » 26.10.2003 (Вс) 14:49

глю вышел я незнал что такого шрифта нет но ничего все равно это были хелпы тебе :lol:
Слушайте рок!

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

Сообщение BOO » 26.10.2003 (Вс) 15:00

вот теперь все будет тип-топ :lol:
Option Explicit
Dim LastX As Integer 'прошлая координата X
Dim LastY As Integer 'прошлая координата Y
Private Sub Command1_DragDrop(Source As Control, X As Single, Y As Single)
'происходит когда отпускаешь мышку
End Sub
Private Sub Command1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
'само перетаскивание
Command1.Left = Command1.Left + X - LastX
Command1.Top = Command1.Top + Y - LastY

End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'начало перетаскивания
Command1.Drag vbBeginDrag
LastX = X
LastY = Y
End Sub
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
'Понимаешь тут такая жуй-ня
'если ты ведешь мышкой слишком быстро то уже не срабатывает Command1_DragOver поэтому нужна еще и эта процедера
'т.е. если у тебя на форме есть еще объекты больношого размера например frame1,тогда добавь следующие строчки в событие frame1__DragOver
Command1.Left = X - LastX
Command1.Top = Y - LastY
End Sub
Слушайте рок!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 5

    TopList  
cron