Главная страница
    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.005 c
3-8778
Сержик
2002-01-04 22:47
2002.02.04
Можно запрос делать сразу из двух баз?


14-8987
ShaggyDoc
2001-12-11 14:20
2002.02.04
Миниатюрные программы


14-8974
РУС
2001-12-12 18:06
2002.02.04
УРА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


1-8913
Cyber
2002-01-17 05:24
2002.02.04
Как сделать TMemo прозрачным?


3-8749
$hade
2002-01-03 08:08
2002.02.04
Interbase +Transaction....





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