Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.04.2009
Сообщений: 28

Как перетащить форму с помощью image?

17.05.2009, 19:10. Показов 1195. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как перетащить форму с помощью image.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2009, 19:10
Ответы с готовыми решениями:

Как перетащить файл на форму?
Допустим делаем текстовый редактор. Хватаем мышкой тхт файлик перетаскиваем на форму отпускаем и текст из файла оказыватся в поле. На...

Как перетащить форму без заголовка?
сделал форму на основе рисунка.FormBorderStyle -> none. за что её теперь перетаскивать???И как???

Как перетащить форму мышкой без бордюров
Хочу поместить на фон формы свой рисунок, убрать заголовок и закруглить углы.... все ок... но когда убираю заголовок пропадает...

9
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 45
18.05.2009, 17:36
Типа взять мышкой за Image и перетащить всю форму?
Или объясни попонятнее.
0
0 / 0 / 0
Регистрация: 17.04.2009
Сообщений: 28
20.05.2009, 00:10  [ТС]
Ну да взать нажать мышкой на image и перетащить всё formy.
0
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 45
20.05.2009, 14:24
Держи код...
Visual Basic
1
2
3
4
5
6
7
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XOld = X: YOld = Y
End Sub
 
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Me.Move Me.Left + X - XOld, Me.Top + Y - YOld
End Sub
Переменные XOld и YOld - глобальные, как сам понимаешь

Этот способ подходит для любого контрола и самой формы.
0
Irokez
21.05.2009, 15:54
Предыдущий код чреват проблемами
Событие mouse_move будет рекурсивно вызываться при
выполнении form_move. Делай так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Declare Function SendMessage Lib 'User32' Alias 'SendMessageA' (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib 'User32' ()
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
 
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
Dim ReturnValue As Long
If Button = 1 Then
Call ReleaseCapture
ReturnValue = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
Такие куски кода попадаются на VBNet др. сайтах
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 45
21.05.2009, 16:29
2 Irokez: Насчет рекурсии - ничего такого непроисходит, всё идёт очень гладко.
И на счет твоего способа - на событии MouseDown ничего не произойдет, потому что сразу после него наступает событие Click, и форма переходит в обычное состояние (таскания не происходит). А если посылать сообщение в событии Click, то форма начинает тащиться только после отпускания мыши...
Так что не отрицай, мой способ работеат надежнее и лучше без обид
0
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 399
21.05.2009, 18:07
Разумеется ReleaseCapture и остальное надо поместить в MouseMove (ну ошибся человек)
И этот способ более надежный, так как например в VBA нет метода Form.Move
Да и по-проще будет
0
Irokez
21.05.2009, 19:39
Ребята у меня все так и работает
именно в mouse-doun
и никаких проблем
Irokez
21.05.2009, 19:42
P.S. а Clic не наступает когда нажмешь, протащишь и отпустишь =)
0 / 0 / 0
Регистрация: 17.04.2009
Сообщений: 28
23.05.2009, 20:57  [ТС]
Спасибо кто отвечал на мой вопрос!!! Огромное Спасибо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2009, 20:57
Помогаю со студенческими работами здесь

Перетащить Image на Panel
Подскажите пожалуйста, замучилась уже. С перетаскиванием изображения по форме все понятно (делаю следующим образом): var Form1:...

Как сделать, чтобы форму можно было перетащить не только за самый верх?
Добрый день! Подскажите пожалуйста, как сделать, чтобы форму можно было перетащить не только за самый верх?

Перетащить на форму файл
Здравствуйте. Помогите с исходниками, как получить название файла, если перетащить мышкой на форму файл. Задачи меняются мгновенно....

Надо перетащить форму
Создал программу, на фоне окна программы картинка, на ней кнопки. У Form1 свойство BorderStyle = bsNone. Когда запускаю программу, её...

Перетащить форму за определенную часть
в целом я представляю конечно код, но как лучше сделать главное- определить, за нужную ли часть формы "взялся" пользователь?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru