Главная страница
    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.047 c
2-1162704083
Виталий Гаврилов
2006-11-05 08:21
2006.11.19
Сформировать письмо


2-1162407757
despo
2006-11-01 22:02
2006.11.19
Есть ли ограничение на длину sql скрипта в TQuery?


15-1162149015
Ketmar
2006-10-29 22:10
2006.11.19
только не мой мозг...


15-1162368065
Slider007
2006-11-01 11:01
2006.11.19
Чисто человеческий вопрос. Автошкола.


15-1162043372
PHPDeveloper
2006-10-28 17:49
2006.11.19
ICQ





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский