|
Вопрос # 1 640/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Есть dll с иконками. Как загрузить их все из dll в ListView, атакже извлеч выбранную иконку?
Спасибо!
 |
Вопрос задал: Евгений 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 (статус: Посетитель), 1 июня 2008, 14:56 [#1]:
Все хорошо работает, но когда иконка сохраняется в файл через метод Icon.SaveToFile она теряет свой цвет и становится какой-то серой.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
|
Вадим К (статус: Академик), 1 июня 2008, 17:09 [#2]:
теряется цветность. причины могут быть различны. Вы иконки смотрите в проводнике?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Евгений Eklmn (статус: Посетитель), 1 июня 2008, 18:02 [#3]:
Да.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
|
Вадим К (статус: Академик), 1 июня 2008, 19:49 [#4]:
в файле ico может храниться несколько иконок под разные разрешения.
Проводник не всегда может правильно вырабать, какую иконку отображать. Попробуйте отрыть в любом редакторе иконок и посмотреть, что там.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Евгений Eklmn (статус: Посетитель), 2 июня 2008, 08:58 [#5]:
В редакторе иконка всегда одна (даже та в которой должно быть несолько) и серая.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|