Главная страница
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.053 c
2-1162740902
Student2007
2006-11-05 18:35
2006.11.19
Отключение компьютеров по сети...


3-1158588886
partizan
2006-09-18 18:14
2006.11.19
postgreSQL+Delphi


15-1162381911
StriderMan
2006-11-01 14:51
2006.11.19
Что мешает программистам работать дома?


1-1160550411
zorik
2006-10-11 11:06
2006.11.19
Внутреннему класу узнать параметр класа в который он входит


15-1162148722
Petr V.Abramov
2006-10-29 22:05
2006.11.19
сможет ли взлететь реактивный самолет