Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ico in DLL


Автор: MIX55 2.3.2006, 19:57
Как можно поместить несколько иконок в DLL'ку а затем использовать в приложении. smile
Всем заранее спасибо.

Автор: Poseidon 2.3.2006, 20:06
Как ресурсы

Автор: MIX55 2.3.2006, 20:24
Цитата

Как ресурсы

А можно пример или где можно почитать.

Автор: Snowy 2.3.2006, 20:26
Код

var
  h: hIcon;
begin
  h := ExtractIcon(hInstance, 'my.dll', IconNumber);
где IconNumber - номер иконки, начиная с 0.

Автор: Poseidon 2.3.2006, 20:33
Snowy показал как использовать, http://vingrad.ru/DELPHI-DLP-000731 описано как поместить.

Автор: MIX55 2.3.2006, 20:34
это как я понимаю импорт из Dll.
Snowy респект.
А как туда эту иконки затолкать?

Автор: Snowy 2.3.2006, 20:49
Если dll твоя, то делаешь так:
Создаешь файлик "имя_файла.rc".
Пишешь в него:
Цитата
MYICON ICON myicon.ico
ZWEUICON ICON zweiicon.ico
и т.д.
Компилишь этот файл:
Цитата
brcc32 имя_файла.rc

Получается файлик "имя_файла.res".
В своей программе добавляешь строчку:
Код
{$R имя_файла.res}

Все. Иконка inside.

Далее. Как доставать и использовать иконку.
Вот пример:
Код
uses ShellApi;

function GetIcon(dll: string; num: integer): TIcon;
var
  h:  hIcon;
begin
  h := ExtractIcon(hInstance, PChar(dll), num);
  if h > 1 then
  begin
    result := TIcon.Create;
    result.Handle := h;
  end else result := nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ico: TIcon;
begin
  ico := GetIcon('C:\WINDOWS\system32\shell32.dll', 15);
  Icon := ico;
  ico.Free;
end;


Автор: MIX55 2.3.2006, 22:38
Цитата

Пишешь в него:
MYICON ICON myicon.ico
ZWEUICON ICON zweiicon.ico

Snowy а сами иконки куда надо помещать?
Добавлено @ 22:40
Цитата

Пишешь в него:
MYICON ICON myicon.ico
ZWEUICON ICON zweiicon.ico

Snowy а сами иконки куда надо помещать?

Автор: Poseidon 2.3.2006, 22:40
В одну папку с "имя_файла.rc"

Автор: Guedda 2.3.2006, 22:42
Легче всего, если иконки расположены в папке с утилитой bcc32... Но можно и по другому. Прописывай полный путь к иконкам. Пример:
Код

MYICON ICON C:\MyIcons\MyIcon.ico

Автор: Snowy 2.3.2006, 22:46
Цитата(Poseidon @ 2.3.2006, 22:40 Найти цитируемый пост)
В одну папку с "имя_файла.rc"
А точнее сами иконки и это файл кидай в папку с проектом. Ну или в любую папку.
Главное, чтобы скомпиленный res файлик в итоге был в папке с проектом.

Цитата(Guedda @ 2.3.2006, 22:42 Найти цитируемый пост)
Легче всего, если иконки расположены в папке с утилитой bcc32...
А вот так не будет работать.

Автор: Guedda 3.3.2006, 12:06
Интересно... Почему же не будет работать? Я всегда так делаю. Кидаю в папку с bcc32 иконки и там же создаю файл *.rc. Потом компилю, и все нормально. Может, ошибку делаю? Объясни, пожалуйста...

Автор: Snowy 3.3.2006, 12:42
Цитата(Poseidon @ 2.3.2006, 22:40 Найти цитируемый пост)
В одну папку с "имя_файла.rc"
А кидать в папку с brcc32 совершенно незачем.
А работать не будет, если иконки не в той же папке, где и *.rc

Автор: SlaUr 3.3.2006, 13:09
http:\slaur.narod.ru - пример работы с ресурсами

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)