13.3. Использование строковых таблиц

На верх  Назад  Вперёд

Таблицы строк могут использоваться для записи и извлечения больших коллекций строк в вашем приложении.

Таблица строка выглядит следующим образом:

STRINGTABLE { 1, "hello World !"
             2, "hello world again !"
             3, "last hello world !" }

Вы можете откомпилировать её (мы предполагаем, что файл называется tests.rc ) следующим образом:

windres -i tests.rc -o tests.res

Способ получения строки из вашей программы будет следующим:

program tests;
{$mode objfpc}
 
Uses Windows;
{$R *.res}
 
Function LoadResourceString (Index : longint): Shortstring;
begin
  SetLength(Result,LoadString(FindResource(0,Nil,RT_STRING),
                              Index,
                              @Result[1],
                              SizeOf(Result)));
end;
 
Var I: longint;
 
begin
  For i:=1 to 3 do
  Writeln(Loadresourcestring(I));
end.

Вызов FindResource ищет таблицу строк в скомпилированных ресурсах. Функция LoadString затем читает строку от индекса i до конца таблицы, и помещает её в буфер, который может быть использован. Оба вызова имеются в модуле windows.