Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2017, 18:46   #11
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Я пробовал делать примерно так же, но все попытки были не удачные, и я удалял код, вот последнее что пробовал:

Код:
  
  if ((Sender.Items[7].Subitems[0] = '') or (Sender.Items[7].Subitems[1] = '')) then
    exit;
  
  Sender.Canvas.Brush.Color := clRed;

  if SubItem = 0 then
  begin
    if (StrToInt(Item.SubItems[0]) > StrToInt(Item.SubItems[1])) then
    begin
      Sender.Canvas.Brush.Color := clGreen;
    end;
  end;

  try

    if SubItem = 1 then
    begin
      if (StrToInt(Item.SubItems[0]) < StrToInt(Item.SubItems[1])) then
      begin
        Sender.Canvas.Brush.Color := clGreen;
      end;
    end;
nibufep вне форума Ответить с цитированием
Старый 08.03.2017, 18:55   #12
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Мой код из #8

Так должно быть?
Filka вне форума Ответить с цитированием
Старый 08.03.2017, 19:49   #13
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от nibufep Посмотреть сообщение
if ((Sender.Items[7].Subitems[0] = '') or (Sender.Items[7].Subitems[1] = '')) then exit;
Эта строчка меня сильно смущает. При чем тут Items[7]?
Да и вообще этот код не должен компилироваться. Ибо Sender это TObject
northener вне форума Ответить с цитированием
Старый 08.03.2017, 19:53   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Ибо Sender это TObject
Не везде. Здесь Sender: TCustomListView
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.03.2017, 19:56   #15
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Аватар? да точно.
northener вне форума Ответить с цитированием
Старый 08.03.2017, 20:11   #16
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
При чем тут Items[7]?
Это последняя строка в списке, как я говорил список у меня заполняется не весь сразу.

Цитата:
Сообщение от Filka Посмотреть сообщение
Мой код из #8

Так должно быть?
Да, так, но Вы наверное список заполняете сразу, а я нет, покажу как примерно у меня сделано:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.Clear;
  ListView1.Items.Add.Caption := 'Показатель 1';
  ListView1.Items[0].SubItems.Add('');
  ListView1.Items[0].SubItems.Add('');
  ListView1.Items.Add.Caption := 'Показатель 2';
  ListView1.Items[1].SubItems.Add('');
  ListView1.Items[1].SubItems.Add('');
  ListView1.Items.Add.Caption := 'Показатель 3';
  ListView1.Items[2].SubItems.Add('');
  ListView1.Items[2].SubItems.Add('');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  listview1.Items[0].Subitems[0] := '5';
  listview1.Items[1].Subitems[0] := '10';
  listview1.Items[2].Subitems[0] := '20';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  listview1.Items[0].Subitems[1] := '1';
  listview1.Items[1].Subitems[1] := '2';
  listview1.Items[2].Subitems[1] := '3';
end;
nibufep вне форума Ответить с цитированием
Старый 08.03.2017, 20:17   #17
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  listview1.Items[0].Subitems[0] := '5';
  listview1.Items[1].Subitems[0] := '10';
  listview1.Items[2].Subitems[0] := '20';
  //
  ListView1.Invalidate; // <--
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  listview1.Items[0].Subitems[1] := '1';
  listview1.Items[1].Subitems[1] := '2';
  listview1.Items[2].Subitems[1] := '3';
  //
  ListView1.Invalidate; // <--
end;
Filka вне форума Ответить с цитированием
Старый 08.03.2017, 20:21   #18
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Filka, так работает! Всем большое спасибо за помощь)
nibufep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Границы ячеек ListView Replicant Компоненты Delphi 2 11.11.2016 22:31
Подсветка активной ячейки/диапазона ячеек beal Microsoft Office Excel 18 26.12.2013 12:16
ASP Подсветка ячеек в Гриде Claster Помощь студентам 0 05.09.2011 12:04
Уникальная подсветка повторяющихся ячеек serjufa Microsoft Office Excel 4 04.05.2011 07:08
Подсветка выделенных ячеек-ограничить диапазон Uralmaster Microsoft Office Excel 7 01.02.2011 10:24