Author: Jonas Bilinkevicius
How to retrieve rich text from a resource file and save it to disk
Answer:
These are the basic steps:
Create a resource file
Include it in your project
Load the file from the resource file into a TResourceStream
Create a TFileStream with the filename you want to write to
Use CopyFrom to get the data from the TResourceStream to the TFileStream
Free both the streams
The file is magically written to disk, without any need to call a write procedure
or anything like that. It takes a file called 'test.rtf' from the resource file
TEST.RES and saves it out to disk as 'test2.rtf' in the application folder:
1 2 {$R TEST.RES}3 4 procedure TfrmMain.Button1Click(Sender: TObject);
5 var6 ResStream: TResourceStream
7 MyFileStream: TFileStream;
8 begin9 try10 MyFileStream := TFileStream.Create(ExtractFilePath(Application.ExeName) +
11 ' test2.rtf ', fmCreate or fmShareExclusive);
12 ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
13 MyFileStream.CopyFrom(ResStream, 0);
14 finally15 MyFileStream.Free;
16 ResStream.Free;
17 end;
18 end;