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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурсы в компонентах 
V
    Опции темы
Romikgy
Дата 23.1.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Можно ли при создании нового компонента, как то привязать к нему ресурс, типа файла или картинки, и потом при использовании компонента в приложении вызвать картинку, сохранить файл из ресурса?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 23.1.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Взято отсюда: http://www.delphimaster.ru/cgi-bin/forum.p...p;amp;toprint=1
надо поручить всю эту работу самой Delphi. В ней все уже есть, надо только правильно сделать свойство.
Код

type
 TMyComp = class(...)
 private
   FPicture: TPicture;
   procedure SetPicture(Value: TPicture);
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   property Picture: TPicture read FPicture write SetPicture;
 end;

constructor TMyComp.Create(AOwner: TComponent);
begin
 inherited;
 FPicture := TPicture.Create
end;

destructor TMyComp.Destroy;
begin
 FPicture.Free;
 inherited
end;

procedure TMyComp.SetPicture(Value: TPicture);
begin
 FPicture.Assign(Value)
end;


Это тот минимальный код, который обеспечивает диалог выбора картинки и ее сохранение. Если нужно что-то еще (прорисовка картинки, реакция на ее изменение и пр). - см. исходники TImage.

© Юрий Зотов - www.delphimaster.ru
Добавлено @ 17:10
P.S. Delphi сохранит картинку в dfm файл.
При запуске соответственно строит по нему форму и загружает оттуда картинку.
PM MAIL   Вверх
Romikgy
Дата 9.2.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Это не совсем то что я хотел,
При компиляции нового компонента, получается файл дцю, дык я хочу , что бы этот ресурс , был в этом файле, а не в
Цитата(Snowy @ 23.1.2006, 16:06 Найти цитируемый пост)

dfm файл

Добавлено @ 13:53
Что то тип такого
Код

type
 TMyComp = class(...)
 private
   FPicture: TPicture;
  
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   
 end;

constructor TMyComp.Create(AOwner: TComponent);
begin
 inherited;
 FPicture := TPicture.Create;
/// А здеся чтоб загрузка из ресурса
end;

destructor TMyComp.Destroy;
begin
 FPicture.Free;
 inherited
end;




Как такое сделать?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 9.2.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В dcu лихко.
Добавляешь ниже {$R *.dfm} (ну или просто добавляешь, если dfm нет)
{$R *.res}
Создаешь при помощи brcc32 ресурс с именем Unit1.res (ну имя свое, конечно).
Готово.
PM MAIL   Вверх
Romikgy
Дата 9.2.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Snowy @ 9.2.2006, 13:06 Найти цитируемый пост)

{$R *.res}

Это можно писать в исходнике компонента?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 9.2.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Конечно. Даже нужно, если ты хочешь залинковать ресурс.
Не забудь только создать ресурс с именем модуля и бросить его в ту же папку.
PM MAIL   Вверх
Romikgy
Дата 9.2.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Гуд , спасибо , буду пробовать smile smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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