Текущий архив: 2005.08.21;
Скачать: CL | DM;
Вниз
Как в приложении вызвать процедуру для вывода изображения из RES Найти похожие ветки
← →
Starcom (2005-08-01 18:33) [0]Привет Мастера!
Легенда:
Шаг первый:
Создайте файл сценария ресурса (*.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! ;-()
← →
Гаврила © (2005-08-01 19:43) [1]
> Как в приложении вызвать процедуру для вывода изображения
> из RES файла?
LoadJPEGfromEXE;
← →
Starcom (2005-08-01 21:16) [2]Гаврила © (01.08.05 19:43) [1]
Дык...! Вызывал! Нифига!
И вообще пишет сомпилятор...
[Error] gawrila.pas(37): Undeclared identifier: "Canvas"
← →
Starcom (2005-08-02 19:56) [3]Рыбяты! как соображения?
← →
Гаврила © (2005-08-02 20:09) [4]
> [Error] gawrila.pas(37):
Польщен, спсб :-)
> Undeclared identifier: "Canvas"
Ну так! Канвас то должен быть.
Передай его в LoadJPEGfromEXE параметром
procedure LoadJPEGfromEXE(Canvas: TCanvas);
возьми например, от формы
LoadJPEGfromEXE(Form1.Canvas);
← →
Starcom (2005-08-03 23:48) [5]Гаврила © (02.08.05 20:09) [4]
А то!!!
Пасибо! Ты Рулиш О"кей!
Страницы: 1 вся ветка
Текущий архив: 2005.08.21;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.032 c