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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 06:46   #1
s1s1s1
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 63
По умолчанию listview

подскажите как поменять цвет выделения в listview
s1s1s1 вне форума Ответить с цитированием
Старый 01.10.2009, 08:20   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Вот код, который создает цветные строки:
Код:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
   Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
 begin
   with ListView1.Canvas.Brush do
   begin
     case Item.Index of
       0: Color := clYellow;
       1: Color := clGreen;
       2: Color := clRed;
     end;
   end;
 end;
Попробуйте его применить в сВашем случае.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.10.2009, 08:51   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
цвет выделения в listview
Наксколько я знаю цвет выделения берется из темы виндовса.
Если менять хочешь то отрисовывай ручками как Артем предлагает. Плюс к его коду нужен метод закраски Fillrect и отрисовки текста OutTextXY
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2009, 12:21   #4
s1s1s1
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 63
По умолчанию

я не знаю правильно ли вы поняли. мне нужно изменить цвет selectitem стандартный там синий.
s1s1s1 вне форума Ответить с цитированием
Старый 01.10.2009, 13:14   #5
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

s1s1s1
Цитата:
я не знаю правильно ли вы поняли. мне нужно изменить цвет selectitem стандартный там синий.
Stilet тебе правильно говорит, при выделении элементов списка в ListBox'е цвет выделения зависит от темы Windows. Поробуй сменить темы (Оливковый, Серебристый, Стандартный(Голубой)) и ты увидишь, что цвет при выделении элементов в ListBox меняется в зависимости от темы. Вот, реально можно за то именить фон ListBox'а.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 01.10.2009, 13:39   #6
s1s1s1
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 63
По умолчанию

спасибо!!!!!

Подскажите тогда что исправить в коде,чтобы работало без Selected.
на пример c Focused .
если ListView1.Items.Item[0].Selected := False;
код
Код:
CurrentItem := ListView1.Selected;    
    Item := ListView1.GetItemAt(x, y);   
    if Item <> nil then
      Item := ListView1.Items.Insert(Item.Index)      
    else
      Item := ListView1.Items.Add;
       Item.Assign(CurrentItem);
    CurrentItem.Free;

Последний раз редактировалось Stilet; 01.10.2009 в 14:22.
s1s1s1 вне форума Ответить с цитированием
Старый 01.10.2009, 15:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
чтобы работало без Selected
Что-то я не очень понял что нужно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2009, 15:55   #8
s1s1s1
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 63
По умолчанию

этот код меняет item'ы местами перетаскивание ,но при выделенном item
как сделать, чтобы работоло без выделения
s1s1s1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
Listview Neymexa Общие вопросы .NET 0 13.05.2009 21:19
ListView Witaliy Общие вопросы Delphi 1 01.05.2008 20:46
ListView Terran Общие вопросы Delphi 2 05.04.2008 23:15
ListView Drain Общие вопросы Delphi 3 13.02.2008 16:10