Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Рабочий стол
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.02.2013, 11:10
GRIZZLY85 GRIZZLY85 вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 3
Репутация: 10
По умолчанию как удалить выделенные папки в ShellListView?

здравствуйте, я новичок в этом деле, помогите пожалуйста разобраться, как удалить все выделенные папки одним разом в корзину в shelllistview?? у меня когда все выделяешь, программа всё равно удаляет по одной что мне надо изменить в коде? заранее большое спасибо!!!
Код:
 
procedure TForm1.Delete1Click(Sender: TObject);
var
SF: TShellFolder;
FPath: String;
FOS: TSHFileOpStruct;
FileOp: HRESULT;
begin
With FOS do
begin
SF:= ShellListView1.SelectedFolder;
If System.Assigned(SF) then
begin
FPath:= SF.PathName + #0 + #0;
FOS.Wnd:= Application.Handle;
FOS.wFunc:= FO_DELETE;
FOS.pFrom:= @FPath[1];
FOS.pTo:= 0;
FOS.fFlags:= FOF_ALLOWUNDO or FOF_SILENT;
FOS.fAnyOperationsAborted:= False;
FOS.hNameMappings:= 0;
FOS.lpszProgressTitle:= 0;
end;
FileOp:= SHFileOperation(FOS);
end;
ShellListView1.Refresh;
end;
а выделенные как на вложенном рисунке
Изображения
Тип файла: jpg 1.jpg (62.4 Кбайт, 17 просмотров)
Ответить с цитированием
  #2  
Старый 15.02.2013, 09:46
GRIZZLY85 GRIZZLY85 вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 3
Репутация: 10
Вопрос как удалить выделенные папки в ShellListView?

попробовал вот так, выделяешь три папки на удаление, а показывает, что только третью удаляет как быть не знаю помогите пожалуйста кто как может, буду благодарен вам
Код:
procedure TForm1.Delete2Click(Sender: TObject);
var
FPath: String;
FOS: TSHFileOpStruct;
FileOp: HRESULT;
i: integer;
begin
With FOS do
begin
For i:= 0 to ShellListView1.Items.Count - 1 do
If ShellListView1.Items[i].Selected = True then
begin

FPath:= ShellListView1.Folders[i].PathName + #0 + #0;

FOS.Wnd:= Application.Handle;
FOS.wFunc:= FO_DELETE;
FOS.pFrom:= @FPath[1];
FOS.pTo:= 0;
FOS.fFlags:= FOF_ALLOWUNDO or FOF_SILENT;
FOS.fAnyOperationsAborted:= False;
FOS.hNameMappings:= 0;
FOS.lpszProgressTitle:= 0;
end;
FileOp:= SHFileOperation(FOS);
end;
ShellListView1.Refresh;
end; 
Изображения
Тип файла: jpg 2.jpg (47.9 Кбайт, 7 просмотров)

Последний раз редактировалось GRIZZLY85, 15.02.2013 в 10:10.
Ответить с цитированием
  #3  
Старый 15.02.2013, 15:01
GRIZZLY85 GRIZZLY85 вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 3
Репутация: 10
По умолчанию

всё, сам разобрался, какие то люди жадные
Код:
FPath:= ShellListView1.Folders[i].PathName + #0 + FPath + #0 + #0; 
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter