|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|
Динамическое создание объекта + Drag&Drop28.01.2013, 17:20. Показов 5437. Ответов 21
Метки нет (Все метки)
Здравствуйте!
Такая вот задачка: Мне нужно по щелчку на кнопку динамически создавать компонент (скажем типа Shape) - это я умею. Так же нужно реализовать Drag&Drop. Для компонента который я сам устанавливаю на форме я так же могу этого добиться. Вся загвоздка в том, чтобы создать этот компонент динамически и чтобы этот объект можно было тягать по форме. Прошу знающих людей подсказать, как возможно это реализовать. Добавлено через 2 часа 19 минут Это возможно хоть? Есть смысл ковырять?
0
|
|
| 28.01.2013, 17:20 | |
|
Ответы с готовыми решениями:
21
Drag&Drop WebBrowser Drag&Drop и TShellListview
|
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
||
| 29.01.2013, 08:59 [ТС] | ||
|
Я не знаю как создать динамический компонент, с таким свойством, чтобы его можно было двигать. Вот когда сам перетащил его на форму, в обработчиках событий этого компонента прописал немного кода и все двигается. А вот как при создании компонента сразу его таким сделать не знаю(
0
|
||
|
|
|
| 29.01.2013, 09:07 | |
|
Я не понимаю.
Создать компонент вы можете. Обращаться к компоненту - тоже. По вашему посту, вы можете обращаться только к компоненту, созданному в design-time, но не в run-time. Но я не вижу разницы, в чем проблема к обращении к run-time компоненту - он точно такой же.
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|||||||
| 29.01.2013, 09:54 [ТС] | |||||||
|
А куда вешать события объекта которого еще нет и возможно не будет? Что три события(процедуры) запихивать в тело конструктора объекта? Но я не представляю как.... Добавлено через 31 минуту Вот код который я использую, для того чтобы реализовать Drag&Drop
0
|
|||||||
|
|
||||||||||||||||||||||
| 29.01.2013, 09:56 | ||||||||||||||||||||||
|
Дык, надо было спросить - "как присвоить событие контролу, созданному динамически". Очень просто. 1. Смотрите сигнатуру вашего нужного события. Для этого в коде набираете нужный контрол и событие, типа, mycontrol.myevent, и на myevent кликаете с нажатым контролом. Вас выкинет куда-то типа Controls.pas, возможно, там придется пройтись поиском, но в результате увидите что-то вроде
типа
1
|
||||||||||||||||||||||
|
Супер-модератор
|
|
| 29.01.2013, 12:19 | |
|
Я делаю проще: кто мешает временно бросить на форму компонент, который потом будет создаваться в рантайме, назначить ему обработчик события, которое нужно будет назначать динамически, скопировать процедуру обработки события под другим именем, и удалить компонент со всеми его обработчиками событий? В итоге имеем правильно созданный самой IDE обработчик, останется только прописать его заголовок в секцию public/private или protected...
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|||
| 29.01.2013, 13:16 [ТС] | |||
|
А можно пример кода, просто чтобы наглядно было. Компонент который является родителем для следующих его копий кстати можно и не удалять. Добавлено через 59 секунд
0
|
|||
|
Супер-модератор
|
|||||||||||||||||||||
| 29.01.2013, 13:46 | |||||||||||||||||||||
|
Пример какого кода? Ну, скажем, тебе надо добавить OnMouseDown динамически. Что делаем? Кладем компонент TImage, и даблкликом по событию OnMouseDown создаем обработчик. Код принимает вид:
Кликните здесь для просмотра всего текста
Сразу же копируем обработчик Image1MouseDown под другим именем, и добавляем прототип в класс формы: Кликните здесь для просмотра всего текста
, после чего сохраняем проект, пустой Image1MouseDown будет удален, и останется то, что нужно: Кликните здесь для просмотра всего текста
При необходимости компонент Image1 с формы - удаляем. Всё, процедуру MyMouseDown можно присваивать обработчику OnMouseDown любого компонента. Дописываешь внутри этой процедуры код, который должен выполняться, но обращаешься не к конкретному элементу, а через Sender. Скажем, если ты уверен, что будет обрабатываться событие нажатия на TImage - то
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
||||||||||||||||
| 29.01.2013, 15:34 [ТС] | ||||||||||||||||
|
Спасибо вам громадное ребята!)))))
Добавлено через 1 час 7 минут Вот в принципе все реализовал, только сейчас ругается среда. У меня две формы (ну и два Unit соответственно). Мне нужно, чтобы после нажатия на кнопку создать на второй форме, чтобы на первой форме появлялся компонент типа TImage. Того, чтобы он появлялся на первой форме я добился
Посмотрите пожалуйста: Это код Unit1, пустой практически. Тут только в разделе Uses я прописал Uses2.
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|
| 29.01.2013, 17:06 [ТС] | |
|
0
|
|
|
Супер-модератор
|
|||
| 29.01.2013, 17:15 | |||
|
1
|
|||
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|||||||||||||||||
| 29.01.2013, 18:12 [ТС] | |||||||||||||||||
Что не так с этой строчкой? Добавлено через 4 минуты Вот идеально рабочий код:
0
|
|||||||||||||||||
|
Супер-модератор
|
|||
| 29.01.2013, 18:14 | |||
|
Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|
| 29.01.2013, 18:16 [ТС] | |
|
Ошибку выдает следующую: Unknown picture file extension (.jpg)
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|||||||||||||||||
| 29.01.2013, 20:43 [ТС] | |||||||||||||||||
В МОДУЛЕ БЫЛА ПРОБЛЕМА!!!!!!))))))))) Добавлено через 38 минут Итак вот что у меня получилось: Unit1 - собственно говоря на Form1 создаются мои изображения из Unit2. Так что Unit1 пустой.
Unit2 - тут уже организовано динамическое создание компонентов на Form1.
Добавлено через 1 час 42 минуты Компоненты создаются. Имена им присваиваются автоматически)))
0
|
|||||||||||||||||
|
|
||
| 30.01.2013, 07:29 | ||
|
Обрати внимание - визуализаторы между собой не общаются. Стрелками показывается, кто о ком знает. Там, где "или" - надо выбрать только одну стрелку. Визуализатор может быть формой.
0
|
||
|
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 22
|
|||||||
| 30.01.2013, 10:56 [ТС] | |||||||
|
Добавлено через 1 час 58 минут Помогите пожалуйста еще немного разобраться. Я перенес все теперь на одну форму (чтобы не путаться). теперь у меня есть в низу изображение, по щелчку на которое создается картинка в верхнем левом углу, я ее мышкой перетаскиваю в сторону. Потом снова щелкаю мышкой по изображению и снова появляется картинка в верхнем левом углу (что мне собственно и нужно). Я ее так же могу перетащить в сторону. НО проблема в том, что я теперь не могу перетаскивать первую картинку. Даже если я щелкаю по первой картинке и хочу ее переместить - двигается вторая (хотя указатель мыши находится над первой картинкой). Скажите пожалуйста умные люди как добиться того, чтобы они все перемещались????? Привожу код:
0
|
|||||||
| 30.01.2013, 10:56 | |
|
Помогаю со студенческими работами здесь
20
Реализация программы с использованием Drag&Drop Программа тестирования с технологией Drag & Drop Смещение элемента после Drag&Drop (ListView) Перехват мыши при Drag&Drop файлов на объект Как сделать drag&drop файлов из моей программы в другую? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|