Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Вниз

Иконки   Найти похожие ветки 

 
Belov   (2002-01-17 17:38) [0]

Привет всем ! Не подскажите как запихнуть иконки в DLL и по требованию их вытащить


 
DK   (2002-01-18 02:21) [1]

Подключи к проэкту файл ресурса (*.RC) с таким содержанием:

1 ICON [drive:\path\]name3.ico
2 ICON [drive:\path\]name3.ico
...

(номер тип путь)

Вытащить с помощью ExtractIcon (подробнее в хелпе)


 
Belov   (2002-01-18 09:14) [2]

OK
С этим понятно - но все-таки касаемо DLL - как ?


 
Anatoly Podgoretsky   (2002-01-18 09:37) [3]

Ну подключи к dll с помощью {$R *.res}


 
Belov   (2002-01-18 11:38) [4]

А после того как я подключил - загружать их
LoadIcon - ?


 
Cage   (2002-01-18 12:34) [5]

Метод, конечно, варварский, но можно и ResEditor"ом каким-нибудь. ResHack, например.


 
Belov   (2002-01-18 13:56) [6]

Не понял
Ребят - можно как для дурака - поподробнее - желательно с примером, плиз


 
Fellomena   (2002-01-18 14:17) [7]

Сама не пробовала, но думаю получится:

// это твоя dll

{$R mydll.RES}

procedure ResOut();
var
MyRes1: TResourceStream;
begin
MyRes1:=TResourceStream.Create(hInstance, "MYDLL", RT_RCDATA);
try
// делаешь с ними что надо
Finally
MyRes1.Free;
end; {try}
end;


После компановки получаешь dll, которая содержит твои иконки, которые раньше были в mydll.RES
А из главной проги, загружающей саму dll обращаешься к процедуре ResOut();
Вроде должно работать 8)


 
DK   (2002-01-19 02:40) [8]

Короче так:

procedure FillIcons(FileName: string; IconBox: TListView);
var
I, M: Integer;
FIcon: TIcon;
begin
FIcon := TIcon.Create;
IconBox.LargeImages.Clear;
M := ExtractIcon(hInstance, PChar(FileName), $FFFFFFFF);
for I := 0 to M - 1 do begin
FIcon.Handle := ExtractIcon(hInstance, PChar(FileName), I);
IconBox.LargeImages.AddIcon(FIcon);
with IconBox.Items do begin
Add;
Item[I].Caption := IntToStr(I);
Item[I].ImageIndex := I;
end;
end;
FIcon.Destroy;
end;


Эта процедура работает у меня безоговорочно.
Вызывается в OnCreate формы так:

IconList.LargeImages := TImageList.Create(IconList);
IconList.LargeImages.Width := 32;
IconList.LargeImages.Height := 32;
FillIcons(ParamStr(0), IconList);


IconList - компонент TListView
ParamStr(0) - файл с ресурсами-иконками (EXE или DLL)

Тоесть ты можешь вытащить иконки из любой проги (если они не упакованы) имея только её полный путь.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-8988
Pat
2001-12-08 14:45
2002.02.04
Глюк FAT32


3-8791
Agent Smith
2002-01-08 14:44
2002.02.04
Работа с файлами


14-8990
fliz
2001-12-14 16:06
2002.02.04
чем ближе НГ-тем менее тут интересно.


7-9003
PavelS
2001-10-18 10:48
2002.02.04
Проблема с Hook !!!!!!!


1-8865
ctapik-net
2002-01-21 15:40
2002.02.04
Создание электронного письма через ShellExecute





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