Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
8-1144895893
Delphi_uzer
2006-04-13 06:38
2006.11.19
Движение картинки к точке...


15-1162137014
Ketmar
2006-10-29 18:50
2006.11.19
softwarer.ru


15-1161870466
kaif
2006-10-26 17:47
2006.11.19
Что за хреновая кодировка?


15-1162322057
DillerXX
2006-10-31 22:14
2006.11.19
Помогите с Матаном немного


1-1160418934
o_serg
2006-10-09 22:35
2006.11.19
ListView.Items.Item[n].Data присвоить ansistring