Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2009, 18:13   #1
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию shell32.dll и иконки

Как извлечь иконки из библиотеки shell32.dll и загрузить их в imagelist?
Baaandit вне форума Ответить с цитированием
Старый 24.11.2009, 18:26   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
var
h:hwnd;
bmp:tbitmap;
....
....
h:=loadlibrary('shell32.dll');
bmp.LoadFromResourceID(h,130);
дальше думаю сами разберетесь
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 24.11.2009, 18:34   #3
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

Да не разобрался.Как в imagelist вставить imagelist1.add(bmp) или как?
Baaandit вне форума Ответить с цитированием
Старый 24.11.2009, 18:39   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Цитата:
Да не разобрался.Как в imagelist вставить imagelist1.add(bmp) или как?
Код:
imagelist1.add(bmp, nil);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 24.11.2009, 18:45   #5
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

procedure TForm2.FormActivate(Sender: TObject);
var
h:hwnd;
bmp:tbitmap;
begin
h:=loadlibrary('shell32.dll');
bmp.LoadFromResourceID(h,130);
imagelist2.add(bmp, nil);
end;

Код не работает у меня-ошибка вызывается?bmp.LoadFromResourceID(h ,130);-на этой строке
Baaandit вне форума Ответить с цитированием
Старый 24.11.2009, 18:51   #6
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Перед присваиванием надо создавать битмап.
Код:
procedure TForm2.FormActivate(Sender: TObject);
var
 h:hwnd;
 bmp:tbitmap;
begin
 h:=loadlibrary('shell32.dll');
 bmp := TBitmap.Create;
 try
  bmp.LoadFromResourceID(h,130);
  imagelist2.add(bmp, nil);
 finally
  bmp.Free;
  FreeLibrary(h);
 end;
end;
Может быть что-то неправильно, без делфи сижу.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 24.11.2009, 19:00   #7
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

Спасибо работает.Правда в imagelist добавляется только сининький квадратик) и что здесь- bmp.LoadFromResourceID(h,130) означает 130?
Baaandit вне форума Ответить с цитированием
Старый 24.11.2009, 19:24   #8
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Цитата:
и что здесь- bmp.LoadFromResourceID(h,130) означает 130?
Идентификатор ресурса, в вашем случае иконки.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 24.11.2009, 19:46   #9
Baaandit
Заблокирован
 
Регистрация: 10.11.2009
Сообщений: 99
По умолчанию

procedure TForm2.FormActivate(Sender: TObject);
var
h:hwnd;
bmp:tbitmap;
begin
h:=loadlibrary('shell32.dll');
bmp := TBitmap.Create;
try
bmp.LoadFromResourceID(h,130);
imagelist2.add(bmp, nil);
finally
bmp.Free;
FreeLibrary(h);
end;
end;

Как я понял в этом коде в imagelist загружается какая-то иконка ,непонятно какая правда из библиотеки.А как сделать так чтоб вся библиотека добавлялась в Imagelist?
Baaandit вне форума Ответить с цитированием
Старый 24.11.2009, 20:00   #10
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

130-это я давал случайное число. надо ресторатором вскрывать и смотреть
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
Бинарные данные в shell32.dll роздел FTR bmw Windows 4 26.02.2009 17:44
как вытащить иконки из DLL? andrey4623 Общие вопросы Delphi 2 20.08.2007 10:41
Извлечение иконки из dll JSM Общие вопросы Delphi 2 29.06.2007 21:32
Иконки vicvtor Софт 5 31.05.2007 21:45