Проблема с Drag&Drop

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Проблема с Drag&Drop

Сообщение moppuk » 01.02.2006 (Ср) 0:45

На одной форме с Drag&Drop ни каких проблем нет. Все ок, работает, все отлично...
Проблема вот в чем...
Если я на форму кидаю например frame (для редактировения какого либо графика - использует картинки), и label. В label помещаю картинки, ну скажем штук 5, а потом мне надо из этого Labla из перенести на Frame. Да и надо продолжать их перемещать по frame.
Да и еще я столкнулся с такой проблемой, как... Как еще сделать, чтобы 2 картинки по Framu перемешались не зависимо от друга. Как узатать, что именно эту эту картинку я собираюсь тоскать... А то получается что...
Я беру 1-ю, перетаскиваю, появляется 2...
использую процедуру drag and drop на Frame...
Помогите плиз, буду очень признателен...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 0:47

Ничего не понятно :)
Еще раз - какие контролы есть на форме и как они должны работать?

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 0:50

Amed, я через полчасика все точно опишу...
Я не работе, сейчас домой приеду...
И полностью все тебе напишу....

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 2:00

На форме...
Treeview, frame, list, listbox...
При выборе в пункта в treeview появляется картинка в listbox... С этим ты мне помог, спасибо все ок...
Далее, мне надо звять ее и из listboxa перетащить в frame... А после ее появления во фраме свободно перемещать...
Вот и все...
Потом еще картинки, еще.... И чтобы я их все кидал на фрзйм.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 12:30

На форме Frame и ListBox.

Код: Выделить всё
Dim dragging As Boolean
Dim imgcount As Long

Private Sub Form_Load()
List1.AddItem "aaa"
List1.AddItem "bbb"
End Sub

Private Sub Frame1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If dragging = True Then
    MsgBox List1.List(List1.ListIndex) & " dragged!"
    imgcount = imgcount + 1
    Frame1.Caption = imgcount
    List1.Enabled = True
End If
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
dragging = False
If List1.ListIndex <> -1 And List1.ListCount > 0 Then
    List1.Enabled = False
    dragging = True
    Form1.MousePointer = 2
End If
End Sub


После перетаскивания надо добавить еще один контрол во Frame и загрузить туда соответствующую картинку. В форуме были примеры добавления.
Код не рабочий, а только пример: если перетащить не на фрейм, а куда-то еще, будет заминка.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 12:37

moppuk, не стоит создавать несколько одинаковых тем. Если надо, модераторы все перенесут куда надо. А больше осмысленных ответов не будет.

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 12:53

Хорошо Amed, я понял. Больше такого не повториться...
А зв drag&drop, спасибо. Думаю что все получится. Я прада пока не пробовал, как попробую, сразу отпишу что и как.

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 13:01

Блин,что-то я не понял ни чего... То что он добавляет в List1. Не перетаскивается во Frame ни как... Вообще...

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 13:02

Да и катринку мне надо перетаскивать а не текст...

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:02

Вообще, запара, ни получается...
Как я не бодаля...
Help кто-нибудь...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 17:06

Рассказываю принцип моего кода, раз такое дело.

Если мы нажали ЛКМ на списке, значит, мы хотим перетащить элемент из списка во фрейм, что и отмечаем флагом dragging.
Если мы отпустили кнопку на фрейме, и dragging=true, то есть до этого мы начали перетаскивать, а не просто так отпустили кнопку, то показываем выделенный в списке элемент.

Это понятно? Тогда пойдем далее. На каком месте возникает непонятность?

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:10

Это все понятно...
If List1.ListIndex <> -1 And List1.ListCount > 0 Then идет проверка на то что я щелкнул на надпись... Ясно.. Все что ты написал ясно...
Но вот только когда я так делаю у себя у меня не перетаскивается то самое "aaa" в Frame1...
И как вместо проверки, что нажато что-то, но не -1, и 0.. проверить, что я выбрал какую-то картинку....
С уважением Морозов Николай

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 17:16

Я говорю о ListBox, а Вы, судя по всему, о ListView. Я прав?

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:23

Да нет... я тоже говорю о ListBox.
Еще раз... Смотрите....
По Вашему коду так.... В ListBox добавляются 2 надписи: ааа и bbb
Как только нажимаю на одной из них... List1.Enabled = False
Курсор меняется на "+" , но ааа, а frame не перетаскивается... Вообще ни как.
С уважением Морозов Николай

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:24

Может просто надо как-то выставить Dragmode, как например в лучае с картинкой?
С уважением Морозов Николай

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 17:28

У меня все работает. Перетаскиваю элемент из списка на фрейм, в сообщении пишется его имя.

Проверить, что выбрана картинка, можно, определив критерии того, что с данным элементом списка ассоциирована картинка. Проще говоря, как в список записываются картинки?

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:34

Картинки вписываются так...
Есть на форме - они не видимы...
Как только происходит нажатие на кнопку, они появляются в listboxe так...

Picture10.Visible = True
Picture10.Move 8, 392

И все, она появляется в ListBox.

БлиН, ну почему с ааа и ььь не получается не пойму...
С уважением Морозов Николай

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 17:38

Стоп. То есть, фактически, картинки показываются над списком, а в него они не заносятся через AddItem?

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:38

Давай, может я на e-mail Вам передам проект, Вы гляненте...
И может предложите мне чего-нибудь...
Программить начал совсем недавно, поэтому - полный дун дук...
С уважением Морозов Николай

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:39

Или по ICQ мой 255104, стукните...
С уважением Морозов Николай

moppuk
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 31.01.2006 (Вт) 23:03

Сообщение moppuk » 01.02.2006 (Ср) 17:43

Ну получается так... Хотя можно переделать и через additem. Я понимаю, что так было бы правильнее, но... =)
А толку то... aaa и bbb я заношу при form_load при помощи additem, но так же не получается...
С уважением Морозов Николай


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

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

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

    TopList