Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];
Внизwebbrowser и drag&drop Найти похожие ветки
← →
a.a.j. © (2009-06-05 14:01) [0]День добрый! Передо мной след задача: TWebbrowser и TFileListBox. Требуется перенести изображение (jpg) из браузера в FileListBox с помощью drag&drop, передав при этом ссылку на этот jpg. Подскажите, каким образом примерно можно это реализовать. Спасибо
← →
Ega23 © (2009-06-05 14:12) [1]http://www.delphimaster.ru/articles/dragndrop/index.html
← →
a.a.j. © (2009-06-05 14:16) [2]Ega23, спасибо я читал. Проблема в том, что если установить DragMode - Automatic для WebBrowser, это ничего не дает. Любой выбранный элемент на странице не перетаскивается, при этом отображается перечеркнутый значок курсора (
← →
clickmaker © (2009-06-05 14:21) [3]> Любой выбранный элемент на странице не перетаскивается,
> при этом отображается перечеркнутый значок курсора
курсор меняется, если объект находится над окном, которое в состоянии его принять
← →
sniknik © (2009-06-05 14:25) [4]> Ega23, спасибо я читал.
по диагонали? там есть то что должно помочь, в конце про файлы из проводника... Webbrowser это не твой компонент, и даже не твоя программа, это IE (т.е. почти тот же проводник). не надо к нему относится так как будто это контрол программы.
← →
a.a.j. © (2009-06-05 14:29) [5]clickmaker, sniknik, большое спасибо за разъяснение)
← →
DVM © (2009-06-05 14:53) [6]Вряд ли статья из [1] поможет. Вероятно придется реализовывать IDropTarget и т.д.
← →
a.a.j. © (2009-06-05 14:56) [7]DVM, можно поподробнее? только что попробовал пример из статьи. программа не распознает webbrowser как проводник. файлы, перекинутые, из окна windows распознаются и обрабатываются, но файлы из webbrowser по-прежнему не перетаскиваются и не распознаются. что делать?
← →
DVM © (2009-06-05 15:26) [8]
> a.a.j. © (05.06.09 14:56) [7]
> что делать?
1-ый вариант. Взять набор компонентов Drag And Drop Component Suite от Angus Johnson, Anders Melander: http://www.torry.net/pages.php?id=233
2-ой вариант. Делать самому. http://www.podgoretsky.com/ftp/Docs/Delphi/D3/D3ProgLib/ читай 3 и 4 главы, особенно 4.
← →
sniknik © (2009-06-05 17:00) [9]> 2-ой вариант. Делать самому. http://www.podgoretsky.com/ftp/Docs/Delphi/D3/D3ProgLib/ читай 3 и 4 главы, особенно 4.
которая завершается параграфом -
Как ни странно, приведенная реализация приемника оказалась проще, чем вариант из главы 3. Видимо, мы нередко склонны преувеличивать сложность задач. И все же признаюсь, что на освоение COM и TInterfacedObject у меня ушло немало времени — намного больше, чем на обработку WM_DROPFILES.
ну и там можно понять, что это практически другой способ одного и того же.
> что делать?
кончай надеяться на чудо(ака "готовый код") и начинай уже разбираться с проблемой, почему у тебя не работает... правильно задавай сам себе вопросы. вот например
> перекинутые, из окна windows распознаются и обрабатываются
> но файлы из webbrowser по-прежнему не перетаскиваются и не распознаются.
а из IE, если отдельно запустить? перетаскиваешь точно файлы картинок или ссылки? может фон? И если работает из отдельно стоящего то что не так в коде, из-за чего не работает тот самый IE просто внедренный как OLE объект?
ответишь/решишь, думаю заработает.
← →
DVM © (2009-06-05 17:21) [10]
> sniknik © (05.06.09 17:00) [9]
> ну и там можно понять, что это практически другой способ
> одного и того же.
Только вот этот другой способ несложно применить к перетаскиванию чего либо, хоть файлов, хоть картинок, хоть черта лысого, чего не скажешь о WM_DROPFILES - это исключительно для списков строк (считай списков имен файлов) и исключительно в проводнике.
← →
DVM © (2009-06-05 17:23) [11]
> sniknik ©
И вообще с какого перепугу TWebBrowser будет использовать WM_DROPFILES если их его окна тянут картинку на окно другой программы. Поэтому [1] совсем не к месту.
← →
DVM © (2009-06-05 17:34) [12]
> DVM © (05.06.09 17:23) [11]
Хотя я не совсем прав. Некоторые из картинок TWebBrowser все же отправляет с WM_DROPFILES, но только некоторые, причем отправляется путь к скешированной картинке из Temporary Internet Files. Но это не для всех картинок, только для некоторых и опять же если кеширование включено только.
← →
sniknik © (2009-06-05 18:37) [13]> Но это не для всех картинок, только для некоторых
тебе тоже. ответь на вопросы, не мне, самому себе
> а из IE, если отдельно запустить? перетаскиваешь точно файлы картинок или ссылки? может фон?
> И если работает из отдельно стоящего то что не так в коде, из-за чего не работает тот самый
> IE просто внедренный как OLE объект?
> хоть картинок, хоть черта лысого
в вопросе черта не требуется, требуется "ссылку на этот jpg", т.е. именно файл картинки, а не ссылку на сайт например с включенным фоном в нее.
вот например, чтоб не ходить далеко, логотип дельфимастера это по твоему картинка? а по моему ссылка на самого себя, т.е.
<a href="/"> ... </a>
и как, это тебе поможет, если это вытащить, в том варианте где "черта лысого"?
т.е. допустим ссылку ты получил этими методами, ссылку, фрейм, скриптовую фунцию (ява/бейсик), внедренный объект (и в них картинки видать), и что дальше?
будешь парсить все возможные варианты? т.е. повторять браузер?
ну скажу только, флаг в руки и барабан на шею!
а в простом варианте тот самый дропфайл и останется.
← →
DVM © (2009-06-05 18:53) [14]
> sniknik © (05.06.09 18:37) [13]
> а в простом варианте тот самый дропфайл и останется.
Это в частном случае. И то при включенном кешировании только иначе просто нет путей на к этим всем картинкам.
Что касается логотипа делфимастера, то его тоже можно тащить двумя способами: если просто тащить левой кнопкой мыши, то потащим ссылку, но не картинку, если выделить картинку и тащить, то притащим уже саму картинку, причем ни в первом ни во втором случае WM_DROPFILES не посылается окну приемнику.
> в вопросе черта не требуется, требуется "ссылку на этот
> jpg", т.е. именно файл картинки
ссылку на оригинал картинки получить нельзя, можно получить лишь имя файла скешированной картинки и то не всегда.
← →
DVM © (2009-06-05 19:19) [15]Кстати, уже упомянутая Drag And Drop Component Suite позволяет принимать практически любой объект как из TWebBrowser так и Firefox (FF не шлет WM_DROPFILES вообще). Там в комплекте есть демка, можно наглядно убедиться.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c