![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListBox.OnDrawItem [D6, Win95/98, WinXP]
Miwa © (2002-05-03 18:42:00)Точно помню, что был когда-то такой вопрос, но никак не могу найти. Да и поиск не работает. Временно. А суть - как реализовать сабж? Тоесть, код
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var i:integer;
begin
listbox1.Canvas.Font.Color:=clRed;
for i:=0 to listbox1.Count do listbox1.Canvas.TextOut(1*10+10,5,listbox1.Items[i]);
end;
делает то, что ничего не делает. Обидно. А хотелось бы увидеть красные буковки на листбоксе ;о)
MBo (2002-05-04 06:13:00) [1]Молчу...
Song (2002-05-03 20:04:00) [2]Подожжи, подожжи, тут ошибочка маленькая... чтобы сработало нужно With... изменить на
With TListBox(Control), TListBox(Control).Canvas Do
Miwa (2002-05-03 20:01:00) [3]
> данный код писал программист Паскаля а не Дельфи
Холмс, Вы гений! Кроме шуток. Я вправду взращен на паскале. ;о)
> свойство Style поставить в OwnerDrawFixed
Черт. Во, где собака зарыта! Большое спасибо!
Song (2002-05-03 19:33:00) [4]Var i уже не нужен
Song (2002-05-03 19:32:00) [5]Чтоб работало нужно 1 в отрывке "1*10+10..." заменить на I
Но данный код писал программист Паскаля а не Дельфи.. Зачем-то высчитывать смещение... А если строк будет больше чем убирается в клиентскую область ListBox? Вообщем, бред здесь написан.
Юзай, тока не забудь свойство Style поставить в OwnerDrawFixed:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var i:integer;
begin
With TListBox(Control).Canvas Do
Begin
Font.Color:=clRed;
TextOut(Rect.Left+2,Rect.Top+2,Items[Index]);
End;
end;