Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 640

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Есть dll с иконками. Как загрузить их все из dll в ListView, атакже извлеч выбранную иконку?
Спасибо!

Евгений Eklmn Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Евгений Eklmn (статус: Посетитель)
Вопрос отправлен: 31 мая 2008, 19:59
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Трофимов Евгений!
Всё очень просто. Ставим на форму ListView, ImageList и Button
настраиваем свойства
Listview1.LargeImage = ImageList
ListView1.ViewStyle = vsIcon
размеры и положени - по вкусу.

ImageList1.Height = 32
ImageList1.Width = 32

Теперь осталось обработчик кнопки

uses
  shellApi;
//....
procedure TForm3.Button1Click(Sender: TObject);
const
  ExtrFileName = 'C:\WINDOWS\system32\moricons.dll';//путь к библиотеке с иконками
var
  icon: TIcon;
  NumberOfIcons, i: Integer;
begin
  icon := TIcon.Create;
  try
    // Узнаем, сколько их там
    NumberOfIcons := ExtractIcon(Handle, PChar(ExtrFileName), UINT(-1));
    ShowMessage(Format('%d Icons', [NumberOfIcons]));
    // извлечём
    for i := 0 to NumberOfIcons - 1 do
    begin
      icon.Handle := ExtractIcon(Handle, PChar(ExtrFileName), i);
      ImageList1.AddIcon(icon);
      ListView1.Items.Add.ImageIndex := i;
    end;
  finally
    icon.Free;
  end;
end;

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 1 июня 2008, 00:15


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 2 июня 2008, 08:58; участников в обсуждении: 2.
Евгений Eklmn

Евгений Eklmn (статус: Посетитель), 1 июня 2008, 14:56 [#1]:

Все хорошо работает, но когда иконка сохраняется в файл через метод Icon.SaveToFile она теряет свой цвет и становится какой-то серой.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
Вадим К

Вадим К (статус: Академик), 1 июня 2008, 17:09 [#2]:

теряется цветность. причины могут быть различны. Вы иконки смотрите в проводнике?
Галочка "подтверждения прочтения" - вселенское зло.
Евгений Eklmn

Евгений Eklmn (статус: Посетитель), 1 июня 2008, 18:02 [#3]:

Да.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
Вадим К

Вадим К (статус: Академик), 1 июня 2008, 19:49 [#4]:

в файле ico может храниться несколько иконок под разные разрешения.
Проводник не всегда может правильно вырабать, какую иконку отображать. Попробуйте отрыть в любом редакторе иконок и посмотреть, что там.
Галочка "подтверждения прочтения" - вселенское зло.
Евгений Eklmn

Евгений Eklmn (статус: Посетитель), 2 июня 2008, 08:58 [#5]:

В редакторе иконка всегда одна (даже та в которой должно быть несолько) и серая.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.03 сек.