Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2008, 22:28   #1
SHREK
 
Регистрация: 06.02.2007
Сообщений: 5
По умолчанию Drag&Drop из проводника в свой FileManager

вот нужно написать файл менеджер чтобы из любой папки виндоса можно было кидать файлы в программу (Drag&Drop)
я сделал Drag&Drop в ListView на моей форме всё нормально, но вот как сделать чтобы под курсором мышки с зажатой левой кнопкой перемещался выбор элементов ListView (там у меня список файлов), чтобы сделать как в винде над какой папкой кнопку отпустишь туда и копировало, а то у меня получается сделать в текущую, так как так как мышка пришла из вне с зажатой кнопкой ListView её не видит
может кто знает как или видел где нибудь исходники файл менеджера на Delphi где поддерживается Drag&Drop из проводника виндоса, поделитесь ссылкой или информацией пожалуйста.

надо короче чтобы при отпускании левой кнопки мыши получить элемент ListView (например в memo1 напечатать его ) находящийся под мышкой (хотелось бы его ещё и выделить при этом)
Вложения
Тип файла: rar FileManagerDragDrop.rar (248.3 Кб, 67 просмотров)
SHREK вне форума Ответить с цитированием
Старый 01.09.2008, 08:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var i:TListItem;
begin
i:=ListView1.GetItemAt(x,y);
if i<>nil then begin
 caption:=i.Caption;
 i.Selected:=true;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2008, 15:56   #3
SHREK
 
Регистрация: 06.02.2007
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
var i:TListItem;
begin
i:=ListView1.GetItemAt(x,y);
if i<>nil then begin
 caption:=i.Caption;
 i.Selected:=true;
end;
А не подскажите в какую поцедуру это вставить и где взять x y
SHREK вне форума Ответить с цитированием
Старый 01.09.2008, 23:55   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
procedure TForm1.ProcessDroppedFiles (lb : TListView; DragDropInfo : TDragDropInfo);
var
   i : Integer;
  FileData: TWin32FindData;
  FileInfo: TSHFileInfo;
  p: TPoint;
  item: TListItem;
begin
GetCursorPos(p);
memo1.Lines.Add('screen: '+IntToStr(p.x)+', '+IntToStr(p.y));
p:=lb.ScreenToClient(p);
memo1.Lines.Add('client: '+IntToStr(p.x)+', '+IntToStr(p.y));

item:=lb.GetItemAt(p.x,p.y);
if item<>nil then begin
 memo1.Lines.Add('item caption: '+item.Caption);
 item.Selected:=true;
 end;

for i := 0 to DragDropInfo.NumFiles - 1 do
  begin
    memo1.Lines.Add(DragDropInfo.Files[i]);
    if FileExists(DragDropInfo.Files[i]) then Memo1.Lines.Add('файл');
    if DirectoryExists(DragDropInfo.Files[i]) then Memo1.Lines.Add('директория');
  end;
end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 02.09.2008 в 00:29.
mutabor вне форума Ответить с цитированием
Старый 03.09.2008, 09:13   #5
SHREK
 
Регистрация: 06.02.2007
Сообщений: 5
Хорошо

Спасибо mutabor всё заработало ! Ты просто крут мужик
SHREK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag $ drop в DBGrid AlexandrSid Общие вопросы Delphi 13 21.06.2010 10:55
Помогите с drag-and-drop Cezar Win Api 3 19.10.2008 15:48
Drag&Drop в ListBox'ах MAKEDON Общие вопросы Delphi 3 21.08.2008 13:12
Drag&Drop shtuceron Общие вопросы Delphi 3 09.04.2008 19:04
Drag and Drop Xardas Общие вопросы Delphi 8 20.01.2008 23:09