Resources Workshop je program pro vytváření souborů systémových zdrojů pro překladače firmy Borland ( Delphi,C,C++ Builder,...). Do programu je integrován prohlížeč systémových zdrojů v souborech EXE a DLL s možností jejich exportu.

Systémové zdroje lze tvořit z těchto objektů -

1. 	Bitová mapa 	- 2,16,256,16 mil. Barev

2. 	Ikona	- 16,256 barev

3. 	Kurzor	- 2,16,256 barev

4. 	Soubor JPG	- 16 mil. Barev, 256 odstínů šedi

5. 	Zvuk	- soubor WAV

6. 	Animace	- soubor AVI

7. 	Text	- libovolné řetězce do délky 255 znaků

8. 	Verze	- informace o verzi souboru

9. 	Obecná data.

Jednotlivé odkazy na objekty, které vytvoří systémový zdroj lze uložit do projektu. Kompilací objektů obsažených v projektu je vytvořen soubor systémových zdrojů *.RES.

Součástí nápovědy je popis obsluhy programu, popis vytvoření odkazů na objekty a popis načtení objektů do vaší aplikace.


Obsluha programu

Program neobsahuje menu v klasické podobě, jednotlivé funkce jsou jsou dostupné přes ikony.

 	Vytvoření nového projektu

Otevření existujícího projektu

Uložení projektu

Přířazení názvu zkompilovanému souboru

Kompilace

Prohlížeč zdrojů v souborech EXE a DLL

Zobrazení nápovědy

Volba jazyka


Vytvoření položek projektu

Položku typu bitmapa,ikona,kurzor,obrázek JPG,zvuk,animace a obecná data lze vytvořit následujícím způsobem :

Vyvořte položku kliknutím na ikonu  [image].

Vyplňte jméno položky a definujte cestu kliknutím na ikonu [image].

Přiřazení těchto hodnot provedeme kliknutím na ikonu [image].

Pro zadání textové položky vypište obsah do textového pole. Jednotlivé položky oddělíte stiskem klávesy ENTER.

Pro zadání informací o verzi potvrďte zaškrtnutím volby Vložit informace o verzi. Předdefinovaná pole, která nebudou mít vyplněnou hodnotu nebudou do informací zahrnuty.

Šest volných polí použijte k zadání vlastních informací o verzi.


Načtení bitmapy

procedure TForm1.RCLoadBMP(Sender: TObject);

begin

   Image1.Picture.Bitmap.

          LoadFromResourceName(hInstance,'BMP');

   { "BMP" is Name from Res file }

end;


Načtení ikony

procedure TForm1.RCLoadIcon(Sender: TObject);

var Icon:TIcon;

begin

   Icon:=TIcon.Create;

   Icon.Handle:=LoadIcon(hInstance,'MAINICON');

   { "MAINICON" is Name from Res file }

   Image1.Picture.Icon:=Icon;

end;


Načtení kurzoru

procedure TForm1.RCLoadCUR(Sender: TObject);

var Curs:HCursor;CN:string;

begin

   CN:='CUR'+#0;

   { "CUR" is Name from Res file }

   Curs:=LoadCursor(hInstance,@CN[1]);

   Screen.Cursors[crHandPoint]:=Curs;

end;


Načtení JPG obrázku

uses JPEG,.....

procedure TForm1.RCLoadJPG(Sender: TObject);

var JPG:TJPEGImage;

    RS:TResourceStream;

    BMP:TBitMap;

begin

   JPG:=TJPEGImage.Create;

   BMP:=TBitmap.Create;

   RS:=TResourceStream.Create(hInstance,'JPG',RT_RCDATA);

   { "JPG" is Name from Res file }

   JPG.LoadFromStream(RS);

   BMP.Width:=JPG.Width;BMP.Height:=JPG.Height;

   BMP.Canvas.Draw(0,0,JPG);

   Image1.Canvas.Draw(0,0,BMP);

   BMP.Free;

   RS.Free;

   JPG.Free;

end;


Načtení zvuku

uses MMSystem,......

procedure TForm1.RCLoadSound(Sender: TObject);

begin

   sndPlaySound(PChar('WAV'),snd_Resource+snd_Async);

   { "WAV" is Name from Res file }

end;


Načtení animace

procedure TForm1.RCLoadAVI(Sender: TObject);

begin

   Animate1.ResName:='AVI';

  { "AVI" is Name from Res file }

   Animate1.Reset;

   Animate1.Play(0,0,1);

end;


Načtení řetězce

procedure TForm1.RCLoadString(Sender: TObject);

var S:array[0..255] of char;

begin

   LoadString(hInstance,1,@S,255);

   {"1" is Name from Res file }

   Edit1.Text:=S;

end;


Načtení obecných dat

procedure TForm1.RCLoadBIN(Sender: TObject);

var RS:TResourceStream;

    A:array[0..255] of byte;

    StrData:LongInt;

begin

   { BINDATA is array of type - 0..255 of byte

     ( SAMPLE !!! - file DATA.BIN in sample files ) }

   RS:=TResourceStream.Create(hInstance,'BINDATA',RT_RCDATA);

   { Load data from Resources to Stream }

   { "BINDATA" is Name from Res name }

   StrData:=LongInt(RS.Memory)+LongInt(RS.Position);

   { Address of Data in Stream }

   Move(Pointer(StrData)^,A,256);

   { Move 256 bytes of Data from Stream to array A }

   RS.Free;

end;