The dev tools is a collection of simple command-line tools and batch files that have helped me when restructuring and merging the JVCL. Hopefully someone else can benefit from them as well. The following tools are included:

MakeRC:
=======
Creates an RC file listing the BMP files in a selected folder. Each row in the generated rc file looks like this:

<NAME> BITMAP "<NAME>.BMP"

The rc file is always named new.rc and can be used to create a DCR file using Borlands resource compiler with this commandline:

brc32 new.rc -r -fonew.dcr

The only supported command-line argument is a filemask specifying what files to include. If none given, defaults to <current dir>\*.bmp. The new.rc file is always saved in the same folder as the BMP's

MakePNG:
=======
Converts BMP files to PNG files. I use this to create the PNG files used in the JVCL Help file.
Supported command-line arguments are a filemask and an outputfolder. The PNG files will have the same base name as the BMP files but the extension changed to PNG. If no filemask or output folder is supplied, defaults to <current dir>\*.bmp and <current dir>\. NOTE that the output dir MUST always exist and be terminated with a backslash!

Typical command-line:

MakePNG *.bmp PNG\ - Converts all BMP files in the current folder and saves the new PNG files in the subfolder PNG.

Uses the TPngImage components from Gustavo Daud. Go to http://pngdelphi.sourceforge.net/ to get it. I had a problem with an error ("TPngObject does not implement abstract LoadFromClipboardFormat" or similar). I just added an empty overridden implementation and then it worked. Maybe Gustavo has already fixed it when you read this.

Res2Bmp:
========
Extracts bitmaps from RES and DCR files and saves them as BMP files. I use this tool to extract images from the donated component sets that mostly don't have separate BMP images. Extracting the bitmaps makes it easier to edit the images (like adding the "J" in the bottom right corner) and also allows others to build custom DCR files if they like.

Supported command-line argument is a filemask specifying what files to scan and extract from. Defaults to <current dir>\*.dcr. The extracted bitmaps are always saved to the same folder as the DCR/RES file(s).

Uses components from Colin Wilson (Resource Utilities and Graphics Utilities). Go to http://www.wilsonc.demon.co.uk/delphi.htm to get them.

NOTE: these components require gifimage from Anders Melander. Even if I don't use it, it is in the uses clause of unitResourceGraphics.pas. Maybe it can be removed, but I doubt it...

MakeImages.bat:
===============
Simple script that extracts all images from RES and DCR files in the current folder, creates an RC script for the BMP files, creates new PNG files in a subfolder called PNG and renames the new.rc file to JVCLReg.rc

MakeDCR.bat:
============
Calls the Borland resource compiler and creates a new JVCLReg.dcr from the JVCLReg.rc

MakeTextDFM.bat:
================
Script that calls Delphi's convert utility to convert binary DFM's to text

MakeDOF:
========
Creates a DOF file from a template. Command line:
MakeDOF.exe <filemask> <template>
MakeDOF always scans subdirs and overwrites any existing files.

MakeCFG:
========
Creates a CFG file from a template. Command line:
MakeCFG.exe <filemask> <template>
MakeCFG always scans subdirs and overwrites any existing files.

Bpg2Make:
========
Creates a MAK file from the Package Group. Command line:
Bpg2Make.exe <bpgfilename>

JConvert:
=========
JConvert converts DFM files from/to binary format just like the convert.exe supplied with Delphi. The difference is that JConvert only converts DFM's that needs to be converted: if a file is already in text format and that is what you want, the file will not be changed. Another difference is the -c(heck) option: with this set, the program reports how many DFM's would have been converted but doesn't actually convert anything.

JTouch:
=======
Sets the date / time and (optional) attributes of selected files
jtouch.exe [options] <filemask> where options can be:
/H or /?       shows help screen
/D:YYYY-MM-DD  set the date (default today)
/T:HH:MM:SS    set the time (default now)
/A:[-|+]ARSH   add/remove attributes (archive,read-only,system,hidden), (no default)
/M:CHL         modify Create, cHange and/or Last access date (can be combined), (default cHange)
/S             recurse into subdirs, (default false)
/F             force touch of read-only files (temporarily changes attributes to FILE_ATTRIBUTE_NORMAL)

isu:
===
Removes unused entries from dfn files (used in translations). Operates on the current folder and all subfolders, creates no backup files and has no command line options

ErrLook:
========
A Delphi clone of Visual Studio's ErrLook utility (to look up error codes) with some enhancements. See the supplied help file for more info. NOTE: needs the HTMLHlp.pas from http://delphi-jedi.org (API Library Files)

dc:
===
Removes unsupported properties from DFMs by reading a skiplist with the properties to remove. 

Command-line:

dc.exe <options> <filemask> <filemask>

where <options> can be:
-i - replace in-line (output overwrites input). If not given, output uses input's filename but with a "txt" extension
-s - recurse into sub-folders
-f<filename> - read skiplist from <filename>, REQUIRED. Do not preceed filename with spaces!

dxgettextResstr:
================
Extracts all dxgettext compatile "_(string)" to resourcestrings. The program has an interative and an
automatic mode.

Command-line:

dxgettextResstr.exe <options> <directory>

where <options> can be:
-S - include sub directory
-Q - silent mode (non-interactive mode)
-1 - generate one single resourcestring include file.

ReadPalettes (Florent, rom):
============================
Will extract various informations about installed components etc to be put int CSV files
for pickup by the help etc.
