Notice Of Closure

Please note that this website is due to close down on 15th June 2020.

In the interim I will try to move as much content as possible over to my GitHub account. Thanks to everyone who has supported the site over the years.

» Help

How to retrieve rich text from a resource file and save it to disk


These are the basic steps:

  1. Create a resource file
  2. Include it in your project
  3. Load the file from the resource file into a TResourceStream
  4. Create a TFileStream with the filename you want to write to
  5. Use CopyFrom to get the data from the TResourceStream to the TFileStream.
  6. 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:

procedure TfrmMain.Button1Click(Sender: TObject);
  ResStream: TResourceStream
  MyFileStream: TFileStream;
    MyFileStream := TFileStream.Create(
      ExtractFilePath(Application.ExeName) + 'test2.rtf ',
      fmCreate or fmShareExclusive
    ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
    MyFileStream.CopyFrom(ResStream, 0);
Original resource: The Delphi Pool
Author: Martin Holmes
Added: 2010-02-22
Last updated: 2010-02-22

« Return to contents »