Такая вот проблема:
Имею список checklistbox c установленными галками. При установке свойства OwnerDrawFixed и прорисовке текста вручную, галки оказвываются снятыми. Только наведение фокуса на строчку заставляет появиться галку. Перерисовка checklistbox опять снимает все галки. Всё это происходит при использовании классического стиля в XP. При использовании стиля Windows XP - всё отрисовывается корректно.
Отрисовываю строчки стандартно:
procedure TForm4.CheckListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
S:PChar;
begin
with (Control as TCheckListBox), Canvas do
begin
Canvas.FillRect(Rect);
MoveTo(Rect.Left, Rect.Top);
SetTextAlign(Canvas.Handle, TA_LEFT OR TA_UPDATECP);
S:=PChar('test');
Canvas.Font:=CheckListBox1.Font;
Canvas.TextOut(0,0,S);
end;
end;
Использую Turbo Delphi Professional.
Что это может быть? Баг в Delphi? Ведь при стиле Windows XP отрисовывается всё правильно. Можно ли это исправить?