![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
![]()
Здравствуйте уважаемые. Сразу оговорюсь, много чего нагуглил, но мой попрос это не решило.
Вопрос такой: На форме имеется следующее ScrollBox1 внутри которого есть ScrollBox1a и ScrollBox1b. На ScrollBox1а лежит картинка Image1. Задача, посредством драг'н'дроп сделать возможность перетаскивать имэйдж с ScrollBox1а в ScrollBox1b и обратно, но при этом, изображение не должно перемещаться на просто ScrollBox1. Алсо, есть ScrollBox2, который лежит сам по себе на форме. Так вот, этот имейдж должен еще уметь перемещаться на него. А так же важно, чтоб имейдж сохранил возможность перемещаться в пределах бокса где он лежит. Теперь тупо, по-русски, хочу рисунок таскать с места на место в пределах бокса (это реализовал), иметь возможность перекинуть из бокса А в бокс Б и там же иметь возможность таскать его по боксу. И перекидывать вобще в левый бокс и там же елозить его. Как мне это сделать?! |
![]() |
![]() |
![]() |
#2 | |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
![]()
Реализовал. Но тут возник вопрос другой, как присвоить ему парента напрямую из Sender (если правильно понял, то сендер это и есть объект, который принемает). То есть чтоб сендер стал парентом имэйджа?
Тупой вопрос, разобрался... Последний раз редактировалось Evil-Racer; 17.05.2014 в 19:20. |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 03.11.2009
Сообщений: 10
|
![]()
Не понял о чем Ваш пост, и вобще мне ли. У меня компилятор не дает никаких варнингов, эрроров и хинтов. Все работает, кроме того, что TImage(sender).Top не отдает значения.
Кстати, procedure TfEdit.PreviewAtPanelRightClick(Sen der: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); привязана к ДИНАМИЧЕСКИ созданному имейджу. Мож проблема в этом? |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
![]()
может я и не в тему напишу (т.к почти вообще ничего не понял), но есть компонент Drag&Drop -> http://melander.dk/delphi/dragdrop/ я его сам почти во всех проэктах использую. Evil-Racer, пробуй, возможно он тебе поможет, к тому же в архиве с компонентом лежит демка...
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Дальше в коде процедуры к этому пресловутому t есть обращение? И покажите весь код процедуры
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#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 |