Всем доброго.
Вопрос по CheckListBox. Как призагрузке приложения вывести в CheckListBox содержимое директории. А затем при выборе определенных файлов из этого же CheckListBox их удалить.
CheckListBox и содержимое директории
Модератор: Модераторы
-
CoverStory
- новенький
- Сообщения: 95
- Зарегистрирован: 09.02.2006 17:21:42
- Откуда: Семипалатинск
-
CoverStory
- новенький
- Сообщения: 95
- Зарегистрирован: 09.02.2006 17:21:42
- Откуда: Семипалатинск
Мне на одном форуме подсказали следующий код:
procedure ListFileDir(Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr <> faDirectory) then
begin
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListFileDir('Z:\stock\', CheckListBox1.Items);
end;
Но это только вывод списка в CheckListBox.
procedure ListFileDir(Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr <> faDirectory) then
begin
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListFileDir('Z:\stock\', CheckListBox1.Items);
end;
Но это только вывод списка в CheckListBox.
Смотря что ты удалять хочешь,
если запись из CheckListBox, то CheckListBox.Items.Delete(номер записи)
если файл, то DeleteFile(имя файла)
если запись из CheckListBox, то CheckListBox.Items.Delete(номер записи)
если файл, то DeleteFile(имя файла)
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
const sPath = '/foo';
var i: integer;
sFile: string;
begin
i := FileList.Count - 1;
while (i >= 0) do begin
if FileList.Checked[i] then begin
sFile := IncludeTrailingPathDelimiter(sPath) + FileList.Items[i];
if DeleteFile(sFile) then begin
FileList.Items.Delete(i);
end
else begin
ShowMessage('не удалось удалить файл: ' + sFile);
end;
end;
dec(i);
end;
end;
-
CoverStory
- новенький
- Сообщения: 95
- Зарегистрирован: 09.02.2006 17:21:42
- Откуда: Семипалатинск
