![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Что-то я нигде не нашёл, как можно перетащить элемент из TListView в проводник\рабочий стол, и после перетаскивания программа хотя бы получила конечную папку как результат.
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Наверное, нужно использовать интерфейс IDropTarget, но я пока с ними почти не работал, так что большего сказать не могу.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Администрация, очень хороший пример, в интернете нашёл всего одну статью, неплохо было бы в FAQ занести, а то везде только односторонние функции как на приложение кидать. Вот ссылка, где всё подробно написано:
http://podgoretsky.com/ftp/Docs/Delphi/D3/...ogLib/ch_04.htm -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Спасибо. Обязательно добавим. -------------------- |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
И так, тема очень старая, но не раскрыта. Кто то знает как сделать так как написал топикстартер? ДрагендДроп из приложения и получить путь к папке, В КОТОРУЮ перетаскивается ...
|
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
Народ, помогайте, выручайте. Как узнать конечный путь файла? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
Дело в том что begin DropFileSource1.Files.Add('C:\' + li.Caption); li := ListView1.GetNextItem(li, sdBelow, [isSelected]); end; А как получить например в Label будущий путь к файлу, то есть там куда мы его перетягиваем, при том еще до того как он оказался там? Смысл в том что бы при перетаскивании узнать путь где он будет лежать (куда мы его собрались перетянуть) |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нигде он не будет лежать.
Ты перетягиваешь данные между двумя приложениями. А будет оно сохранять файл на диск или открывать, или передавать по сети - это уже дело того приложения, которому ты файл отдаёшь. Оно не обязано докладывать, что будет с этими данными делать. Узнать это можно лишь перехватывая файловые операции. |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
Дело в том что файл надо "перетягивать" с фтп сервера. Что бы его скачать надо знать место куда мы его скачиваем. И наоборот что бы драгенддропнуть файл должен находиться на локальном диске.
П.С. вариант копировать файл в папку темп и потом его драгать и дропать не подходит. |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
У кого есть решение данного вопроса ?
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Snowy уже все сказал. Решения этого вопроса не существует. Это ограничение механизма drag&drop windows, сделанное в угоду независимости источника от приемника. объяснение. Но - есть обходные маневры решения передачи "пока отсутствующих" данных. Например, воспользуйтесь drag&drop component suite (ссылки также дал Snowy), а именно - асинхронной операцией. Второй метод (afair) - "застопориться" в drop-событии\методе, скачать файл во временную папку и продолжить выполнение drop метода. Добавлено через 8 минут и 4 секунды Кстати, у d&d component suite есть демки подобного "дропа" Это сообщение отредактировал(а) kami - 15.4.2011, 22:39 |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
Раскопал демку AsyncSource with Filestreams. Проверил, оно там даже работает. Чего не делал повторить отдельно не получается, не работает и все тут. На форме есть листвью, в котором отображаются файлы с фтп на который я попадаю через Synapse. Помогите выдрать нужный код и заюзать его для моей задачи (drag&drop). procedure TForm2.Button1Click(Sender: TObject); var i:integer; FTPClient: TFTPSend; begin FTPClient:=TFTPSend.Create; FTPClient.TargetHost:=host; FTPClient.TargetPort:=21; FTPClient.UserName:=login; FTPClient.Password:=pass; FTPClient.PassiveMode:=true; if FTPClient.Login then begin ListView1.Clear; FTPClient.List(FTPClient.GetCurrentDir,false); for i := 0 to FTPClient.FtpList.Count-1 do begin with ListView1.Items.Add do begin Caption:=FTPClient.FtpList[i].FileName; if FTPClient.FtpList[i].Directory then SubItems.Add('директория') else SubItems.Add('файл'); SubItems.Add(DateToStr(FTPClient.FtpList[i].FileTime)) end; end; end; end; |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
У кого то работает этот код ? :
http://articles.org.ru/cn/showdetail.php?cid=5752 Это сообщение отредактировал(а) crazynetwork - 30.4.2011, 16:39 |
|||
|
||||
| crazynetwork |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 16.10.2009 Репутация: нет Всего: нет |
На просторах инета был найден такой код:
Но при копировании файла создается пустой файлик с размером 0 и все. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |