На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА 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
          Цитата Fr0sT @
          Лень проверять, но скорее всего что-то типа Listview1.Items.Delete(Item[I2])

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

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


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

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


            Рейтинг@Mail.ru
            [ Script execution time: 0,0238 ]   [ 16 queries used ]   [ Generated: 16.04.24, 10:33 GMT ]