![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Господа, как же сделать, чтобы в ListBox е картинки разные были в [D6, Win2k]
NorthMan © (2002-11-01 15:11:00)разных строках? Я так делаю
With TCustomListBox(Control) Do
Begin
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 2 + ImageList.Height, Rect.Top, Items[Index]);
Rect.Bottom:=Rect.Top + ImageList.Height;
Rect.Right :=Rect.Left + ImageList.Width;
Rect.Top:=Rect.Top+2;
Case ImpotentType Of
0 :ImageList.Draw(Canvas,Rect.Left,Rect.Top,0);
1 : ImageList.Draw(Canvas,Rect.Left,Rect.Top,1);
2 : ImageList.Draw(Canvas,Rect.Left,Rect.Top,2);
End; // Case
End; // With
Но картинки при перерисовке одинаковые.
Андрей Прокофьев (2002-11-01 17:49:00) [1]2 NorthMan (01.11.02 16:13)
картинки разных типов импотентов из ImageList
(если Франклин - таковой, то и его!!!)
:))
NorthMan (2002-11-01 17:43:00) [2]2 Андрей Прокофьев
Вам картинки с Франклином или как? ;))
Андрей Прокофьев (2002-11-01 16:14:00) [3]2 NorthMan (01.11.02 16:13)
Картинки вышлете? :))
NorthMan (2002-11-01 16:13:00) [4]Вот она истина! Спасибо Андрею Прокофьеву
Andrey007 (2002-11-01 16:10:00) [5]Да чего тупить-то? Ясное дело, что за время, пока идёт рисование, ImpotentType не меняется. Поэтому и картинка рисуется одна и та же.
Андрей Прокофьев (2002-11-01 16:01:00) [6]2 han_malign © (01.11.02 15:57)
речь-то шла о ListBox"е
han_malign (2002-11-01 15:58:00) [7]Соррю очень сильно, не заметил Box
han_malign (2002-11-01 15:57:00) [8]Товарищи(Господа,Судари, etc)!!! зачем изголяться с OnDraw если в листе все реализовано:
TListItem.ImageIndex/TListView.LargeImages/TListView.SmallImages
для того он и нужен, что все реализованно в user32, тогда уж с DrawGrid - изголяться нужно.(Я делал ListViewLite на базе DrawGrid чтобы ресурсов меньше жралось и интерфейс попроще)
Андрей Прокофьев (2002-11-01 15:45:00) [9]Предлагаю сделать вот так
Заполнение строк
Self.ListBox1.Items.Clear;
ImpotentType := 0;
Self.ListBox1.Items.AddObject("Ivanov", Pointer(ImpotentType));
ImpotentType := 1;
Self.ListBox1.Items.AddObject("Petrov", Pointer(ImpotentType));
Self.ListBox1.Items.AddObject("Sydorov", Pointer(ImpotentType));
ImpotentType := 2;
Self.ListBox1.Items.AddObject("Gates", Pointer(ImpotentType));
Self.ListBox1.Items.AddObject("SomeOne", Pointer(ImpotentType));
а в выводе строк
...
Case Integer(Items.Objects[Index]) Of
0 :ImageList1.Draw(Canvas,Rect.Left,Rect.Top,0);
1 : ImageList1.Draw(Canvas,Rect.Left,Rect.Top,1);
2 : ImageList1.Draw(Canvas,Rect.Left,Rect.Top,2);
end;
...
NorthMan (2002-11-01 15:38:00) [10]Вот полный текст процедуры:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
With TCustomListBox(Control) Do
Begin
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 2 + ImageList.Height, Rect.Top, Items[Index]);
Rect.Bottom:=Rect.Top + ImageList.Height;
Rect.Right :=Rect.Left + ImageList.Width;
Rect.Top:=Rect.Top+2;
Case ImpotentType Of
0 :ImageList.Draw(Canvas,Rect.Left,Rect.Top,0);
1 : ImageList.Draw(Canvas,Rect.Left,Rect.Top,1);
2 : ImageList.Draw(Canvas,Rect.Left,Rect.Top,2);
End; // Case
End; // With
end;
Андрей Прокофьев (2002-11-01 15:35:00) [11]NorthMan (01.11.02 15:33)
см OnDrawItem!!!
Андрей Прокофьев (2002-11-01 15:34:00) [12]И вообще, все это написано в обработчике OnDrawItem?
NorthMan (2002-11-01 15:33:00) [13]ImpotentType - это глобальная переменная, значение ей присваивается до того, как вызывается Listbox1.Items.Add, так что сдесь все нормально вроде
Андрей Прокофьев (2002-11-01 15:28:00) [14]ImpotentType
Откуда он берется, где вычисляется? Не видно
NorthMan (2002-11-01 15:23:00) [15]Да ладно, нашли над чем поглумиться... В том-то и дело, что меняется. И картинки соответственно меняются, но везде одинаковые становятся, а импотент-то в каждой строке разный
MBo (2002-11-01 15:15:00) [16]а тип импотента меняется? ;)))
Андрей Прокофьев (2002-11-01 15:15:00) [17]ImpotentType может всегда один и тот же
PS
ImpotentType - представляю, что за картинки :))