Главная страница
    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.051 c
2-1162298758
Viktoria
2006-10-31 15:45
2006.11.19
Массивы


15-1162375283
Карелин Артем
2006-11-01 13:01
2006.11.19
Зарплаты/жилье в Подольске. Что почем?


15-1162236876
Витян
2006-10-30 22:34
2006.11.19
EyeSaver...


2-1162383897
Сергей И
2006-11-01 15:24
2006.11.19
Помогите с вопросом Ini файлов!


3-1158651489
term1t
2006-09-19 11:38
2006.11.19
Comand is missing required clause





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