Шаблон проектирования программного обеспечения для библиотек ресурсов? - PullRequest
0 голосов
/ 02 октября 2009

Существует ли какой-либо шаблон (шаблон разработки программного обеспечения) для загрузки изображений или строк сообщений из файлов ресурсов?

Ответы [ 2 ]

4 голосов
/ 02 октября 2009

Шаблон описывает общее решение конкретной ситуации. Речь идет о большей структуре, а не об отдельных командах.

Загрузка изображений или строк сообщений из файлов ресурсов сводится к простым командам, т.е.

LoadString (HINSTANCE, UINT, LPTSTR, int)

так что я не думаю, что вы найдете «образец» для этого.

1 голос
/ 15 марта 2011

1. Текстовые ресурсы

Чтобы использовать текстовые ресурсы, проще реализовать ресурсную строку для хранения вашего текста:

resourcestring
  sMsgHello = 'Hello world';

begin
  ShowMessage(sMsgHello); // will be loaded from resource
end;

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

Если текст не был определен в исходном коде, вы можете вызвать Delphi-функцию LoadResString () или API-интерфейс LoadString ().

2. Другие ресурсы

Для нетекстовых ресурсов наиболее простым является использование TResourceStream:

var 
  RS: TStream;
  s: string;
begin
  RS := TResourceStream.Create(HInstance,'ResName','TXT');
  try
    SetString(s,PChar(RS.Memory),RS.Size);
    Memo.Text := s;
  finally
    RS.Free;  
  end;
end;

Ресурсы могут быть очень мощными. Вы можете найти здесь , как вы можете встроить ZIP в качестве ресурса, а затем прочитать любой внутренний сжатый файл, когда это необходимо. Ресурсы отображаются в памяти exe-файла, поэтому они загружаются в память только по запросу. У вас может быть огромный exe-файл с большим количеством ресурсов, который по-прежнему загружается сразу: ресурсы читаются с диска только при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...