Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизListBox как подобие ListView Найти похожие ветки
← →
kyn66 © (2006-11-03 16:24) [0]Ввиду необходимости нужно сделать из ListBox САБЖ. Связано с тем, что в элемент ListBox нужно всавлять объект, что нельзя сделать с элементом ListView, почему - не понятно. Конкретно нужно, чтобы поусловию один элемент был с картинкой и начинался с самого начала, остальные - со сдвигом вправо, тоже с картинкой но другой. делаю так:
procedure TReestrFrm.SpisokListBoxDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
Var
Bitmap : TBitmap;
Offset : Integer;
begin
with TCustomListBox(Control).Canvas do
begin
FillRect(Rect);
Bitmap := TBitmap.Create;
Case TipRep of
1 : Bitmap.LoadFromResourceName(HInstance, "OTGR");
2 : Bitmap.LoadFromResourceName(HInstance, "REP");
end;{Case}
Bitmap.Transparent :=True;
if Bitmap <> nil then
begin
BrushCopy(Bounds(Rect.Left + 2, Rect.Top + 2, Bitmap.Width, Bitmap.Height),
Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clWhite);
Offset := IIF(TipRep = 2, Bitmap.Width + 8, Bitmap.Width + 0)
end;
TextOut(Rect.Left + Offset, Rect.Top, SpisokListBox.Items[Index]);
end;{With}
Bitmap.Destroy;
end;
Не работает как нужно и темболее картинка почему-то не транспорентится.
← →
Джо © (2006-11-03 16:30) [1]> что нельзя сделать с элементом ListView, почему - не понятно.
TListItem.Data.
← →
kyn66 © (2006-11-03 16:37) [2]И как в элемент внести объект а затем прочитать его?
← →
Джо © (2006-11-03 16:38) [3]> [2] kyn66 © (03.11.06 16:37)
> И как в элемент внести объект а затем прочитать его?
1. ListemItem.Data := MyObject
2. MyObject := TMyObject(ListemItem.Data)
← →
kyn66 © (2006-11-03 16:52) [4]Может я не совсем грамотно выразился, мне нужно как в ListBox сделать :
ListBox.Item.AdObject("Наименование", Pointer(Kod1.AsInteger));
← →
Джо © (2006-11-03 16:54) [5]> [4] kyn66 © (03.11.06 16:52)
> Может я не совсем грамотно выразился, мне нужно как в ListBox
> сделать :
);
ListView1.AddItem("123",Kod1.AsInteger));
← →
Джо © (2006-11-03 16:55) [6]Пардон, то есть,
ListView.Item.AddItem("Наименование", Pointer(Kod1.AsInteger));
← →
kyn66 © (2006-11-03 17:03) [7]
> Пардон, то есть, ListView.Item.AddItem("Наименование", Pointer(Kod1.
> AsInteger));
AddObject
← →
Джо © (2006-11-03 17:10) [8]> [7] kyn66 © (03.11.06 17:03)
>
> > Пардон, то есть, ListView.Item.AddItem("Наименование",
> Pointer(Kod1.
> > AsInteger));
>
> AddObject
ListView.AddItem.
← →
kyn66 © (2006-11-03 17:51) [9]Ага, есть такое, как не видел... Ща только нужно разобраться с прикруткой.
делаю так:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
ListItem: TListItem;
n : Integer;
begin
n := 0;
// ListView1.AddItem
ListView1.Items.BeginUpdate;
with ListView1 do
begin
SmallImages := ImageList1;
LargeImages := ImageList1;
for I := 0 to ImageList1.Count - 1 do
begin
Inc(n);
ListItem := Items.Add;
if n mod 6 = 0 then
begin
ListItem.Indent := 0;
Listitem.Caption := "3333333333333";
// ListItem.ImageIndex := -1;
ListItem.SubItems.Add("");
ListItem.SubItems.Add("");
end
else
begin
ListItem.Indent := 1;
Listitem.Caption := "Image" + IntToStr(I);
ListItem.ImageIndex := I;
ListItem.SubItems.Add("Картинка " + IntToStr(I));
ListItem.SubItems.Add("Кар " + IntToStr(I));
end;
// if I mod 7 = 0 then
// ListItem.Indent := 1;
end;
end;
ListView1.Items.EndUpdate;
end;
Вся обработка идет через ListItem
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.058 c