Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Создание ресурсов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
9-1153471223
ХХХ
2006-07-21 12:40
2007.06.17
Зачем использовать dll в играх?


1-1177133804
Залозных Игорь
2007-04-21 09:36
2007.06.17
Файл как параметр функции


15-1179569994
DeadMeat
2007-05-19 14:19
2007.06.17
ESC в диалогах


2-1180339504
Vin
2007-05-28 12:05
2007.06.17
Результаты вычисляемых полей из Table выгрузить в .dbf файл


15-1179999523
Vlad Oshin
2007-05-24 13:38
2007.06.17
Подскажите с блокировками. MSSQL-ADO