Страница: 1 |
Страница: 1 |
Вопрос: Drag and drop в форме
Добавлено: 14.10.08 22:10
Автор вопроса: Nytrogen
В общем, хочется визуализировать формочку выбора товаров так, чтобы юзер мог "перетаскивать" label'ы на картинку. У мну такая идея:
прописываем label_MouseDown и запоминаем, какой label начал "перетаскиваться";
меняем курсор формы на какое-нибудь подходящее изображение;
в обработчике image_MouseUp определяем, шо стряслось: если зареган "перетаскиваемый" label, то трубим в фанфары, если такого нет, то и нет.
Получается, что придётся для всех контролов при onMouseUp установить для формы стандартный курсор, а то будет "вечное перетаскивание" =) Довольно муторно. Есть ли другие варианты, идеи, пожелания? =)
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 15.10.08 00:37
Вообще, у элементов есть свойство DragIcon.
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 15.10.08 08:05
Вообще стоит почитать доки по API функциям, связанным Drag'n'Drop.
Номер ответа: 3
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #3
Добавлено: 15.10.08 13:49
Эм... У меня лично нет . Есть MousePointer и MouseIcon. Но собсно нет свойства, разрешающего перетаскивания, какого-нибудь DragEnabled. Или это всё есть в API?
Номер ответа: 4
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #4
Добавлено: 15.10.08 16:05
Если перетаскиваешь сами лейблы, то тебе помогут обработчики событий лейблов BeforeDragOver (перед перетаскиванием) и BeforeDropOrPaste (при завершении перетаскивания).
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 15.10.08 16:10
В первом обработчике тебе надо ставить SetCursor с иконкой, а во втором - SetCursor c параметром IDC_ARROW. Кажется так. SetCursor - функция API
Номер ответа: 6
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #6
Добавлено: 15.10.08 16:41
Спасибо. Сегодня куплю книгу по API, а то чувствую, что изобретаю велосипед.
Но вот всё же чтобы дожать эту тему, изложу ещё одну свою непонятку: контролы на форме сами по себе не перетаскиваются. У них такой же эффект, как в нотпаде - когда пытаешься мышкой текст выделить и перетащить. BeforeDragOver и BeforeDropOrPaste у меня срабатывают, когда перетаскиваешь на форму только нечто извне, например, текст из браузера.
Номер ответа: 7
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #7
Добавлено: 15.10.08 20:57
Да создай массив лейблов и не парься. Ну и твоим способом (MouseDown, MouseUp)