![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет!
Необходимо чтобы при сравнении итемсов 2 листбоксов, текст тех итемсов в листбоксе1, стал красного цвета, которых нет в листбоксе2. Код:
for i:=0 to ListBox1.Count - 1 do for j:=0 to ListBox2.Count - 1 do if ListBox1.Items[i]=ListBox2.Items[j] then begin cvt:=i; xcv:=0; break; end else begin cvt:=i; xcv:=1; end; Код процедуры листбокса1: procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var ij,ji:integer; begin with (Control as TListBox).Canvas do Begin if xcv=0 then if index=cvt then font.Color:=clgreen; if xcv=1 then if index=cvt then font.Color:=clred; FillRect(Rect); TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]); end; end; ПОМОГИТе пож.! Мучаюсь скока времени!!! Код, что я привёл один из множества вариантов, которые я испробовал - но выходит не то!((( Последний раз редактировалось Admin, 13.04.2010 в 12:33. |
#2
|
|||
|
|||
![]() Т.е. если item'a из первого листбокса нету во втором листбоксе, то выделить его красным цветом?
Если я правильно понял, то вот простейший код: Код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin With ListBox1 do begin If Listbox2.Items.IndexOf(Items[index]) = -1 then begin Canvas.Font.color := clred; end else Canvas.Font.Color := clgreen; Canvas.TextOut(Rect.Left +1,Rect.Top +1,items[index]); end; end; ListBox1 - OwnerDrawFixed Блог о программировании Delphi, J2Me и не только |