Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
15-1244017108
i2e
2009-06-03 12:18
2009.08.02
Help и Vista


15-1243566614
Balepa
2009-05-29 07:10
2009.08.02
Не устанавливается windows xp


15-1243231535
Юрий Зотов
2009-05-25 10:05
2009.08.02
Группировка в XSL


15-1243602612
Игорь
2009-05-29 17:10
2009.08.02
ASUS Eee PC 900


4-1213304094
ply
2008-06-13 00:54
2009.08.02
Сделать фото с веб-камеры