JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

ExtractIcon

- функция WinAPI
Функции WinAPI
Возвращает количество значков (пиктограмм) в exe-, dll- или ico-файле, либо дескриптор указанного значка.
Синтаксис
function ExtractIcon(
  FileName,
  IconIndex
): Number;

Параметры
Параметр Тип Описание
FileName String имя exe-, dll- или ico-файла
IconIndex Number номер пиктограммы, либо -1 (см. ниже)

Параметр IconIndex
-1 вовращает количество стандартных пиктограмм, имеющихся в указанном файле
номер пиктограммы возвращает дескриптор стандартной пиктограммы Windows GDI с указанным номером
Возвращаемое значение
Количество пиктограмм в указанном файле, либо дескриптор указанной пиктограммы (в зависимости от значения параметра IconIndex) в случае успеха или 0 в противном случае.
Пример (JS+)
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+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/WinAPI/Function/ExtractIcon.htm
© 2024,