CheckListBox и содержимое директории

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

CheckListBox и содержимое директории

Сообщение CoverStory » 07.09.2006 16:49:04

Всем доброго.
Вопрос по CheckListBox. Как призагрузке приложения вывести в CheckListBox содержимое директории. А затем при выборе определенных файлов из этого же CheckListBox их удалить.
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение jwv » 08.09.2006 11:32:47

Привет.
Смотри в сторону FindFirst/FindNext
jwv
новенький
 
Сообщения: 21
Зарегистрирован: 10.05.2005 12:23:16

Сообщение CoverStory » 08.09.2006 15:21:41

Мне на одном форуме подсказали следующий код:

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.
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение jwv » 08.09.2006 17:12:09

Смотря что ты удалять хочешь,
если запись из 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;
jwv
новенький
 
Сообщения: 21
Зарегистрирован: 10.05.2005 12:23:16

Сообщение CoverStory » 08.09.2006 17:16:22

Спасибо!
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 88

Рейтинг@Mail.ru