- Код: Выделить всё
procedure TMainForm.BillBoxDraw(Sender: TObject; Index: Integer; ARect: TRect; State: TOwnerDrawState);
begin
...
with (Sender as TListBox) do
begin
txt:=Items[Index];
Canvas.FillRect(ARect);
...
end;
...
end;
Вызывать её, соответственно, предполагал примерно так:
- Код: Выделить всё
procedure TMainForm.BillBoxDrawItem(Control: TWinControl; Index: Integer; ARect: TRect; State: TOwnerDrawState);
begin
BillBoxDraw(BillBox, Index, ARect, State);
end;
Код, вроде как, вполне логичный и компилируется без проблем. Но при запуске программы открытие ComboBox вызывает ошибку: RunError (219) (отладчик останавливается на строке with (Sender as TListBox) do). Что за ошибка - не понятно, из-за чего вылазит - тоже.
Кто-нибудь из вас, уважаемые коллеги, сталкивался с такой проблемой? Может есть другие пути использования универсальной DrawItem?