Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание ресурсов


I-New ©   (2007-04-18 22:50:00) 

Как создать файл ресурса, из своей собственной программы написанной на делфи? Как это делает Restorator(Он на делфи написан)Подскажите плз


PZ   (2007-04-19 09:22:00) [1]

А может быть вот это? Я делал когда-то очень давно, еще на 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;


{RASkov}   (2007-04-19 01:13:00) [2]

> Многие "Restorator'ы"

Т.е. Мэйкресурсеры.... :)


{RASkov}   (2007-04-19 01:12:00) [3]

> [6] Leonid Troyanovsky ©   (19.04.07 00:38)

Опять уклон идет на brcc32, а вопрос
> Как создать файл ресурса, из своей собственной программынаписанной на делфи?

Я, правда, тоже хз что делает Restorator, но.... Ладно... фик с ним с этим ресурсом... непонятно , что нужно автору.
> Автор
Могу только предположить и предложить такой вариант: написать оболочку для brcc32. Многие "Restorator'ы" именно так и делаются.... Все...
Параметры этого самого brcc32 можно посмотреть как и предложил [6] Leonid Troyanovsky Т.е. запустить brcc32 /?, либо вообще без параметров.


Leonid Troyanovsky   (2007-04-19 00:38:00) [4]


> {RASkov}   (19.04.07 00:04) [5]

> :) что в свою очередь не дает никаких понятий о понятии
> файла ресурсов. Во как... :)

Хорошо. А так:
Компилятор ресурсов, например brcc32, генерирует ресурсные
файлы из файла описания ресурсов.

Т.е., ресурсный файл - это тот файл, который можно получить от,
например, brcc32.

brcc32 есть (его можно пощупать), и он может изготовить
файлы (см. /?). Их тоже можно пощупать.
Ну, а будут ли эти файлы, дейс-но, ресурсными,
т.е. примет ли их линкер - это на совести brcc32.

Я утверждал, что будут. Т.е., это демонстрация объекта.

--
Regards, LVT.


{RASkov}   (2007-04-19 00:04:00) [5]

> [2] Leonid Troyanovsky ©   (18.04.07 23:32)
> > RASkov}   (18.04.07 23:01) [1]
> > А что есть в твоем понятии - файл ресурса?
>
> Могу поделиться своим.

Что конкретно автор хочет не совсем понятно... может он компилятор ресурсов собрался делать ...
Кстати из [2] я так и не понял твоего понятия об файлах ресурсов :) Единственное то, что его изготавливает brcc32 :) что в свою очередь не дает никаких понятий о понятии файла ресурсов. Во как... :)


Leonid Troyanovsky   (2007-04-18 23:45:00) [6]


> Leonid Troyanovsky ©   (18.04.07 23:39) [3]

> {$R myprogram.rc}

Пардон, это не требовалось.
Т.е., достаточно просто компилировать (brcc32.exe) файл
следующего содержания:

SRC RCDATA "myprogram.dpr"

--
Regards, LVT.


Leonid Troyanovsky   (2007-04-18 23:39:00) [7]


> I-New   (18.04.07 22:50)  

> Как создать файл ресурса, из своей собственной программы
> написанной на делфи?

{$R myprogram.rc}

Где myprogram.rc ссылается на собс. программу:
SRC RCDATA "myprogram.dpr"

--
Regards, LVT.


Leonid Troyanovsky   (2007-04-18 23:32:00) [8]


> RASkov}   (18.04.07 23:01) [1]

> А что есть в твоем понятии - файл ресурса?

Могу поделиться своим.

Искомое есть изготовляемое brcc32 (хз на чем он писан).
Что делает Restorator - хз, но, видимо, может сохранять
извлеченные из PE ресурсы.
Подобное умеет даже и Resxplor (точно на  дельфи писанный,
в примерах, специально для любознательных).

Для особо продвинутых также есть, например, TResourceStream.

--
Regards, LVT.


{RASkov}   (2007-04-18 23:01:00) [9]

> Как создать файл ресурса

А что есть в твоем понятии - файл ресурса?


Наверх

Титульная страница Поиск, карта сайта Написать письмо