Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.037 c
3-1158571057
memo
2006-09-18 13:17
2006.11.19
BLOB поле


2-1162667438
Kley
2006-11-04 22:10
2006.11.19
Поиск с отбором Query


15-1162202770
SerJaNT
2006-10-30 13:06
2006.11.19
Отказано в доступе


1-1160046544
WebSqlNeederr
2006-10-05 15:09
2006.11.19
Как обрабатывать текст в Exel?


6-1149636249
Nostradamus
2006-06-07 03:24
2006.11.19
Indy и пересылка Stream





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский