|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
||||||
Не перемещается TShape04.04.2016, 10:27. Показов 1663. Ответов 9
Метки нет (Все метки)
- Здравствуйте уважаемые участники форума! Столкнулся с проблемой.
Задача состоит в следующем: 1) Нажимаем клавишу мыши на основной форме. Прямо под курсором мыши (на основной форме) должен динамически создаваться экземпляр TShape. 2) Далее, не отпуская клавиши мыши, перемещаем ее курсор по форме. Изображение TShape должно перемещаться вместе с ним. 3) При отпускании клавиши мыши, экземпляр TShape должен уничтожаться. - Пытаюсь добиться желаемого результата с помощью кода:
привожу. Там все стандартно, как для перемещения Шейпа по форме. - В жизни первый пункт благополучно выполняется (динамический Шейп создается под курсором мыши). Но при перетаскивании нажатой мыши по основной форме изображение Шейпа не едет за мышью ! - Подскажите пожалуйста, чего я не доделал? Или, может быть, такого вообще нельзя сделать в Билдере простыми средствами?
0
|
||||||
| 04.04.2016, 10:27 | |
|
Ответы с готовыми решениями:
9
динамический TShape особенности TShape |
|
Супер-модератор
|
|||||||
| 04.04.2016, 10:44 | |||||||
именно твой код не работает. А то я вот сейчас напишу свой обработчик, а он возьмет и заработает. И чего тогда? У меня ошибка?Добавлено через 9 минут Ну вот что я говорил:
1
|
|||||||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
|
| 04.04.2016, 10:46 [ТС] | |
|
- volvo, спасибо за быстрый ответ! Дело в том, что это махонький кусочек из большого проекта. Я сейчас
попытаюсь сделать маленькое пробное приложение с этой проблемой и тогда перешлю сюда целиком ...
0
|
|
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
|
| 04.04.2016, 11:19 [ТС] | |
|
- Вот тестовое приложение.
0
|
|
|
Супер-модератор
|
||||||
| 04.04.2016, 12:20 | ||||||
|
Ну я же написал выше, что нужно сделать:
0
|
||||||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
|||||||||||
| 04.04.2016, 13:17 [ТС] | |||||||||||
|
- Насколько я понял, Вы делаете следующие вещи:
- 1) В среде создаете фиктивный Шейп Shape1 (можно даже с 0-ми размерами, чтобы не был виден). - 2) Опять же в среде создаете для него обработчик Shape1MouseMove. - 3) А потом в обработчике перемещения мыши на форме управление передается обработчику перемещения мыши на фиктивном Шейпе (с объектом - динамический Шейп). С отладчиком убедился, что работают только следующие обработчики: FormMouseDown(); FormMouseMove(); FormMouseUp(); Shape1MouseMove(); shpMouseDown(); - Все остальные обработчики НЕ РАБОТАЮТ (не вызываются вообще). Я их вообще выключил или удалил! Переменные X_Save и Y_Save (мои) и OldX и OldY (Ваши) - НЕ РАБОТАЮТ вообще. Я их закомментировал или удалил! - И тем не менее проект работает правильно. - Показываю листинг последнего (облегченного) проекта, хотя полного понимания, как оно все работает нет: Файл Unit1.h:
0
|
|||||||||||
|
Супер-модератор
|
|
| 04.04.2016, 13:23 | |
|
Блин, да ничего я не делаю. Я взял твой проект, убрал из него 2 указанных строки, и добавил еще один обработчик. Все. Прекрасно перемещается Shape цианидного цвета. Мне что, видео записать?
Вот он, твой же исправленный проект, развлекайся. Я даже exe не стал убирать, чтобы ты потом не сказал, что перекомпилировать не можешь, и мой код не работает:
1
|
|
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
|||||||||||
| 04.04.2016, 14:48 [ТС] | |||||||||||
|
- Обработчик Shape1MouseMowe даже проще:
- Прошу прощения volvo, просто я не успеваю за Вами. Пока я что-то делаю, проверяю и пишу ответ, Вы уже делаете что-то новое, чего я еще не знаю. Откуда такое недоверие ко мне? Разве я упрекнул Вас в чем-то хоть словом? - Просто в Ваших первых постах я увидел объект (Shape1). Я же не видел всего Вашего кода и предположил, что этот объект создан в среде, а не динамически. Мое последнее приложение (которое я показал в виде 2-х файлов) работает точно так же, как и Ваше приложение (только что пробовал Ваш exe-шник). - Сейчас буду разбираться с Вашим приложением. Чем оно отличается от моего ... Добавлено через 41 минуту - Вот теперь разобрался во всем. Я в обработчике FormMouseDown() передал управление в обработчик shpMouseDown(). А в обработчике FormMouseMowe() не передал управление в обработчик shpMouseMove(). Там должно было быть:
0
|
|||||||||||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
|
|
| 05.04.2016, 10:54 [ТС] | |
|
- Если кому интересно, вот последний вариант найденного мной решения:
1
|
|
| 05.04.2016, 10:54 | |
|
Помогаю со студенческими работами здесь
10
Вращение TShape
Движение TShape вместе с TImage Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|