Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1244196096
a.a.j.
2009-06-05 14:01
2009.08.02
webbrowser и drag&amp;drop


2-1244443734
saNat
2009-06-08 10:48
2009.08.02
Создание БД Access на основе существующего "каркаса"


2-1243606008
Deltas
2009-05-29 18:06
2009.08.02
Консольное приложение


3-1225226858
jiny
2008-10-28 23:47
2009.08.02
DBGridEh &amp; поддержка Unicode


2-1244541033
Andy BitOff
2009-06-09 13:50
2009.08.02
Как лучше передать ссылку на экземпляр класса?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский