Перейти к содержанию
Fire Monkey от А до Я
  • 0

Удалить файлы отмеченные


Letter

Вопрос

Рекомендуемые сообщения

  • 0

Проходишь циклом по всему списку и у каждого элемента проверяешь свойство IsChecked, если оно true, то тогда при помощи TFile.Delete удаляешь файл.

 

Как-то так:

procedure DeleteAllCheckedFiles();
begin
  if ListBox1.Count < 1 then Exit; // Если количество элементов меньше 1, то выходим из процедуры
  for var I: Integer := 0 to ListBox1.Count - 1 do
    if ListBox1.ListItems[I].IsChecked then // Проверяем свойство IsChecked (т.е отмечен ли элемент)
      TFile.Delete(ListBox1.ListItems[I].Text); // Удаляем файл (только в том случае, если в тексте элемента записан путь до файла, иначе придется переделать эту строчку под свои нужды)
end;

Для TFile.Delete необходимо подключить юнит System.IOUtils

Изменено пользователем Dmitry_4501
Ссылка на комментарий
  • 0
В 28.06.2023 в 10:26, Dmitry_4501 сказал:
procedure DeleteAllCheckedFiles();
begin
  if ListBox1.Count < 1 then Exit; // Если количество элементов меньше 1, то выходим из процедуры
  for var I: Integer := 0 to ListBox1.Count - 1 do
    if ListBox1.ListItems[I].IsChecked then // Проверяем свойство IsChecked (т.е отмечен ли элемент)
      TFile.Delete(ListBox1.ListItems[I].Text); // Удаляем файл (только в том случае, если в тексте элемента записан путь до файла, иначе придется переделать эту строчку под свои нужды)
end;

Спасибо еще раз! А не могли бы Вы подсказать как удалить записи?  То есть из текстового файла загружаю список. И нужно так же , какие отмечены чикетом, то те удалить записи. Пробовал ListBox1.Items.Delete(r);  Но не получается.

Ссылка на комментарий
  • 0
В 13.08.2023 в 09:44, Letter сказал:

Спасибо еще раз! А не могли бы Вы подсказать как удалить записи?  То есть из текстового файла загружаю список. И нужно так же , какие отмечены чикетом, то те удалить записи. Пробовал ListBox1.Items.Delete(r);  Но не получается.

Попробуйте вот так (не самый идеальный вариант, но он работает и ошибок не выдает).

procedure TForm1.Button1Click(Sender: TObject);
  begin
    var selectedItems: TArray<TListBoxItem>; // Объявляем массив из объектов TListBoxItem
    for var item: TFMXObject in ListBox1.Children.Items[1].Children do // Перебираем каждый дочерний компонент в ListBox, который является экземпляром класса TListBoxItem.
      begin
        if item is TListBoxItem then // Проверяем, является ли item экземпляром класса TListBoxItem
          if TListBoxItem(item).IsChecked then // Проверяем, является ли элемент отмеченным галочкой
            begin
              System.SetLength(selectedItems, System.Length(selectedItems) + 1); // Увеличиваем длину массива
              selectedItems[High(selectedItems)] := TListBoxItem(item); // Вставляем элемент в массив
            end;
      end;

    DeleteAllCheckedFiles(selectedItems);
  end;

procedure TForm1.DeleteAllCheckedFiles(items: TArray<TListBoxItem>);
  begin
    if System.Length(items) < 1 then Exit;
    for var i: Integer := 0 to System.Length(items) - 1 do
      begin
        var item: TListBoxItem := items[i];
        if Assigned(item) then
          begin
            // TFile.Delete(item.Text);
            item.Free(); // Освобождаем память, тем самым объект уничтожится и больше не будет находиться в списке элементов TListBox
          end;
      end;
  end;
Изменено пользователем Dmitry_4501
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...