|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.05.2014, 19:46 | #1 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
Drag and Drop, TImage и ScrollBox
Здравствуйте уважаемые. Сразу оговорюсь, много чего нагуглил, но мой попрос это не решило.
Вопрос такой: На форме имеется следующее ScrollBox1 внутри которого есть ScrollBox1a и ScrollBox1b. На ScrollBox1а лежит картинка Image1. Задача, посредством драг'н'дроп сделать возможность перетаскивать имэйдж с ScrollBox1а в ScrollBox1b и обратно, но при этом, изображение не должно перемещаться на просто ScrollBox1. Алсо, есть ScrollBox2, который лежит сам по себе на форме. Так вот, этот имейдж должен еще уметь перемещаться на него. А так же важно, чтоб имейдж сохранил возможность перемещаться в пределах бокса где он лежит. Теперь тупо, по-русски, хочу рисунок таскать с места на место в пределах бокса (это реализовал), иметь возможность перекинуть из бокса А в бокс Б и там же иметь возможность таскать его по боксу. И перекидывать вобще в левый бокс и там же елозить его. Как мне это сделать?! |
16.05.2014, 20:12 | #2 | |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Цитата:
|
|
17.05.2014, 19:06 | #3 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
Реализовал. Но тут возник вопрос другой, как присвоить ему парента напрямую из Sender (если правильно понял, то сендер это и есть объект, который принемает). То есть чтоб сендер стал парентом имэйджа?
Тупой вопрос, разобрался... Последний раз редактировалось Evil-Racer; 17.05.2014 в 19:20. |
19.05.2014, 21:24 | #4 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
Люди) А вообще реально из TImage получить путь, из которого загрузили Picture?
И еще вопрос. На панели несколько изображений, нажав на любое правой кнопкой запускается вот это: procedure TfEdit.PreviewAtPanelRightClick(Sen der: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); По сути это OnMouseDown Мне надо из сендера получить координаты Top и Left, но почему то не могу получитью когда делаю watch то компилятор тупо перепрыгивает этот участок, а значение остается 0. Получаю так: t:=TImage(sender).Top; Что делаю не правильно? На скрине в ватче видно что TImage(sender).Top имеет значение (правильное), но оно не присваевается Последний раз редактировалось Evil-Racer; 19.05.2014 в 22:16. |
20.05.2014, 09:23 | #5 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
20.05.2014, 18:23 | #6 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
Не понял о чем Ваш пост, и вобще мне ли. У меня компилятор не дает никаких варнингов, эрроров и хинтов. Все работает, кроме того, что TImage(sender).Top не отдает значения.
Кстати, procedure TfEdit.PreviewAtPanelRightClick(Sen der: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); привязана к ДИНАМИЧЕСКИ созданному имейджу. Мож проблема в этом? |
20.05.2014, 18:36 | #7 |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
может я и не в тему напишу (т.к почти вообще ничего не понял), но есть компонент Drag&Drop -> http://melander.dk/delphi/dragdrop/ я его сам почти во всех проэктах использую. Evil-Racer, пробуй, возможно он тебе поможет, к тому же в архиве с компонентом лежит демка...
|
20.05.2014, 19:01 | #8 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
FleXik спасибо, но не то.
Пытаюсь изловчиться так: s:=(Sender as TComponent).Name; t:=(FindComponent(s) as TImage).Top; имя получаю, t не присваевается.. =( Последний раз редактировалось Evil-Racer; 20.05.2014 в 19:03. |
20.05.2014, 19:58 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Дальше в коде процедуры к этому пресловутому t есть обращение? И покажите весь код процедуры
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.05.2014, 20:20 | #10 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
Да, было обращение. Но уже не важно.
Реализовал так: При динамическом создании обзывал имейдж как 'xImg'+(i) и параллельно вел двухмерный массив, где a[i][1]=top а[i][2] соответственно Left В процедурке s:=(Sender as TComponent).Name; Delete(s, 1,4); i:=StrToInt(s); и дальше работал с массивом..., так оказалось проще)) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Drag & Drop Проводник => ScrollBox | iLnes | Общие вопросы Delphi | 4 | 07.03.2012 22:32 |
Выбор TImage в ScrollBox | mrCloud | Общие вопросы Delphi | 1 | 13.05.2011 23:10 |
drag and drop | kelty | Помощь студентам | 0 | 11.09.2009 23:00 |
Drag and Drop | nusik | Общие вопросы C/C++ | 2 | 09.07.2009 11:09 |
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) | Arkuz | Общие вопросы Delphi | 1 | 18.04.2009 00:15 |