![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что можно(нужно) сделать, чтобы Delphi запомнил [D7, XP]
mr1Andersen © (2007-05-12 12:54:00)Удалено модератором
Примечание: СПАМ
{RASkov} (2007-05-12 17:25:00) [1]> [12] mr1Andersen (12.05.07 16:19)
> мне нужно одну exe-ку
Я верю... ;)
mr1Andersen (2007-05-12 16:19:00) [2]
> {RASkov} © (12.05.07 15:39) [11]
> > [10] mr1Andersen (12.05.07 15:20)Ну а что мешает временно
> положить gif рядом с ехешником(в одну и туже папку).....
> , пока не научишься его в ресурс закидывать/извлекать...
> .
мне нужно одну exe-ку
{RASkov} (2007-05-12 15:39:00) [3]> [10] mr1Andersen (12.05.07 15:20)
Ну а что мешает временно положить gif рядом с ехешником(в одну и туже папку)....., пока не научишься его в ресурс закидывать/извлекать....
> Подскажите пожалуйста с сылку на специализированный компонент.
TRxGIFAnimator из библиотеки RxLib и остальные компоненты из этой же библиотеке полезные, RxLib но НЕ JEDI(JVCL).....)
mr1Andersen (2007-05-12 15:20:00) [4]
> Юрий Зотов © (12.05.07 13:45) [5]
> Сделать это можно либо вручную (см. справку Win32 SDK по компилятору
> ресурсов RC), либо с помощью специализированных компонентов.
> Второе, конечно, же проще.
Вручную как видите ни получается, жаль конечно.
Подскажите пожалуйста силку на специализированный компонент.
Наперед спасибо!
mr1Andersen (2007-05-12 15:05:00) [5]
> PZ (12.05.07 14:46) [8]
> > [6] mr1Andersen (12.05.07 14:15)Попробовать:try include(GIFImageDefaultDrawOptions,
> goDirectDraw); rs1.Seek(0); Image1.Picture.Graphic.LoadFromStream(rs1);
> finally
[Error] Unit1.pas(34): There is no overloaded version of 'Seek' that can be called with these arguments
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
PZ (2007-05-12 14:46:00) [6]> [6] mr1Andersen (12.05.07 14:15)
Попробовать:
try
include(GIFImageDefaultDrawOptions, goDirectDraw);
rs1.Seek(0);
Image1.Picture.Graphic.LoadFromStream(rs1);
finally
Loginov Dmitry (2007-05-12 14:16:00) [7]> [0] mr1Andersen (12.05.07 12:54)
Выбивание почвы из-под ног - не самая хорошая затея. Сейчас программа пишет, что рисунок не найден, а когда-нибудь вообще откажется работать (точно не помню, но вроде Рихтер пишет, что при работе с CD-ROM используется такой же FileMapping, что и при работе с винчестером, т.е. раздел кода в файл подкачки не скидывается).
mr1Andersen (2007-05-12 14:15:00) [8]Я пробовал так:
1) создаю папку 1 на d:\
2) копирую «brcc32.exe» с Borland\Delphi7\Bin
3) кидаю «brcc32.exe» и «flower.gif» в папку 1
4) создаю в папке текстовый документ где пишу: Pic1 RCDATA “«flower.gif»”. Затем делаю из текстового документа файл: «pict.rc»
5) Пуск-Выполнить: d:\1\brcc32.exe d:\1\pict.rc
6) Появляется файл: «pict.RES»
7) копирую «pict.RES» в папку с проектом
8) Запускаю Delphi и в Unit1 пишу:
unit Unit1;
interface
uses
GIFImage,
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R pict.RES}
procedure TForm1.FormCreate(Sender: TObject);
var
rs1: TresourceStream;
begin
rs1:=TResourceStream.Create(HInstance, 'Pic1', RT_RCDATA);
try
include(GIFImageDefaultDrawOptions, goDirectDraw);
Image1.Picture.Graphic.LoadFromStream(rs1);
finally
rs1.free
end;
end;
end.
В результате пуста форма.
Юрий Зотов (2007-05-12 13:45:00) [9]> mr1Andersen (12.05.07 12:54)
Bmp запоминаются в теле самой программы (конкретно - в разделе ее ресурсов) и оттуда же извлекаются. Код сохранения и извлечения прописан в компонентах, которыми мы пользуемся, поэтому все происходит как бы автоматически и после компиляции программы сам файл рисунка ей уже не нужен (он уже сидит внутри нее).
Стандартные компоненты для работы с анимацией поступают иначе - в теле программы они запоминают не сам файл, а только его имя (а для работы программы, конечно же, нужен сам файл). Чтобы сохранить в теле программы сам файл, его, как и в случае с Bmp, сначала нужно записать в раздел ее ресурсов, а потом оттуда же извлекать. Сделать это можно либо вручную (см. справку Win32 SDK по компилятору ресурсов RC), либо с помощью специализированных компонентов. Второе, конечно, же проще.
mr1Andersen (2007-05-12 13:39:00) [10]Какими ресурсами
X9 (2007-05-12 13:27:00) [11]Пользуйтесь ресурсами.
mr1Andersen (2007-05-12 13:06:00) [12]нет рисунка
Loginov Dmitry (2007-05-12 13:03:00) [13]> Вытягиваю из cd-rom диск на котором был gif-рисунок «flower.gif»,
> запускаю программу – в результате ошибка.
Какая ошибка?