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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурс, Загрузка ресурса 
:(
    Опции темы
tar13
Дата 6.4.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.4.2007

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



В моей программе, компонент memo грузил текст из блокнота. Появилась необходимость поместить содержимое блокнота в exe файл, т.е. создать ресурс, я создал ресурс TEXT1.res, вопрос: каким образом теперь использовать этот ресурс, как его загрузить в memo.

Ещё раз:
есть memo
есть TEXT1.RES, созданный из блокнота с текстом

КАК загрузить ресурс?
подскажите пожалуйста код

С уважением tar

P.S.
шутки, высказывания прорицателей пожалуйста не присылайте, дайте дельный совет, желательно код или хотя бы ссылку с примером загрузки текста в memo из ресурса, хотя я думаю быстрее и проще сказать код.
Спасибо
PM MAIL   Вверх
Alexeis
Дата 6.4.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  res : TResourceStream;
begin
  res := TResourceStream.Create(hInstance, 'MEMOTEXT1', RT_RCDATA);
  memo1.Lines.LoadFromStream(res);
  res.Free;
end;




Это сообщение отредактировал(а) Alexeis - 6.4.2007, 13:16

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  resstr_2007.04.06_13.16.rar 1,99 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
tar13
Дата 6.4.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.4.2007

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



Хм, первоначально я сам использовал такой код, но выходит ошибка несоотвтствия типов:

incompatible types: 'string' & 'TResourceStream' 

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


Эксперт
****


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

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



Это потому что у тебя был неправильный код.
А правильный - этот  smile 
PM MAIL   Вверх
tar13
  Дата 6.4.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.4.2007

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



Думаю что у меня проблема с созданием ресурса, у меня Delphi7, пользуюсь WorkShop 4.5

Я создаю блокнот с любым текстом с именем memotext
Создаю блокнот text.rc, в котором пишу: memotext text memotext.txt
Открываю его через WorkShop и сохраняю как text.res

Далее создаю проект, на форму помещаю memo,
далее пишу ключ {$R text.res}
Далее в событие создание формы пишу

...
var
res: TresourceStream
Begin

res:= Tresourcestream.create(hInstance, 'text', RT_RCDATA);
memo.lines.loadfromstream(res);
res.free;
...

При попытке запуска проекта пишется 
error rlink32: unsupported 16-bit resource data
Может проблема с WorkShop,
кстати я создавал ресурс из bitmap файлов, выходила та же ошибка,
но потом я открывал созданный ресурс в борландовском image editor
и снова сохранял без изменений в том же формате с тем же именем
Запускал проект и всё нормально работало
???
Delphi 7 английская, WorkShop 4.5 тоже английский - подскажите пожалуйста




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


Смышленный
***


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

Репутация: 7
Всего: 38



Замени RT_RCDATA на 'memotext'...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Snowy
Дата 6.4.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В комплект дельфи входит brcc32 - это стандартный инструмент для создания ресурсов для своей программы.
PM MAIL   Вверх
Alexeis
Дата 6.4.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



tar13, я пользовался Restoratorом


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BLACK_KOT
Дата 15.10.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.12.2006

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



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

Код

var f:TextFile; 
hr:THandle;
p:Pointer;

begin

hr:=LoadResource(HInstance,FindResource(HInstance,'mytext',RT_RCDATA));
 p:=LockResource(hr);
AssignFile(f,?);
reset(f);
...
UnlockResource(hr);
end;




--------------------
                       .. я - демо версия Бога от Microsoft..
PM MAIL   Вверх
MetalFan
Дата 15.10.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



BLACK_KOT, а зачем такой изврат?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Alexeis
Дата 15.10.2007, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



BLACK_KOT, после извлечения из ресурса он сразу же будет блоком в памяти, который не сложно загрузить в TStringList.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BLACK_KOT
Дата 16.10.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.12.2006

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



покажи на примере, как загрузить текстовый файл из ресурса в Tstringlist и как достать к примеру 5ую строку.


--------------------
                       .. я - демо версия Бога от Microsoft..
PM MAIL   Вверх
aktuba
Дата 16.10.2007, 01:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

Репутация: 7
Всего: 38



Цитата

покажи на примере, как загрузить текстовый файл из ресурса в Tstringlist и как достать к примеру 5ую строку. 


Вот кусок из моей старой программы:
Код

  FHash := TStringList.Create;
  rStream := TResourceStream.Create(HInstance, 'HS', RT_RCDATA);
  lStream := TMemoryStream.Create;
  try
    lStream.CopyFrom(rStream, rStream.Size);
    lStream.Position := 0;
    DecryptStream(lStream);
    lStream.Position := 0;
    FHash.LoadFromStream(lStream);
  finally
    lStream.Free;
    rStream.Free;
  end;



--------------------
user posted image
PM MAIL WWW Skype   Вверх
BLACK_KOT
Дата 25.10.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.12.2006

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



допустим в exe файле есть ресурс с двумя, одинаковыми по размеру иконками.  отображаться, разумеется будет тока одна.  а как сделать чтобы при определённых условиях иконка exeшника менялась на вторую? вообще, можно ли программно сменить иконку у файла?


--------------------
                       .. я - демо версия Бога от Microsoft..
PM MAIL   Вверх
Alexeis
Дата 25.10.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(BLACK_KOT @  25.10.2007,  17:03 Найти цитируемый пост)
вообще, можно ли программно сменить иконку у файла? 

  Файл файлу рознь. Для обычных типов ассоциации устанавливаются в реестре, а для экзешников берутся из ресурса самого MainIcon.

  Вопрос не досточно конкретизирован.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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