![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в приложении вызвать процедуру для вывода изображения из RES [D7, WinXP]
Starcom © (2005-08-01 18:33:00)Привет Мастера!
Легенда:
Шаг первый:
Создайте файл сценария ресурса (*.RC) в обычном текстовом редакторе типа Notepad и добавьте следующую строку:
1 RCDATA "MyPic.jpg"
Первый элемент является просто индексом ресурса. Второй элемент указывает на определенный пользователем ресурс. Третий, он же последний элемент, является именем jpeg-файла.
Шаг второй:
Для компиляции ресурса в .RES-файл используйте Borland Resource Compiler, BRCC32.EXE. В командной строке MS-DOS введите:
BRCC32 MyPic.RC
Это создаст файл ресурса с именем MyPic.RES.
Шаг третий:
Добавьте директиву компилятора к исходному коду вашей программы. Она должна располагаться непосредственно за директивой формы, как показано ниже:
{$R *.DFM}
{$R MyPic.RES}
Шаг четвертый:
Добавьте следующий код к вашему проекту (для этого я создал процедуру):
procedure LoadJPEGfromEXE;
var
MyJPG: TJPEGImage; // Объект - JPEG
ResStream: TResourceStream; // Объект - поток ресурсов
begin
try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // Что!? Да, это просто!
Canvas.Draw(12, 12, MyJPG);
// сделайте это, чтобы увидеть что это действительно работает!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure
Обратили внимание на второй параметр процедуры CreateFromID объекта TResourceStream? Это просто индекс ресурса. Вы можете включить более одного jpeg-изображения в исполняемый модуль приложения, просто добавляя в .RC-файл строчку с другим индексом для каждого включаемого изображения.
Шаг пятый:
Вызовите процедуру, запустите программу и вуаля! Дело сделано.
А теперь сам вопрос: Как в приложении вызвать процедуру для вывода изображения из RES файла?
С Уважением Starcom! ;-()
Starcom (2005-08-03 23:48:00) [1]Гаврила © (02.08.05 20:09) [4]
А то!!!
Пасибо! Ты Рулиш О'кей!
Гаврила (2005-08-02 20:09:00) [2]
> [Error] gawrila.pas(37):
Польщен, спсб :-)
> Undeclared identifier: 'Canvas'
Ну так! Канвас то должен быть.
Передай его в LoadJPEGfromEXE параметром
procedure LoadJPEGfromEXE(Canvas: TCanvas);
возьми например, от формы
LoadJPEGfromEXE(Form1.Canvas);
Starcom (2005-08-02 19:56:00) [3]Рыбяты! как соображения?
Starcom (2005-08-01 21:16:00) [4]Гаврила © (01.08.05 19:43) [1]
Дык...! Вызывал! Нифига!
И вообще пишет сомпилятор...
[Error] gawrila.pas(37): Undeclared identifier: 'Canvas'
Гаврила (2005-08-01 19:43:00) [5]
> Как в приложении вызвать процедуру для вывода изображения
> из RES файла?
LoadJPEGfromEXE;