Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
1

ListBox с картинками!

23.03.2012, 09:29. Показов 6414. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Ребята подскажите компонент, который как в QIP чтобы был, где список пользователей) Качал TUserListBox но он для D6 и не идет на 7 ((( Может кто выручить?

Добавлено через 1 час 17 минут
никто не юзал такую компоненту?)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2012, 09:29
Ответы с готовыми решениями:

В ListBox вводится последовательность строк. Вывести их в ListBox в обратном порядке
Помогите пожалуйста решить задачу :) очень надеюсь на ответ... В ListBox вводится...

spinedit и картинками
не могу привязать киртинки к изменениям значения spinedit function...

Работа с картинками
Вcем привет. Кто может подсказать, в TBitmap находится картинка, её для наглядности нужно вывести...

Работа с картинками
Всем привет! Такой вопрос, возможно ли сделать, чтобы на каждый клик кнопки, появлялась каждый раз...

4
28 / 28 / 19
Регистрация: 03.02.2012
Сообщений: 59
23.03.2012, 09:55 2
Взято с Delphi World:


Вот пример кода. Вам необходимо установить свойство ListBox Style в lbOwnerDrawFixed. Затем в обработчике события DrawItem мы попытаемся нарисовать изображение (смотри описание события OwnerDraw в справке по Delphi).



Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit Listemas;
 
interface
 
uses
 
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;
 
type
 
  TLTemas = class(TForm)
    ListBox1: TListBox;
    procedure FormActivate(Sender: TObject);
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
 
  LTemas: TLTemas;
 
implementation
 
{$R *.DFM}
 
procedure TLTemas.FormActivate(Sender: TObject);
var
 
  Dibujo: TIcon;
begin
 
  with ListBox1.Items do
  begin
    Dibujo := TIcon.create;
    Dibujo.LoadFromFile('D:\Delphi\Projects\Delphi5\DelphiWorld\base\images\ico.ico');
    AddObject('Delphi World - программа для всех', Dibujo);
    Dibujo := TIcon.create;
    Dibujo.LoadFromFile('D:\Delphi\Projects\Delphi5\DelphiWorld\base\images\ico.ico');
    AddObject('Delphi World - самый большой сборник', Dibujo);
  end;
end;
 
procedure TLTemas.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 
  Rect: TRect; State: TOwnerDrawState);
var
 
  Icon: TIcon;
  Offset: Integer; { ширина отступа текста }
begin
 
  with (Control as TListBox).Canvas do
    { рисуем на холсте элемента управления, не на форме }
  begin
    FillRect(Rect); { очищаем прямоугольник }
    Offset := 2; { обеспечиваем отступ по умолчанию }
    Icon := TIcon((Control as TListBox).Items.Objects[Index]);
      { получаем иконку для данного элемента }
    if Icon <> nil then
    begin
      Draw(Rect.Left + 1, Rect.Top + 2, TIcon((Control as
        TListBox).Items.Objects[Index]));
 
      Offset := Icon.width + 9;
        { добавляем четыре пикселя между иконкой и текстом }
    end;
    TextOut(Rect.Left + Offset, Rect.Top + 7, (Control as TListBox).Items[Index])
      { выводим текст }
  end;
end;
 
end.



Воспользуйтесь событием OnDrawItem объекта ListBox (или ComboBox, или др.). В его обработчике рисовать графику так же легко, как и писать текст. (Полное управление вы получите после того, как подключите к своей работе обработку события OnMeasureItem)



Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure ListDrawItem(Control: TWinControl; Index:
  Integer; Rect: TRect; State: TOwnerDrawState);
var
  BitMap: TBitMap;
begin
  {Здесь инициализируем Bitmap.... например, загружаем в него изображение}
  with (Control as TListBox).Canvas do
  begin
    FillRect(Rect);
    Draw(Rect.Left, Rect.Top, BitMap);
    TextOut(Rect.Left + 2 + BitMap.Width, Rect.Top,
      DstList.items.strings[index]); {DstList - имя списка}
  end;
end;
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
23.03.2012, 20:09  [ТС] 3
Спасибо) Но неужели нет готового компонента под D7?
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 13
02.06.2013, 19:03 4
пример1:
Delphi
1
2
3
4
5
6
7
procedure TForm1.Button1Click(Sender: TSender); 
var Icon: TIcon; 
begin 
 Icon := TIcon.Create; 
 Icon.LoadFromFile('DELPHI.ICO'); 
 ListBox1.Items.AddObject('Delphi', Icon); 
end;
вот пример посложнее:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TForm1.ListBox1DrawItem(Control: TWinControl; 
    Index: Integer;
    Rect: TRect; State: TOwnerDrawState);
var
 
  Icon: TIcon;
  Offset: Integer; { Смещение текста }
begin
 
  with (Control as TListBox).Canvas do
    { Рисуем на управлении }
  begin
    FillRect(Rect); { Очищаем прямоугольник }
    Offset := 20; { Смещение по умолчанию }
    Icon := TIcon((Control as TListBox).Items.Objects[Index]);
      { Получаем иконку для этого пункта }
    if Icon <> nil then
    begin
      Draw(Rect.Left + 1, Rect.Top + 2, TIcon((Control as
        TListBox).Items.Objects[Index]));
 
      Offset := Icon.width + 9;
        { Добавляем пробел между иконкой и текстом }
    end;
    TextOut(Rect.Left + Offset, Rect.Top + 7, (
        Control as TListBox).Items[Index])
      { Вывод текста }
  end;
end;
0
0 / 0 / 1
Регистрация: 16.10.2013
Сообщений: 4
19.11.2013, 15:16 5
А как делать смену иконки в определенной строке ListBox?
0
19.11.2013, 15:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2013, 15:16
Помогаю со студенческими работами здесь

Тест, вопросы с картинками
Всем привет, делаю тест в Делфи, подскажите пожалуйста как сделать вопрос с картинкой?

Работы с картинками в Делфи
Подскажите... как из имеющихся картинок вызвать их рандомно . 4 (3 неверных и 1 верная) и при...

Отчёт с картинками в 2 столбика
Уважаемые, вот так выводится сейчас Как сделать,чтобы с права тоже было место заполнено? Т.е. 2...

Работа с картинками из web browser
как использовать картинки взятые из веббраузера без повторной скачки? нужно использовать картинки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru