![]() |
|
|
#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; |
|
#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
|
||||
|
||||
|
а тебе нужно чтоб цвет текста менялся, или фон под текстом?
|