Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурсы изображений, Как отобразить любое изображение 
:(
    Опции темы
Gwire
Дата 18.8.2009, 10:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4



smile Всем доброго здоровья.
Предисловие:
Я столкнулся с такой задачей: Отображать на форме изображение-иконку (64x64x32)
Варианы которые мне пришли в голову:
=(  Сохранить иконку в TImage (данные увеличиваются больше чем в 2 раза)
=(  Сохранить иконку к ресурс и потом загрузить (но .ico несжат как .png)
=)  Загрузить в ресурс файл-png

Чтобы загрузить .png из ресурса порысля в интернете :
В сети нашёл какие-то странные примеры с дикими манипуляциями переменных и памятью.
Поломал себе голову с денёк (примеры не функционировали как следует) и нашёл (нормальное) решение.

smile Нашёл как раз когда уже собирался просить помоши "vingrad-ян" и решил поделится, малоли что...
(Модераторы: не серчайте, если такая тема уже есть, я правда искал)
Код

var Stream: TResourceStream;
begin
    with Image1.Picture do
    begin
        Graphic:= TPNGGraphic.Create; // (uses acPNG) В моем случае, тобишь я использую

        Stream:= TResourceStream.Create( HInstance, 'ico_02', 'PNG' );
        try Graphic.LoadFromStream( Stream ); finally Stream.Free; end;
    end;
end;


smile Пользуйтесь кто ещё не знал.


Это сообщение отредактировал(а) Gwire - 18.8.2009, 14:49
PM MAIL   Вверх
ivan219
  Дата 21.8.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 4
Всего: 12



Былобы не полохо показать сам класс TPNGGraphic smile 

Это сообщение отредактировал(а) ivan219 - 21.8.2009, 09:46
PM MAIL ICQ   Вверх
Snowy
Дата 21.8.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Цитата(Gwire @  18.8.2009,  10:18 Найти цитируемый пост)
Пользуйтесь кто ещё не знал.
Ну это абсолютно типовой пример использования TResourceStream.

Цитата(ivan219 @  21.8.2009,  09:45 Найти цитируемый пост)
Былобы не полохо показать сам класс TPNGGraphic
Это банальный TPngImage
PM MAIL   Вверх
Gwire
  Дата 31.3.2013, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4




Решил что вопрос решен, но тема раскрыта не полностью.
Как добавить быстро ресурсы (любые ресурсы). Проверялось на D7 и D2009.
Создать 2 файла. Один с расширением ".cmd" и второй с расширением ".rc" (скажем File1.cmd и File2.rc)
В первом (File1.cmd) пишем
Код

@echo off
brcc32.exe File2.rc -fo.\TheMyResFile.res
pause

Во втором (File2.rc) перечисляем все файлы которые хотим добавить в TheMyResFile.res
Код

processor            PNG      "processor.png"
application          PNG      "application.png"
consola              MyFont   "consola.ttf"
consolab             MyFont   "consolab.ttf"
consolai             MyFont   "consolai.ttf"
consolaz             MyFont   "consolaz.ttf"
Назначение колонок ИМЯ, ТИП и ИСТОЧНИК ресурса

Если после запуска File1.cmd видим примерно такое
Код

Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
Для продолжения нажмите любую клавишу . . .
и при этом появился TheMyResFile.res значит все ОК и осталось в код вписать {$R TheMyResFile.res}

Имеются резервированные ТИПы http://msdn.microsoft.com/en-us/library/cc194804.aspx
Указывать нужно без "RC_"

PS: Можно также почитать по ресурсам
http://forum.vingrad.ru/topic-316006.html
http://forum.vingrad.ru/topic-153607.html

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.