Class TMainForm (unit Mainu)

Inherits from

TForm

Constructors



Functions

procedure AboutIconJack1Click(Sender: TObject);


procedure Clear1Click(Sender: TObject);

Enable/disable items in the Icon submenu

procedure Contents1Click(Sender: TObject);

Disable the "save as .

procedure Defaulttoallthree1Click(Sender: TObject);


procedure Delete1Click(Sender: TObject);

delete the Nth item; keep the highlight in the same location if possible

procedure Exit1Click(Sender: TObject);


procedure File1Click(Sender: TObject);


procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);

Read lots of INI file information

procedure FormResize(Sender: TObject);


procedure HowtoUseHelp1Click(Sender: TObject);


procedure Icon1Click(Sender: TObject);


procedure IconSpacing1Click(Sender: TObject);

Set rscAlignShift and AlignFactor so that all of the offsets can be expressed as a word value multiplied by the Align factor.

procedure ListBox1Click(Sender: TObject);

write INI file information

procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);


procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);


procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);

The non-displayed string for each item in the list box is an 8 character code.

procedure ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

delete the highlighted item; keep the highlight in the same location if possible

procedure Mark1Click(Sender: TObject);


procedure MarkICOfiles1Click(Sender: TObject);


procedure Options1Click(Sender: TObject);


procedure Place1Click(Sender: TObject);


procedure Quiet1Click(Sender: TObject);

IconJack should never become stuck in the "busy" state, but "never" is such an extreme word.

procedure ReadIcons1Click(Sender: TObject);

Get the menu items enabled/disabled so the accelerator keys work right

procedure SaveAsDLL1Click(Sender: TObject);

!

procedure SaveIcon1Click(Sender: TObject);


procedure SearchforHelpOn1Click(Sender: TObject);


procedure AppOnHint(Sender: TObject);

True when program is busy in a loop

Take the index of the highlighted icon and create a descriptive string for the status bar


procedure AppOnMessage(VAR Msg: TMsg; VAR Handled : Boolean);


procedure DeleteAnItem(N : Integer; Report : Boolean);

clear the list box completely

PROCEDURE DeleteIconsFrom(TheNum : Word);


FUNCTION FileTypeFromString(S: idxString) : TFileDataType;

Retrieve the filename index and icon number from the list box item string

PROCEDURE FilIcoFromString(S : idxString; VAR FNum, IcoNum : Word);

Necessary because the ampersand & is a legitimate filename character; must double the ampersand in panel's caption to get a single ampersand to show

FUNCTION NameAndNum(Ndx : Integer) : String;


PROCEDURE NotBusy;


FUNCTION ProcessFile(Filename : String) : Boolean;

If window is being sized wider, "round up" to next whole column.

PROCEDURE SetStatusText(S : String);

ICONJACX.

PROCEDURE TooBusy(Status : String);


procedure WMDropFiles(VAR Msg: TWMDropFiles);

index into file list from OpenDialog

procedure WMNcRButtonDblClk(VAR Msg: TWMNCRButtonDblClk);


Properties

Events

Variables

AboutIconJack1 : TMenuItem;


Clear1 : TMenuItem;


Contents1 : TMenuItem;


Defaulttoallthree1 : TMenuItem;


DefaulttoDLL1 : TMenuItem;


DefaulttoEXE1 : TMenuItem;


DefaulttoICO1 : TMenuItem;


Delete1 : TMenuItem;


Exit1 : TMenuItem;


File1 : TMenuItem;


Help1 : TMenuItem;


HowtoUseHelp1 : TMenuItem;


Icon1 : TMenuItem;


IconSpacing1 : TMenuItem;


ListBox1 : TListBox;


MainMenu1 : TMainMenu;


Mark1 : TMenuItem;


MarkICOfiles1 : TMenuItem;


MarkPEfiles1 : TMenuItem;


N1 : TMenuItem;


N2 : TMenuItem;


N3 : TMenuItem;


N4 : TMenuItem;


OpenDialog1 : TOpenDialog;


Options1 : TMenuItem;


Panel1 : TPanel;


Place1 : TMenuItem;


Quiet1 : TMenuItem;


ReadIcons1 : TMenuItem;


SaveAsDLL1 : TMenuItem;


SaveDialog1 : TSaveDialog;


SaveDialog2 : TSaveDialog;


SaveDialog3 : TSaveDialog;


SaveIcon1 : TMenuItem;


SearchforHelpOn1 : TMenuItem;


Busy : Boolean;

number of icon marked for moving, or -1 if no icon is marked

FileNames : TStringList;

Private declarations

Marked : Integer;

contains a list of the names of all files from which icons are currently displayed


Constructors


Functions


procedure AboutIconJack1Click(Sender: TObject);


procedure Clear1Click(Sender: TObject);

Enable/disable items in the Icon submenu


procedure Contents1Click(Sender: TObject);

Disable the "save as .ICO" menu choice if the item came from an .ICO file already


procedure Defaulttoallthree1Click(Sender: TObject);


procedure Delete1Click(Sender: TObject);

delete the Nth item; keep the highlight in the same location if possible


procedure Exit1Click(Sender: TObject);


procedure File1Click(Sender: TObject);


procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);

Read lots of INI file information


procedure FormResize(Sender: TObject);


procedure HowtoUseHelp1Click(Sender: TObject);


procedure Icon1Click(Sender: TObject);


procedure IconSpacing1Click(Sender: TObject);

Set rscAlignShift and AlignFactor so that all of the offsets can be expressed as a word value multiplied by the Align factor.


procedure ListBox1Click(Sender: TObject);

write INI file information


procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);


procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);


procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);

The non-displayed string for each item in the list box is an 8 character code. First four digits are an index into the Filenames list, second four digits are the icon number in that file


procedure ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

delete the highlighted item; keep the highlight in the same location if possible


procedure Mark1Click(Sender: TObject);


procedure MarkICOfiles1Click(Sender: TObject);


procedure Options1Click(Sender: TObject);


procedure Place1Click(Sender: TObject);


procedure Quiet1Click(Sender: TObject);

IconJack should never become stuck in the "busy" state, but "never" is such an extreme word. In the event that IconJack truly does get stuck, a right-double-click on the minimize button will unstick it.


procedure ReadIcons1Click(Sender: TObject);

Get the menu items enabled/disabled so the accelerator keys work right


procedure SaveAsDLL1Click(Sender: TObject);

!


procedure SaveIcon1Click(Sender: TObject);


procedure SearchforHelpOn1Click(Sender: TObject);


procedure AppOnHint(Sender: TObject);

True when program is busy in a loop

Take the index of the highlighted icon and create a descriptive string for the status bar


procedure AppOnMessage(VAR Msg: TMsg; VAR Handled : Boolean);


procedure DeleteAnItem(N : Integer; Report : Boolean);

clear the list box completely


PROCEDURE DeleteIconsFrom(TheNum : Word);


FUNCTION FileTypeFromString(S: idxString) : TFileDataType;

Retrieve the filename index and icon number from the list box item string


PROCEDURE FilIcoFromString(S : idxString; VAR FNum, IcoNum : Word);

Necessary because the ampersand & is a legitimate filename character; must double the ampersand in panel's caption to get a single ampersand to show


FUNCTION NameAndNum(Ndx : Integer) : String;


PROCEDURE NotBusy;


FUNCTION ProcessFile(Filename : String) : Boolean;

If window is being sized wider, "round up" to next whole column. If Narrower, round down


PROCEDURE SetStatusText(S : String);

ICONJACX.RES contains the special hand cursor used when dragging icons to new location in the display } {$R ICONJACX.RES


PROCEDURE TooBusy(Status : String);


procedure WMDropFiles(VAR Msg: TWMDropFiles);

index into file list from OpenDialog


procedure WMNcRButtonDblClk(VAR Msg: TWMNCRButtonDblClk);


Properties


Events


Variables


AboutIconJack1 : TMenuItem;


Clear1 : TMenuItem;


Contents1 : TMenuItem;


Defaulttoallthree1 : TMenuItem;


DefaulttoDLL1 : TMenuItem;


DefaulttoEXE1 : TMenuItem;


DefaulttoICO1 : TMenuItem;


Delete1 : TMenuItem;


Exit1 : TMenuItem;


File1 : TMenuItem;


Help1 : TMenuItem;


HowtoUseHelp1 : TMenuItem;


Icon1 : TMenuItem;


IconSpacing1 : TMenuItem;


ListBox1 : TListBox;


MainMenu1 : TMainMenu;


Mark1 : TMenuItem;


MarkICOfiles1 : TMenuItem;


MarkPEfiles1 : TMenuItem;


N1 : TMenuItem;


N2 : TMenuItem;


N3 : TMenuItem;


N4 : TMenuItem;


OpenDialog1 : TOpenDialog;


Options1 : TMenuItem;


Panel1 : TPanel;


Place1 : TMenuItem;


Quiet1 : TMenuItem;


ReadIcons1 : TMenuItem;


SaveAsDLL1 : TMenuItem;


SaveDialog1 : TSaveDialog;


SaveDialog2 : TSaveDialog;


SaveDialog3 : TSaveDialog;


SaveIcon1 : TMenuItem;


SearchforHelpOn1 : TMenuItem;


Busy : Boolean;

number of icon marked for moving, or -1 if no icon is marked


FileNames : TStringList;

Private declarations


Marked : Integer;

contains a list of the names of all files from which icons are currently displayed