Главная страница
    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.004 c
4-9036
Chup
2001-12-03 16:16
2002.02.04
Как убить процесс сеанса дос.


1-8877
Ольга
2002-01-16 14:37
2002.02.04
ListBox-ы


3-8746
vinni2000
2002-01-03 14:02
2002.02.04
Удаление повторяющийся записи


1-8807
AlexHH
2002-01-15 17:31
2002.02.04
Существует ли аналог функции MEMCPY в Delphi?


3-8805
EternalWonderer
2002-01-03 17:30
2002.02.04
работа с компонентами DOA





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