Текущий архив: 2003.07.28;
Скачать: CL | DM;
Вниз
Извлечение ресурсов. Найти похожие ветки
← →
Igit © (2003-07-13 12:34) [0]Добавил я в программу htm файл в RCDATA, теперь мне надо извлечь его, но выходят ошибки. код ьакой:
var
ResStream : TResourceStream;
htm: Tstrings;
.....
ResStream := nil;
try
ResStream := TResourceStream.CreateFromID(handle, 1, RT_RCDATA);
htm.LoadFromStream(ResStream);
htm.SaveToFile("C:\tmp.tmp");
finally
htm.Free;
ResStream.Free;
end;
в рес-редакторе смотрел, есть там мой ресурс, в RCDATA, "1" называется....
← →
wicked © (2003-07-13 17:51) [1]ну а текст ошибки?....
и в какой строке вываливается?.....
← →
Юрий Зотов © (2003-07-13 18:01) [2]1. Вы передаете хэндл окна, а нужен хэндл приложения:
CreateFromID(HInstance, ...
2. Если "1" - имя ресурса, то надо использовать просто Create.
← →
Igit © (2003-07-14 15:51) [3]поменял handle на HInstance, но теперь при отладке видно, что
ResStream = ()
htm = ()... и вылетает когда я хочу
2Юрий Зотов
подскажите как реализовать 2.
← →
Юрий Зотов © (2003-07-14 17:10) [4]> Igit © (14.07.03 15:51)
Вообще-то, это есть в справке:
ResStream := TResourceStream.Create(HInstance, "1", RT_RCDATA);
И еще - зачем еще какие-то Htm: TStrings? У самого ResStream есть метод SaveToFile и не нужно никаких посредников. Весь код сводится к простому with:
with TResourceStream.Create(HInstance, "1", RT_RCDATA) do
try
SaveToFile("C:\tmp.tmp")
finally
Free
end;
И больше ничего не требуется.
← →
Igit © (2003-07-14 17:42) [5]Извини что задаю глупые вопросы, но я не знаю ни одного человека знающего дельфи, си... на книги средств нет... вернее книги есть но работа с ресурсами там не описана, и всегда когда что-то новое узнаешь, собираешь инфу из первых попавшихся факов и пытаешься реализовать... получается с ошибками, а когда не знаешь в чем ошибка, то не знаешь что искать в хелпе.
Спасибо за разъяснения.
← →
Igit © (2003-07-14 18:14) [6]Теперь ошибка, что ресурса нет... хотя он есть только что проверил eXeScop"om, добавлял его так:
=========info.rc======
1 RCDATA "info.htm"
=====info_make.bat======
BRCC32 info.RC
все правильно, но неработает...
← →
Skier © (2003-07-14 18:17) [7]>Igit © (14.07.03 18:14)
Ресур подключен ?
{$R "Your file"}.
← →
Igit © (2003-07-14 20:11) [8]Да.
← →
Igit © (2003-07-14 20:37) [9]Вот сырец (2 kb) c примером, там ошибка, мол нету такого ресурса
http://bzdun2.narod.ru/1.zip
Заранее благодарен...
← →
Fantasist. (2003-07-15 01:54) [10]
> 1 RCDATA "info.htm"
Так у тебя ID получается. Используй:
with TResourceStream.CreateFromID(handle, 1, RT_RCDATA) do
try
SaveToFile("C:\tmp.tmp")
finally
Free
end;
← →
Igit © (2003-07-15 07:30) [11]2Fantasist.
у меня с этим и были проблемы с самого начала, все компилится, но приз апуске вылетает: "Project Progect1.exe raised exception class EAccesViolation with message..."
← →
AbrosimovA © (2003-07-15 09:50) [12]Сделал как приведено ниже, всё работает, но мне пришлось создать свой файл ресурсов с твоей страницей, у тебя нехороший файл info.res.
Я создал файл ресурсов с помощью Restorator.
program Project1;
uses
Forms, Classes, Windows,
Unit1 in "Unit1.pas" {Form1};
{$R *.res}
{$R info.res}
var ResStream : TResourceStream;
begin
ResStream:=TResourceStream.CreateFromID(hInstance, 1, "HTML");
ResStream.SaveToFile("C:\tmp.tmp");
ResStream.Free;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, SHDocVw, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var Flags: OLEVariant;
begin
Flags := navNoReadFromCache;
WebBrowser1.Navigate(WideString("C:\tmp.tmp"), Flags, Flags, Flags, Flags);
end;
end.
← →
Igit © (2003-07-15 10:22) [13]>AbrosimovA © (15.07.03 09:50)
Я создал ресторатором такой файл:
|============|
|[-]info.res |
| |-[-]html |
| |-1 |
|============|
в 1 мой info.htm... но не работает, если не удалил вышли мне пожалуйста свой res-файл. mailto:6543210@list.ru
← →
AbrosimovA © (2003-07-15 10:26) [14]Уже выслал полностью проект. Если все нормально, напиши.
← →
AbrosimovA © (2003-07-15 10:29) [15]Ещё. Заметь разницу res-файлов при отображении в рестораторе.
← →
Igit © (2003-07-15 14:00) [16]Понятно, у того места куда толкаешь htm тип должен быть текстовый!
Спасибки, большие :)
Страницы: 1 вся ветка
Текущий архив: 2003.07.28;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.011 c