DrawGrid & Drag&Drop19.12.2012, 17:12. Показов 3507. Ответов 10
Метки нет (Все метки)
Здравствуйте. Суть вопроса - поставлена задача по заполнению TDrawGrid формата 5х5 изображениями одинакового размера (одна ячейка должна остаться свободной) и организации внутри него Drag&Drop. Я написал программу, но:
Drag&Drop срабатывает нормально, то есть изображение из ячейки-источника стирается и отображается в приемнике, но при следующей активации Drag&Drop ячейка-источник предыдущего снова заполняется имевшимся там изображением, чего по задумке быть не должно. Пытался исправить сам - не выходит. Помогите ![]() Код:
0
|
||||||
| 19.12.2012, 17:12 | |
|
Ответы с готовыми решениями:
10
Drag & Drop Drag&Drop
|
|
Супер-модератор
|
||||||
| 19.12.2012, 19:27 | ||||||
1
|
||||||
| 20.12.2012, 14:36 [ТС] | |||||||
|
Добавлено через 14 часов 42 минуты Учтя советы UI, несколько модернизировал код, и так и не поняв про роазмен имен, решил сделать следующее - создать массив записей с двумя полями (Scol и Srow), и при каждом OnDrag'e записывать в него инддексы ячейки из которой драг, а потом при DrawCell'e проверять, есть ли текущая ячейка в этом списке и если есть то ее не перерисовывать. Но при заполнении массива возникает Access Violation (в коде указано в каком месте). Я толкомникогда не работал с динамическими массивами, подскажите, в чем моя ошибка:
Все это, конечно, пляски с бубном так что если кто-то просто подскажет как правильно реализовать OnDrawCell, то буду благодарен
0
|
|||||||
|
Супер-модератор
|
||||||
| 20.12.2012, 17:25 | ||||||
|
Я бы вообще сделал вот так:
0
|
||||||
| 20.12.2012, 20:05 [ТС] | ||||||
|
Спасибо. Взяв за основу Ваш код, я переписал проект следующим образом:
0
|
||||||
|
Супер-модератор
|
|
| 20.12.2012, 22:00 | |
|
Кто просил менять начало индексации массива с 0 на 1, но при этом оставлять конечный элемент Pred(Size*Size)? У меня функции ArrayIndex возвращают индекс от 0, у тебя нулевого элемента вообще нет. Вылет гарантирован, как только пустая ячейка будет не в левом верхнем углу.
0
|
|
| 20.12.2012, 22:17 [ТС] | ||
0
|
||
|
Супер-модератор
|
|
| 20.12.2012, 22:46 | |
|
Еще бы. Ты ж не меняешь всё, что связано с нумерацией. Вот посмотри, как заполняется у тебя массив. Какой первый элемент будет заполнен? Первый. А при попытке отрисовать левую верхнюю ячейку нужен НУЛЕВОЙ.
Отсюда вопрос: на фиг было переделывать? Выложенный мной код тестировался и работает прекрасно. Нет, надо извратить, а потом говорить "не работает", да?
0
|
|
| 21.12.2012, 02:31 [ТС] | |||||||
|
P.S. А Ваш код лично у меня дроугрид не заполняет вообще при наличии:
0
|
|||||||
|
Супер-модератор
|
|
| 21.12.2012, 02:54 | |
|
В аттаче - проект для Дельфи 2009+, нормально всё отображается (искать 25 разных изображений было лень ,поэтому я просто пронумеровал одну и ту же картинку, чтобы видеть разницу)...
0
|
|
| 21.12.2012, 02:54 | |
|
Помогаю со студенческими работами здесь
11
Плавный Drag&Drop
Как работать с Drag&Drop? Drag & Drop файлов в 2+ edit Drag&Drop из Edit в браузер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|