Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SHFileOperation [D6, WinXP]


HrUsT ©   (2002-06-04 20:47:00) 

Помогите найти ошибку! Не удаляет ни файлы, ни директории, хотя должен по идее
var
i: integer;
lpFileOp: TSHFILEOPSTRUCT;
Result : Boolean;
begin
for i:=0 to ShellListView1.Items.Count-1 do
begin
if ShellListView1.Items[i].selected then
with lpFileOp do
begin
Wnd:=form1.handle;
wFunc:=FO_DELETE;
pFrom:=PChar(String(ShellListView1.Folders[i].PathName)+#0); //#0 needed
fFlags:=0;
fFlags:=FOF_NOCONFIRMATION;
end;
end;
end;


Anatoly Podgoretsky   (2002-06-05 22:46:00) [1]

Ну так какой результат возвращается и какая ошибка?


HrUsT   (2002-06-05 22:34:00) [2]

Ну супер! Результат, возвращаемый функцией - 1 или 0 !
Если не выполняется она, то ясно абсолютно и без проверки, что будет НОЛЬ!
Хелп прочитал, в соответствии с ним флаги и пути расставил.


app   (2002-06-05 22:22:00) [3]

Так это твоя обязанность проверить результат операции (хинт - это функция) и в зависимости от результата опросить код ошибки.
Еще один вопрос, кроме ошибки, которую ты не читаещь, а хелп то хоть прочитал? Он для этого тебе и дан.


HrUsT   (2002-06-05 22:06:00) [4]

Просто после нажатия УДАЛИТЬ как была, так и остается структура файлов и папок нетронутой. Не выдается никакого предупреждения об ошибке :(


Anatoly Podgoretsky   (2002-06-05 21:59:00) [5]

По крайней мере неполная инициализация структуры и не видать обработки ошибок. Какая ошибка возникает?


HrUsT   (2002-06-05 21:44:00) [6]

Стринг, полагаю :)
На самом деле ощущаю себя, как засыпавшийся первак на экзамене! Ну да, и тут, профессор, накосячил :) Не надо было PChar от String от String делать... но так ведь все равно не работает! :(


Song   (2002-06-05 10:01:00) [7]

А какого типа ShellListView1.Folders[i].PathName ?


HrUsT   (2002-06-05 01:13:00) [8]

Да-да, это я пропустил :) НО! Все-равно не работает,
и проблема в строке присвоения значения pFrom.
Если задавать путь "c:\test.tst", то удаление работает!
Что интересно, при копировании использовалась та же строка
pFrom:=PChar(String(ShellListView1.Folders[i].PathName)+#0),
и операция копирования успешно работала!!!


Song   (2002-06-04 21:30:00) [9]

:)))
А кто же будет саму ф-ию вызывать ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо