![]() |
|
|
#1
|
|||
|
|||
![]() Подскажите пожалуйста можно ли сделать с ListView такую же штуку как с ListBox:
Код:
if ListBox1.Items.IndexOf(ListBox2.Items[Index]) = -1 then TListBox(Control).Canvas.font.Color := clmoneygreen else TListBox(Control).Canvas.font.Color := clgreen; Я пытался сделать так: Код:
if Form2.ListView1.Items.IndexOf(ListBox2.Items[Index]) = -1 then TListBox(Control).Canvas.font.Color := clmoneygreen else TListBox(Control).Canvas.font.Color := clgreen; |
#2
|
||||
|
||||
![]() Так устроит?
Код:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var i: word; begin if item = nil then EXIT; i := Item.Index; if trunc((i) / 2) < (i / 2) then sender.canvas.brush.Color := cl3DLight else sender.canvas.brush.Color := clwhite; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Нет, Вы меня не совсем правильно поняли.
Есть ListBox c набором записей и есть ListView c несколькими колонками в каждой из которых имеется набор записей. Мне надо, чтобы в ListBox записи имели красный цвет если в ListView в первой колонке не было такой же записи и зелёным если имелась. Код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin if ListBox2.Items.IndexOf(ListBox1.Items[Index]) =-1 then TListBox(Control).Canvas.font.Color := clRed; TListBox else TListBox(Control).Canvas.font.Color := clgreen; end; Т.е. у меня было первоначально сравнение с таким же ListBox, а я сейчас хочу сравнить с ListView. |
#4
|
||||
|
||||
![]() а тебе нужно чтоб цвет текста менялся, или фон под текстом?
|