Форум: "Основная";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
ВнизСоздание ресурсов Найти похожие ветки
← →
I-New (2007-04-18 22:50) [0]Как создать файл ресурса, из своей собственной программы написанной на делфи? Как это делает Restorator(Он на делфи написан)Подскажите плз
← →
{RASkov} (2007-04-18 23:01) [1]> Как создать файл ресурса
А что есть в твоем понятии - файл ресурса?
← →
Leonid Troyanovsky © (2007-04-18 23:32) [2]
> RASkov} (18.04.07 23:01) [1]
> А что есть в твоем понятии - файл ресурса?
Могу поделиться своим.
Искомое есть изготовляемое brcc32 (хз на чем он писан).
Что делает Restorator - хз, но, видимо, может сохранять
извлеченные из PE ресурсы.
Подобное умеет даже и Resxplor (точно на дельфи писанный,
в примерах, специально для любознательных).
Для особо продвинутых также есть, например, TResourceStream.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-04-18 23:39) [3]
> I-New (18.04.07 22:50)
> Как создать файл ресурса, из своей собственной программы
> написанной на делфи?
{$R myprogram.rc}
Где myprogram.rc ссылается на собс. программу:
SRC RCDATA "myprogram.dpr"
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-04-18 23:45) [4]
> Leonid Troyanovsky © (18.04.07 23:39) [3]
> {$R myprogram.rc}
Пардон, это не требовалось.
Т.е., достаточно просто компилировать (brcc32.exe) файл
следующего содержания:
SRC RCDATA "myprogram.dpr"
--
Regards, LVT.
← →
{RASkov} (2007-04-19 00:04) [5]> [2] Leonid Troyanovsky © (18.04.07 23:32)
> > RASkov} (18.04.07 23:01) [1]
> > А что есть в твоем понятии - файл ресурса?
>
> Могу поделиться своим.
Что конкретно автор хочет не совсем понятно... может он компилятор ресурсов собрался делать ...
Кстати из [2] я так и не понял твоего понятия об файлах ресурсов :) Единственное то, что его изготавливает brcc32 :) что в свою очередь не дает никаких понятий о понятии файла ресурсов. Во как... :)
← →
Leonid Troyanovsky © (2007-04-19 00:38) [6]
> {RASkov} (19.04.07 00:04) [5]
> :) что в свою очередь не дает никаких понятий о понятии
> файла ресурсов. Во как... :)
Хорошо. А так:
Компилятор ресурсов, например brcc32, генерирует ресурсные
файлы из файла описания ресурсов.
Т.е., ресурсный файл - это тот файл, который можно получить от,
например, brcc32.
brcc32 есть (его можно пощупать), и он может изготовить
файлы (см. /?). Их тоже можно пощупать.
Ну, а будут ли эти файлы, дейс-но, ресурсными,
т.е. примет ли их линкер - это на совести brcc32.
Я утверждал, что будут. Т.е., это демонстрация объекта.
--
Regards, LVT.
← →
{RASkov} (2007-04-19 01:12) [7]> [6] Leonid Troyanovsky © (19.04.07 00:38)
Опять уклон идет на brcc32, а вопрос
> Как создать файл ресурса, из своей собственной программы написанной на делфи?
Я, правда, тоже хз что делает Restorator, но.... Ладно... фик с ним с этим ресурсом... непонятно , что нужно автору.
> Автор
Могу только предположить и предложить такой вариант: написать оболочку для brcc32. Многие "Restorator"ы" именно так и делаются.... Все...
Параметры этого самого brcc32 можно посмотреть как и предложил [6] Leonid Troyanovsky Т.е. запустить brcc32 /?, либо вообще без параметров.
← →
{RASkov} (2007-04-19 01:13) [8]> Многие "Restorator"ы"
Т.е. Мэйкресурсеры.... :)
← →
PZ (2007-04-19 09:22) [9]А может быть вот это? Я делал когда-то очень давно, еще на Delphi 1, но работает на любой версии (получает иконку из exe, dll):
procedure TForm1.Button1Click(Sender: TObject); // Открыть файл
Const CurItem : LongInt = 0;
Var
pName : array[0..255] of Char;
fName : String[13];
N : Word;
IconH : hIcon;
begin
With OpenDialog1 do
begin
If not Execute then Exit;
fName := ExtractFileName(FileName);
StrpCopy(pName, FileName);
end;
N := 0;
With StringGrid1 do
Repeat
IconH := ExtractIcon(hInstance, pName, N);
If IconH <= 1 then Break;
Col := CurItem mod ColCount;
If (CurItem div ColCount) >= RowCount then
RowCount := RowCount+1;
Row := CurItem div ColCount;
Cells[Col, Row] := fName + " #" + IntToStr(N);
Objects[Col, Row] := tIcon.Create;
With Objects[Col, Row] as tIcon do
Handle := IconH;
CurItem := CurItem + 1;
N := N + 1;
until False;
end;
// Нарисовать иконку
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint;
Rect: TRect; State: TGridDrawState);
begin
If StringGrid1.Objects[Col, Row] is tIcon then
StringGrid1.Canvas.Draw(Rect.Left+56,
Rect.Top+24,
tIcon(StringGrid1.Objects[Col, Row]));
end;
procedure TForm1.Button2Click(Sender: TObject); // Записать файл
begin
If SaveDialog1.Execute then
With StringGrid1 do
With Objects[Col, Row] as tIcon do
SaveToFile(SaveDialog1.FileName);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c