Форум: "Начинающим";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];
ВнизПроблема с 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c