Форум: "Основная";
Текущий архив: 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