Вниз
Скачать: CL | DM;

Проблема с CheckListBox1DrawItem   Найти похожие ветки 

 
Mozgan   (2008-10-31 10:16) [0]

Добрый день!

Мне необходимо реализовать прорисовку элементов компонента CheckListBox1. Если элемент выбран - окрасить определенным цветом, если элемент списка не выбран - в другой цвет.

Использую такой код. Но он работает не так как хотелось бы. Такое ощущение что не "хватает" одного элемента.

Подскажите пожалуйста, что я не так делаю?


procedure TForm1.CheckListBox1DrawItem(Control: TWinControl;
 Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
 myColor: TColor;
 myBrush: TBrush;
begin
 myBrush := TBrush.Create;
 with (form1.CheckListBox1).Canvas do
 begin
   if not form1.CheckListBox1.Checked[index] then
   begin
     form1.CheckListBox1.UpdateControlState;
     myColor := $00CCCCFF;
     font.Color:= clblack;
   end else
   begin
     form1.CheckListBox1.UpdateControlState;
     myColor := $00FFE4CA;
     font.Color:= clblack;
   end;
   myBrush.Style := bsSolid;
   myBrush.Color := myColor;
   Windows.FillRect(handle, Rect, myBrush.Handle);
   Brush.Style := bsClear;
   TextOut(Rect.Left, Rect.Top, (form1.CheckListBox1).Items[Index]);
   MyBrush.Free;
 end;


 
Palladin ©   (2008-10-31 10:28) [1]

TForm.OnCreate, CheckListBox1.DoubleBuffered:=True;
TCheckListBox.OnMouseUp, CheckListBox1.Repaint;


 
Mozgan   (2008-10-31 10:32) [2]

Спасибо большое! разобрался!


 
Palladin ©   (2008-10-31 10:38) [3]

или вместо последней, даже предпочтительней
TCheckListBox.OnClickCheck, CheckListBox1.Repaint;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
15-1222788859
oxffff
2008-09-30 19:34
2008.12.07
Как поступить?


2-1225273482
tomkat
2008-10-29 12:44
2008.12.07
XML в таблицу, запрос


6-1195957359
ZzZzZzZ
2007-11-25 05:22
2008.12.07
отправка принятых данных =)) (TClientSocket & TServerSocket)


1-1203080165
Prohodil Mimo
2008-02-15 15:56
2008.12.07
Как отловить изменение ReadOnly у TEdit ?


2-1224830949
AlekseyB
2008-10-24 10:49
2008.12.07
Как загрузить файл в ListBox ???




   Наверх