|
|
Возвращает количество значков (пиктограмм) в exe-, dll- или ico-файле, либо дескриптор указанного значка.
Синтаксис
function ExtractIcon(
| FileName, | IconIndex
| ): Number;
|
Параметры
|
Параметр
| Тип
| Описание
|
FileName
| String
| имя exe-, dll- или ico-файла
|
IconIndex
| Number
| номер пиктограммы, либо -1 (см. ниже)
|
|
Параметр IconIndex
|
-1
| вовращает количество стандартных пиктограмм, имеющихся в указанном файле
|
номер пиктограммы
| возвращает дескриптор стандартной пиктограммы Windows GDI с указанным номером
|
|
Возвращаемое значение
Количество пиктограмм в указанном файле, либо дескриптор указанной пиктограммы (в зависимости от значения параметра IconIndex) в случае успеха или 0 в противном случае.
var tab=15;
// Главная форма frm=new TForm(); frm.Caption="JS+ - функция WinAPI ExtractIcon"; frm.Width =525; frm.Height=375;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=" Нажмите кнопку Выбрать и выберите exe-, dll- или ico-файл";
// TLabeledEdit led=new TLabeledEdit(frm); led.EditLabel.Caption="Файл с пиктограммой:"; led.BorderStyle=bsSingle; led.Left=tab; led.Top =tab*2; led.Width=frm.ClientWidth-led.Left*2;
// Кнопка btn=new TButton(frm); btn.Caption="Выбрать"; btn.Left=frm.ClientWidth-btn.Width-tab; btn.Top =led.Top+led.Height+tab; btn.Hint="Выбор файла с пиктограммой"; btn.ShowHint=true; btn.OnClick=btn_Click;
frm.ShowModal();
// Обработчик события OnClick function btn_Click(btn) { var dlg,hIcn,n,x=tab,y=btn.Top+btn.Height+tab; var cnv=frm.Canvas;
// Диалог with (dlg=new TOpenDialog(frm)) { Title=" Выбор файла"; Options+=ofShareAware+ofDontAddToRecent; Filter= "EXE-файлы (*.exe)|*.exe|"+ "DLL-файлы (*.dll)|*.dll|"+ "ICO-файлы (*.ico)|*.ico"; InitialDir=getWinDir(); }
if (dlg.Execute()) { if (dlg.Options & ofExtensionDifferent) alert("Это неправильный файл"); else if ((n=ExtractIcon(dlg.FileName,-1))==0) alert("Файл не содержит пиктограммы"); else { led.Text=dlg.FileName; stb.SimpleText=" Пиктограмм в файле: "+n;
cnv.Brush.Style=bsClear; cnv.Brush.Color=frm.Color; cnv.FillRect(Rect(x,y,frm.ClientWidth-x,stb.Top-y));
DrawIcon(cnv.Handle,x,y,hIcn=ExtractIcon(dlg.FileName,0)); DestroyIcon(hIcn); } }
dlg.Delete(); }
Примечание
Функция ExtractIcon возвращает количество или дескрипторы стандартных пиктограмм. Размеры стандартной пиктограммы можно получить при помощи функции Windows API GetSystemMetrics с указанием
метрик SM_CXICON или SM_CYICON.
Совместимость
Windows API
|
JS+ | Руководство пользователя
|
|
|
|
|
|