Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
3-8750
Искатель
2002-01-03 01:06
2002.02.04
Как в DBGridEh запретить обход всех записей перед отображением данных


1-8862
Eraser
2002-01-21 12:34
2002.02.04
Процедура Delay


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


1-8876
NLO
2002-01-15 06:35
2002.02.04
Загрузить иконку зарегистрированного расширения в ImageList


14-8999
zero
2001-12-12 18:04
2002.02.04
Merlin и модераторы отзовитесь, объясните что случилось