Я добавил через редактор ресурсов в программу новый ресурс Как мне прочитать в делфи что в нем написано (из тойже проги)
Можно при помощи метода LoadFromResourceName, который имеет два параметра: идентификатор программы и имя ресурса. В качестве идентификатора программы используется глобальная переменная Hinstance. Имя ресурса должно быть представлено в виде строковой константы. Например, инструкция загрузки картинки в переменную Pic может выглядеть так: Code: Pic.LoadFromResourceName(Hinstance,'FACTORY'); Пример загрузки картинок из ресурса: Code: unit Unit1; {$R images.res} // включить файл ресурсов interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm1 = class(TForm) Timer1: TTimer; Image1: ТImage; procedure FormActivate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Back, bitmap, Buf : TBitMap; // фон, картинка, буфер BackRct, BufRet: TRect; // область фона, картинки, буфера х,у:integer; // координаты левого верхнего угла картинки W,H: integer; // размеры картинки implementation {$R *.DFM} procedure TForm1.FormActivate(Sender: TObject); begin Back := TBitmap.Create; // фон bitmap := TBitmap.Create; // картинка Buf := TBitmap.Create; // буфер // загрузить из ресурса фон Back.LoadFromResourceName(HInstance,'FACTORY'); Forml.Image1.canvas.Draw(0,0,Back); // загрузить из ресурса картинку, которая будет двигаться bitmap.LoadFromResourceName(HInstance,'APLANE'); bitmap.Transparent := True; bitmap.TransParentColor := bitmap.canvas.pixels[1,1]; // создать буфер для сохранения копии области фона, на которую // накладывается картинка W:= bitmap.Width; Н:= bitmap.Height; Buf.Width:= W; Buf.Height:=H; Buf.Palette:=Back.Palette; // Чтобы обеспечить соответствие палитр !! Buf.Canvas.CopyMode:=cmSrcCopy; BufRct:=Bounds(0,0,W,H); x:=-W; y:=20; // определим сохраняемую область фона BackRct:=Bounds(x,y,W,H); // и сохраним ее Buf.Canvas.CopyRect(BufRet,Back.Canvas, BackRct); end; procedure TForm1.Timer1Timer(Sender: TObject); begin // восстановлением фона (из буфера) удалим рисунок Form1.image1.canvas.Draw(x,y, Buf); x:=x+2; if x>form1.Image1.Width then x:=-W; // определим сохраняемую область фона BackRct:=Bounds(x,у,W,H); // сохраним ее копию Buf.Canvas.CopyRect(BufRct,Back.Canvas,BackRct); // выведем рисунок Form1.image1.canvas.Draw(x,y,bitmap); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Back.Free; bitmap.Free ; Buf.Free; end; end. Или с помощью TResourceStream: Code: var RS: TResourceStream; begin RS := TResourceStream.Create( HInstance, // хендл приложения, которое содежрит DLL ResourceName, // строка с именем ресурса RT_RCDATA); // идентификатор типа RCDATA RS := TResourceStream.CreateFromID( HInstance, ResourceID RT_RCDATA); end; Создаем текстовый файл, например, MYRES.RC. В нем пишем следующее: Code: TEXT RCDATA text.txt В этом примере в качестве данных будем использовать текстовый документ формата TXT. Файл TXT с каким-либо текстом лежит в той же папке, что и MYRES.RC. Далее, помещаем файл BRCC32.EXE в эту же папку. Пишем файл Compile.bat со следующим содержанием: Code: brcc32.exe myres.rc myres.res После его запуска, получаем файл MYRES.RES в этой же папке. Подключаем файл ресурсов к нашему проекту: Code: var Form1: TForm1; implementation {$R *.dfm} {$R MYRES.RES} Помещаем на форму компонент TRichEdit (RichEdit1) и кнопку TButton (Button1). Пишем следующий код: Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; RichEdit1: TRichEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R MYRES.RES} procedure TForm1.Button1Click(Sender: TObject); var RS: TResourceStream; begin RS := TResourceStream.Create(HInstance, 'TEXT', RT_RCDATA); try // Загружаем данные в компонент RichEdit RichEdit1.Lines.LoadFromStream(RS); finally // Освобождаем память RS.Free; end; end; end.
вот такую ошибку выдает: В строке: PHP: RS := TResourceStream.CreateFromID(HInstance,100, RT_RCDATA);
а у тебя в программе самой есть ресурс с таким именем? и кстати там наверное PHP: RS := TResourceStream.CreateFromID(HInstance,'100', RT_RCDATA);
его нужно добавить через программы для редактирования ресурсов, если да, то я не добавил. Подскажите как это правильно сделать, через какие проги