На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Listview закрашивание строк
Привет всем!
Хотел спросить следующее

есть загрузка из файла
в listview

ExpandedWrap disabled
    var
      I  : Integer;
      F  : TextFile;
      S  : String;
      S1  : String;
      
      ListItem : TListItem;
    begin
      ListView1.Clear;
      if FileExists('Listview1.txt') then
      begin
        AssignFile(F, 'Listview1.txt');
        Reset(F);
        while not Eof(F) do
        begin
          ReadLn(F, S);
          ListItem := Listview1.Items.Add;
          ListItem.Caption := s;
          ReadLn(F, S1);
          ListItem.SubItems.Add(s1);
        end;
      
        CloseFile(F);
      end;


в 1 столбец у меня грузится путь к каталогу
Как реализовать чтобы в listview строка закрашивалась другим цветом например, если этот путь недоступен?


второй момент если я перебираю строки уже в listview и так же обнаруживаю что данный путь недоступен в listview

как правильно удалить строку

ExpandedWrap disabled
    for  I2 := 0 to Listview1.Items.Count - 1 do
      begin
        Label9.Caption:= Listview1.Items.Item[I2].Caption;
        for J := 0 to Listview1.Items.Item[I2].SubItems.Count - 1 do
          Label7.Caption := Listview1.Items.Item[I2].SubItems.Strings[J];
        if (DirectoryExists(Label9.Caption)) and (DateToStr(Now)=Label7.Caption) then begin
        Memo5.Lines.Add('Путь всё ещё существует время подошло '+Label9.Caption +' - ' + Label7.Caption);
     
        Listview1.Items.Item[I2].Free;
     
             end
         else
          begin
          Memo5.Lines.Add('Путь всё ещё существует так как не подошло время удалять каталог '+Label9.Caption +' ' + Label7.Caption);
     
     
          end
          end;


В данном случае
ExpandedWrap disabled
      Listview1.Items.Item[I2].Free;
вызывает ошибку

user posted image
Сообщение отредактировано: djmix777 -
Заполнение делай всегда от последнего до нуля, а не на оборот
Цитата djmix777 @
как правильно удалить строку

Лень проверять, но скорее всего что-то типа Listview1.Items.Delete(Item[I2])

По раскрашиванию - OwnerDraw
Codero ergo sum
// Программирую — значит, существую
Цитата Fr0sT @
Лень проверять, но скорее всего что-то типа Listview1.Items.Delete(Item[I2])

вот в том то и дело что выпадает в эту самую ошибку сразу, что указано. по окраске надо проверить.
Цитата djmix777 @
Как реализовать чтобы в listview строка закрашивалась другим цветом например, если этот путь недоступен?

Написать обработчик OnCustomDrawItem:
ExpandedWrap disabled
    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
    if (not DirectoryExists(Item.Caption)) then (Sender as TCustomListView).Canvas.Brush.Color:= clRed;
    end;


Цитата djmix777 @
как правильно удалить строку

ExpandedWrap disabled
    ListView1.Items[i].Delete;
Кто рано встает, тому целый день спать хочется
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1017 ]   [ 20 queries used ]   [ Generated: 7.04.20, 12:53 GMT ]