[next] [prev] [prev-tail] [tail] [up]

### 12.3 Using string tables.

String tables can be used to store and retrieve large collections of strings in your application.

A string table looks as follows:

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

You can compile this (we assume the file is called tests.rc) as follows:

     windres -i tests.rc -o tests.res

And this is the way to retrieve the strings from your program:

     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.

The call to FindResource searches for the stringtable in the compiled-in resources. The LoadString function then reads the string with index i out of the table, and puts it in a buffer, which can then be used. Both calls are in the windows unit.

[next] [prev] [prev-tail] [front] [up]