Resources Workshop is program for create the system resources files for Borland Compilers (Delphi,C,C++ Builder,...).DLL’s and EXE’s resources viewer is integrated into application.

System resources  to be create from this objects -

1. 	Bitmap	 	- 2,16,256,16 mil. colors

2. 	Icon	- 16,256 colors

3. 	Cursor	- 2,16,256 colors

4. 	JPG	file	- 16 mil. colors, grayscale

5. 	Sound	- WAV file

6. 	Animation	- AVI file

7. 	Text	- strings to  255 chars length

8. 	Version	- file version information

9. 	Custom data.

Application compiled this object to *.RES file.


 How to use Application

 	Create new project

Open exist projectu

Save project

Assign compiled compiled file name

Compile

EXE’s and DLL’s resources viewer

Help

Language select


 Project items manipulation

Items type bitmap, icon, cursor, JPG file, sound, animation and custom data be to create in this manner :

Item is created after this icon click 	.

Select file path on this icon click 	.

Enter item name and added on this icon click  	.

For text item assign enter data into  text field. Particular items separate  ENTER key press.

For add Version info check option Include version info. Blank fields cannot added on version information. Six blanked fields used for own info items.


 Load Bitmap

procedure TForm1.RCLoadBMP(Sender: TObject);

begin

   Image1.Picture.Bitmap.

          LoadFromResourceName(hInstance,'BMP');

   { "BMP" is Name from Res file }

end;


 Load Icon

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;


 Load Cursor

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;


 Load JPG Image

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;


 Load Sound

uses MMSystem,......

procedure TForm1.RCLoadSound(Sender: TObject);

begin

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

   { "WAV" is Name from Res file }

end;


 Load Animation

procedure TForm1.RCLoadAVI(Sender: TObject);

begin

   Animate1.ResName:='AVI';

  { "AVI" is Name from Res file }

   Animate1.Reset;

   Animate1.Play(0,0,1);

end;


 Load String

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;


 Load Custom Data

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;