//Advanced Delphi Systems Code: Cmp_Sec
Unit Cmp_Sec;

{Copyright(c)2016 Advanced Delphi Systems

 Richard Maley
 Advanced Delphi Systems
 12613 Maidens Bower Drive
 Potomac, MD 20854 USA
 phone 301-840-1554
 dickmaley@advdelphisys.com

 The code herein can be used or modified by anyone.  Please retain references
 to Richard Maley at Advanced Delphi Systems.  If you make improvements to the
 code please send your improvements to dickmaley@advdelphisys.com so that the
 entire Delphi community can benefit.  All comments are welcome.
}

(*
UnitIndex Master Index Implementation Section Download Units
Description: Cmp_Sec.pas
This unit contains the following routines.

AboutBox_ads   AddTables   AppClose   AppExecute   AppHandle   AppIsRunning   AppLoad   AppSwitchTo   AppTerminate   ButtonReSizer   CD   CenterChild   CenterChildren_H   CenterComponent   CenterForm   CenterFormHorizontally   CenterFormVertically   CompDimensions   ConvertIntegerToBinaryString   ConvertPCharToString   ConvertStringToChar   ConvertStringToInteger   ConvertStringToPChar   ConvertWordToBinaryString   CopyDirectory   CopyFile   CopyFiles   CreateTableFromQuery   Date_DaysInMonth   Date_FirstDayOfLastWeek   Date_FirstDayOfNextMonth   Date_FirstDayOfNextWeek   Date_FirstDayOfWeek   Date_LastDayOfMonth   Date_Month   Date_MonthNext   Date_MonthPrior   Date_MoveNDays   Date_NextDay   Date_NextWeek   Date_PriorDay   Date_PriorWeek   DBAddQueryToTable   DBAddTables   DBCopyFieldAToB   DBCopyTable   DBCopyTableAToB   DBCopyTableToServer   DBCreateTableBorrowStr   DBCreateTableFromQuery   DBDeleteTable   DBDropTable   DBEmptyTable   DBFieldNameByNo   DBFieldNamesCommonToString   DBFieldNamesCommonToTStrings   DBFieldNamesToTStrings   DBFieldNo   DBFieldSize   DBFieldType   DBFieldTypeByNo   DBGlobalStringFieldChange   DBGlobalStringFieldChangeWhere   DBGlobalStringFieldChangeWhere2   DBInsertMatchingFields   DBKeyFieldNamesToTStrings   DBLookUpDialog   DBMedianSingle   DBMoveTable   DBNextAlphaKey   DBNextInteger   DBNFields   DBParadoxCreateNKeys   DBRecordMove   DBReNameTable   DBSchemaSame   DBSessionCreateNew   DBSqlValueQuoted   DBSubtractTable   DBTrimBlanksLeft   DBTrimBlanksRight   DBUpdateMatchingFields   DeleteCharacterInString   DeleteFiles   DeleteLineBreaks   DeleteSubStringInString   DeleteSubStringInStringNoCase   DeleteTable   DelphiCheck   DelphiChecker   DelphiIsRunning   DelTree   DialogAboutBox_ads   DialogDBLookUp   DialogInputBoxOnlyAToZ   DialogInputBoxOnlyNumbers   DialogInputBoxOnlyNumbersAbsolute  DialogLookup   DialogLookupDetail   Directory   DirectoryCopy   DirectoryHide   DirectoryMove   DirectoryUnHide   DropTable   EmptyDirectory   EmptyTable   ErrorMeaning   ExcelAddWorkSheet   ExcelClose   ExcelCloseWorkBooks   ExcelColIntToStr   ExcelColStrToInt   ExcelCopyToStringGrid   ExcelDeleteWorkSheet   ExcelEnd   ExcelFind   ExcelFindInRange   ExcelFindValue   ExcelFirstCol   ExcelFirstRow   ExcelGetActiveSheetName   ExcelGetCellFormula   ExcelGetCellValue   ExcelGetCol   ExcelGetRow   ExcelGoToLastCol   ExcelGoToLastRow   ExcelGoToLeftmostCol   ExcelGoToTopRow   ExcelHome   ExcelLastCol   ExcelLastRow   ExcelOpenFile   ExcelOpenFileComplex   ExcelPasteValuesOnly   ExcelRenameSheet   ExcelSaveAsDBase4   ExcelSaveAsText   ExcelSelectBlock   ExcelSelectBlockWhole   ExcelSelectCell   ExcelSelectRange   ExcelSelectSheetByName   ExcelSetCellFormula   ExcelSetCellValue   ExcelSetColumnWidth   ExcelSetVisible   ExcelValuesOnly   ExcelVersion   ExecutableUpdate   ExecuteExe   ExecuteExeParams   ExecuteKnownFileType   ExtractFileExtNoPeriod   ExtractFileNameNoExt   FieldNo   FieldSize   FieldType   FieldTypeFromDataSet   File_CopyDirectory   File_DeleteDirectory   File_DelTree   File_DirOperations_Datail   File_DirOperations_Detail   File_GetCreationDate   File_GetLastAccessDate   File_GetLastModifiedDate   File_GetLongFileName   File_GetShortFileName   File_KillDirectory   File_MoveDirectory   File_RemoveDirectory   File_ReNameDirectory   FileDate   FileDatesSame   FileExt   FileMove   FileName   FileNextNumberName   FileNotTextSize   FilePath   FilesInDirDetail   FormCenterHorizontal   FormCenterVertical   FormDimensions   GetCenterFormLeft   GetCenterFormTop   GridDeleteRow   GridMoveRowToBottom   ImageFadeAway   ImageFadeIn   ImageFadeInAndOut   ImageFadeInAndOutDetail   ImageFlipHoriz   ImageFlipVert   ImageFlutterHoriz   ImageFlutterHorizDetail   ImageFlutterVert   ImageFlutterVertDetail   ImagePulsate   ImageRotateDetail   IniGetIntegerValue   IniGetStringValue   IniSetIntegerValue   IniSetStringValue   IniUpdateFromTStringList   IniUpdateTStringList   InputBoxFilterDetail   InputBoxOnlyAToZ   InputBoxOnlyNumbers   InputBoxOnlyNumbersAbsolute   Internet_EmptyCacheDirectories   Internet_GetURLsFromCachePages   InternetCopyURLToFile   InternetGetBaseURL   InternetIsUrl   IsBlockColSide   IsBlockRowSide   IsDate   IsDelphiRunning   IsDir   IsDirEmpty   IsEmptyDataSource   IsEmptyTable   IsEmptyTable2   IsEmptyTQuery   IsEmptyTTable   IsField   IsFieldKeyed   IsFile   IsRecord   IsSchemaSame   IsStructureSame   IsTable   IsTableKeyed   KeyPressOnlyAToZ   KeyPressOnlyLettersAbsolute   KeyPressOnlyNumbers   KeyPressOnlyNumbersAbsolute   KeySend   KillDirectory   Len   LettersOnlyAbsolute   LookupDialog   Lower   Max   MD   Min   Min_I   MoveDirectory   MoveTable   Msg   MsgDlg   NFields   NMHttp_GetURLToFile   NMHttp_IsUrl   NMHttp_PostURLToFile   NumbersOnly   NumbersOnlyAbsolute   NumVal   PanelBevel   Pi_Real   ProgressScreenCursor   Proper   PurgeInternetCache   Rand   RandImage   RandomInteger   RD   ReNameDir   ReNameDirectory   ReplaceCharacterInString   ReplaceCharInString   ReplaceSubStringInString   ReplaceSubStringInStringNoCase   ReSizeTuner   ScaleForm   SendKey   SetChildWidths   SetFileDate   String_Grep_Contents   String_Grep_Detail   String_GrepAllToStringList   String_LineFeed_Format   String_LineFeed_Insert   String_Replace   String_Replace_NoCase   String_Reverse   StringPad   SubStr   SubtractTable   TableAdd   TableCreateFromQuery   TableMove   TableSubtract   TimeDeltaInMinutes   TimeDeltaInMSeconds   TimeDeltaInSeconds   Today   ToolBarButtonVisibleOne   TrimBlanksFromEnds   TrimBlanksLeft   TrimBlanksRight   TypeField   TypeFieldFromDataSet   Upper   UserIDFromWindows   VersionInformation   WinExecute   WinExecute32  

*)
Interface

Uses
  SysUtils, StdCtrls, Dialogs, Forms, ExtCtrls,
  Messages, WinProcs, WinTypes, Buttons, Classes, ads_comp,
  DB, DBTables, Controls, Grids, UtilKeys, IniFiles, Graphics,
  ShellAPI, FileCtrl,  
  Ads_Const,
  wininet,
  NMHTTP
 {$IFNDEF WIN32}, ToolHelp{$ENDIF};

{!~ ABOUTBOX_ADS
This procedure presents an About Box.
TITLE The title is set by the AboutTitle parameter.

INFORMATION
The information displayed in the about box is pulled directly
from the executable.  The programmer can configure this information
in Delphi by doing the following:
(1) in Delphi go to Project|Options|VersionInfo and make sure
that the check box for Include Version information in project
is checked.
(2)Auto-increment build number should also be checked so
that each time a build-all is run the version number is
automatically updated.  This makes life simple and in automatic.
(3)Edit/Add items in the section at the bottom of this page
where key and value items are listed.  Whatever you put in
this section is what will appear in the about box.
(2) Save the project and recompile
(3) The newly edited information will appear in the about box.

IMAGE
The Application Icon is presented as the image. To change the
image do the following:
(1) in Delphi go to Project|Options|Application|Load Icon
and select an Icon for the application
(2) Save the project and
recompile
(3) The newly selected Icon will appear in the about box.

SIZE
The About box size can be pased as the parameters AboutWidth
and AboutHeight.  If however you wish to have the procedure
size the About Box automatically set these two parameters to
zero.  }
Procedure AboutBox_ads(
  AboutTitle  : String;
  AboutWidth  : Integer;
  AboutHeight : Integer
  );

{!~ Add source table to destination table}
Function AddTables(
           const
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestinationTable: string): Boolean;

{!~ Closes a Windows Application:
  ExecutableName is usually the name of the executable
  WinClassName can be found by inspecting the messaging
    using WinSight that ships with Delphi}
procedure AppClose(ExecutableName,WinClassName : String);

{!~ Executes a Windows Application:
  ExecutableName is usually the name of the executable
  WinClassName can be found by inspecting the messaging
    using WinSight that ships with Delphi

  If the application is already running this function
  brings it to the front}
procedure AppExecute(
  ExecutableName : String;
  WinClassName   : String);

{!~ Returns the handle of a Windows Application}
function AppHandle(WinClassName : String): THandle;

{!~ Returns True if Application is running, False otherwise}
Function AppIsRunning(AppName: String): Boolean;

{!~ a subroutine of AppExecute}
Function AppLoad(const ExecutableName: string; show : word) : THandle;

{!~ a subroutine of AppExecute}
function AppSwitchTo(WinClassName   : String): boolean;

{!~ A SubRoutine of AppClose}
Function AppTerminate(AppName: String): Boolean;

{!~ Handles button alignment}
procedure ButtonReSizer(
  ButtonBase      : TPanel;
  ButtonSlider    : TPanel;
  ButtonWidth     : Integer;
  ButtonSpacer    : Integer;
  ButtonsReSize   : Boolean;
  ButtonsAlignment: TAlignment;
  Beveled         : Boolean);

{!~ Changes Directory}
Function CD(DirName: String): Boolean;

{!~ Centers a child component on a TPanel}
procedure CenterChild(Panel : TPanel);

{!~ Horizontally Centers all children of a TPanel }
procedure CenterChildren_H(Panel : TPanel);

{!~ Centers a Control Inside its Parent}
Procedure CenterComponent(ParentControl, ChildControl: TControl);

{!~ Centers A Form}
Procedure CenterForm(f : TForm);

{!~ Centers A Form Horizontally}
Procedure CenterFormHorizontally(f : TForm);

{!~ Centers A Form Vertically}
Procedure CenterFormVertically(f : TForm);

{!~ Sets The Dimensions Of A Component}
procedure CompDimensions(
            Comp: TControl;
            TopDim,
            LeftDim,
            HeightDim,
            WidthDim: Integer);

{!~ Converts an integer value to its binary equivalent
as a ShortString }
Function ConvertIntegerToBinaryString(Int, Length : Integer) : ShortString;

{!~ Converts A PChar To String}
Function ConvertPCharToString(PCharValue: PChar): String;

{!~ Converts A String To Char}
Function ConvertStringToChar(InputString: String; CharPosition: Integer): Char;

{!~ Converts A String To Integer, If An Error Occurrs The Function Returns -0}
Function ConvertStringToInteger(StringValue: String): Integer;

{!~ Converts A String To A PChar, If An Error Occurrs The Function Returns 0}
Function ConvertStringToPChar(StringValue: String): PChar;

{!~ Converts a word value to its binary equivalent
as a ShortString }
Function ConvertWordToBinaryString(InputWord : Word; Length : Integer) : ShortString;

{!~ Copies a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.  If the destination directory already exists the process
fails and returns false.}
Function CopyDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;

{!~ Copies A File}
Function CopyFile(FromFile,ToFile:String): Boolean;

{!~ Copy Files}
Function CopyFiles(FromPath,ToPath,FileMask: String): Boolean;

{!~ Creates a new table from a Query.
 Complex joins can be output to a new table.}
Function CreateTableFromQuery(
            Query: TQuery;
            NewTableName,
            TableDatabaseName: String): Boolean;

{!~ Returns The Number Of Days In The Month}
Function Date_DaysInMonth(DateValue: TDateTime): Integer;

{!~ Returns The First Day Of The Month}
Function Date_FirstDayOfNextMonth(DateValue: TDateTime): TDateTime;

{Returns The First Day Of the Week, i.e., Sunday, As A TDateTime.  If an
error occurs then zero is returned.}
Function Date_FirstDayOfWeek(DateValue: TDateTime): TDateTime;

{Returns The First Day Of Last Week, i.e., Sunday, As A TDateTime.  If an
error occurs then zero is returned.}
Function Date_FirstDayOfLastWeek(DateValue: TDateTime): TDateTime;

{Returns The First Day Of next Week, i.e., Sunday, As A TDateTime.  If an
error occurs then zero is returned.}
Function Date_FirstDayOfNextWeek(DateValue: TDateTime): TDateTime;

{!~ Returns The Last Day Of The Month}
Function Date_LastDayOfMonth(DateValue: TDateTime): TDateTime;

{!~ Returns The Month}
Function Date_Month(DateValue: TDateTime): Integer;

{!~ Returns The Next Month}
Function Date_MonthNext(DateValue: TDateTime): Integer;

{!~ Returns The Prior Month}
Function Date_MonthPrior(DateValue: TDateTime): Integer;

{!~ Returns A Date N Days Different Than
The Input Date}
Function Date_MoveNDays(
  DateValue    : TDateTime;
  DateMovement : Integer): TDateTime;

{!~ Returns The Next Day As A TDateTime}
Function Date_NextDay(DateValue: TDateTime): TDateTime;

{!~ Returns The Next Week As A TDateTime}
Function Date_NextWeek(DateValue: TDateTime): TDateTime;

{!~ Returns The Prior Day As A TDateTime}
Function Date_PriorDay(DateValue: TDateTime): TDateTime;

{!~ Returns The Prior Week As A TDateTime}
Function Date_PriorWeek(DateValue: TDateTime): TDateTime;

{!~ Add source query to destination table}
Procedure DBAddQueryToTable(
      DataSet : TQuery;
      const
      DestDatabaseName,
      DestinationTable: string);

{!~ Add source table to destination table}
Function DBAddTables(
      const
      SourceDatabaseName,
      SourceTable,
      DestDatabaseName,
      DestinationTable: string): Boolean;

{!~ Copies Field A To Field B.}
function DBCopyFieldAToB(
            DatabaseName,
            TableName,
            SourceField,
            DestField: String): Boolean;

{!~ Copies SourceTable To DestTable.
If DestTable exists it is deleted}
Function DBCopyTable(
            SourceDatabaseName,
            SourceTable,
            DestDatabaseName,
            DestTable: String): Boolean;

{!~ Copies Table A To Table B.  If Table B exists it
is emptied}
Function DBCopyTableAToB(
            SourceDatabaseName,
            SourceTable,
            DestDatabaseName,
            DestTable: String): Boolean;

{!~ Copies a table from the source to the destination.
If the destination table exists the function will not
throw an error, the existing table will be replaced with the new
table.}
Function DBCopyTableToServer(
  SourceDatabaseName   : String;
  SourceTableName      : String;
  DestDatabaseName     : String;
  DestTableName        : String): Boolean;

{!~ Creates an empty table with indices by borrowing the structure
of a source table. Source and destination can be remote or local
tables.  If the destination table exists the function will not
throw an error, the existing table will be replaced with the new
table.}
Function DBCreateTableBorrowStr(
  SourceDatabaseName   : String;
  SourceTableName      : String;
  DestDatabaseName     : String;
  DestTableName        : String): Boolean;

{!~ Creates a new table from a Query.
 Complex joins can be output to a new table.}
Function DBCreateTableFromQuery(
            Query: TQuery;
            NewTableName,
            TableDatabaseName: String): Boolean;

{!~ Deletes A Table}
Function DBDeleteTable(const DatabaseName, TableName : string):Boolean;

{!~ Drops A Table}
Function DBDropTable(const DatabaseName, TableName : string):Boolean;

{!~ Empties a table of all records}
Function DBEmptyTable(
           const DatabaseName,
           TableName : string): Boolean;

{!~ Returns the field Name as a String.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason '' is returned.}
Function DBFieldNameByNo(
  DatabaseName  : String;
  TableName     : String;
  FieldNo       : Integer): String;

{!~ Copies Table Field Names to a TStrings object.
Returns the true if successful.  If there
is an error, the DatabaseName doesn't exist, the table doesn't
exist or some other reason False is returned.  }
Function DBFieldNamesToTStrings(
  DatabaseName : String;
  TableName    : String;
  Strings      : TStrings): Boolean;

{!~ Returns Field Names shared by 2 tables as a string.
Fields are separated by commas with no trailing comma.}
Function DBFieldNamesCommonToString(
  DatabaseName1 : String;
  TableName1    : String;
  DatabaseName2 : String;
  TableName2    : String): String;

{!~ Copies Field Names shared by 2 tables to a TStrings object.
Returns true if successful.  If there
is an error, the DatabaseName doesn't exist, the table doesn't
exist or some other reason False is returned.  }
Function DBFieldNamesCommonToTStrings(
  DatabaseName1 : String;
  TableName1    : String;
  DatabaseName2 : String;
  TableName2    : String;
  Strings       : TStrings): Boolean;

{!~ Returns the field Number as an integer.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason -1 is returned.}
Function DBFieldNo(DatabaseName, TableName, FieldName: String): Integer;

{!~ Returns the database field Size as an integer.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason 0 is returned.}
Function DBFieldSize(DatabaseName, TableName, FieldName: String): Integer;

{!~ Returns the database field type as a string.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason a null string is returned.}
Function DBFieldType(DatabaseName, TableName, FieldName: String): String;

{!~ Returns the database field type as a string.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason a null string is returned.}
Function DBFieldTypeByNo(DatabaseName, TableName: String; FieldNo: Integer): String;

{!~ Replace all the values in a field that match a
condition value with a new value}
procedure DBGlobalStringFieldChange(
  const DatabaseName,
  TableName,
  FieldName,
  NewValue : string);

{!~ Replace all the values in a field with a new value}
procedure DBGlobalStringFieldChangeWhere(
  const DatabaseName,
  TableName,
  FieldName,
  CurrentValue,
  NewValue : string);

{!~ Replace values in a field (NewValueField) with NewValue
based on a where condition in CurrentValueField with a value
of CurrentValue}
procedure DBGlobalStringFieldChangeWhere2(
  const DatabaseName,
  TableName,
  NewValueField,
  NewValue,
  CurrentValueField,
  CurrentValue: string);

{!~ Inserts matching fields in a destination table.
Source Table records are deleted if the record was inserted properly.
Records unsuccessfully inserted are retained and the problems recorded
in the ErrorField.}
Function DBInsertMatchingFields(
           const
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestinationTable,
           ErrorField: string): Boolean;

{!~ Copies Table Key Field Names to a TStrings object.
Returns the true if successful.  If there
is an error, the DatabaseName doesn't exist, the table doesn't
exist or some other reason False is returned.  }
Function DBKeyFieldNamesToTStrings(
  DatabaseName : String;
  TableName    : String;
  Strings      : TStrings): Boolean;

{!~ Presents a lookup Dialog to the user.  The selected
value is returned if the user presses OK and the Default
value is returned if the user presses Cancel unless the
TStringList is nil in which case a blank string is returned}
Function DBLookUpDialog(
  Const DataBaseName  : String;
  Const TableName     : String;
  Const FieldName     : String;
  Const SessionName   : String;
  Const DefaultValue  : String;
  const DialogCaption : string;
  const InputPrompt   : string;
  const DialogWidth   : Integer
  ): String;

{!~ Returns the median value for a column in a table
as type single}
Function DBMedianSingle(
      const DatabaseName,
      TableName,
      FieldName,
      WhereString
      : string): Single;

{!~ Moves SourceTable From SourceDatabaseName
 To DestDatabasename.  If a table exists
 with the same name at DestDatabaseName it
 is overwritten.}
Function DBMoveTable(
            SourceTable,
            SourceDatabaseName,
            DestDatabaseName: String): Boolean;

{!~ Returns the number of fields in a table}
Function DBNFields(DatabaseName, TableName: String): Integer;

{!~ Returns the next key value when the table keys are
numbers as strings, e.g., '   12' key would return
'   13'}
Function DBNextAlphaKey(DatabaseName, TableName, FieldName: String):String;

{!~ Returns the next key value when the table keys are
integers, e.g., 12 key would return 13}
Function DBNextInteger(
  DatabaseName,
  TableName,
  FieldName: String):LongInt;

{!~ ReKeys a Paradox Table to the first N fields}
Function DBParadoxCreateNKeys(
  DatabaseName : String;
  TableName    : String;
  NKeys        : Integer): Boolean;

{!~ ReNames a table}
Function DBReNameTable(
  DatabaseName,
  TableNameOld,
  TableNameNew: String): Boolean;

{!~ Applies BatchMode Types As Appropriate To
Source and Destination Tables}
Function DBRecordMove(
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestTable: String;
           BMode: TBatchMode): Boolean;

{!~ Returns True If The Tables Have Identical Structures, False Otherwise.
If 1 Local Table is involved then Indices are ignored!!!!!!}
Function DBSchemaSame(const
           DatabaseName1,
           Table1,
           DatabaseName2,
           Table2: string): Boolean;

{$IFDEF WIN32}
{!~ Returns a new TSession Object.  Nil is returned if something
goes wrong.}
Function DBSessionCreateNew: TSession;
{$ENDIF}

{!~ Returns a value for use in a sql where clause with the
appropriate Quoting of the value based on its datatype.  If
an error occurs the original string value is returned unchanged}
Function DBSqlValueQuoted(
           const
           DatabaseName,
           TableName,
           FieldName,
           FieldValue: string): String;

{!~ Subtracts the records in the source
 table from the destination table}
Function DBSubtractTable(
           const
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestinationTable: string): Boolean;

{!~ Trims blank spaces from the Left of the string}
Function DBTrimBlanksLeft(
  DatabaseName : String;
  TableName    : String;
  FieldName    : String): Boolean;

{!~ Trims blank spaces from the right of the string}
Function DBTrimBlanksRight(
  DatabaseName : String;
  TableName    : String;
  FieldName    : String): Boolean;

{!~ Updates matching fields in a destination table.
Source Table records are deleted if the record was updated properly.
Records unsuccessfully updated are retained and the problems recorded
in the ErrorField.}
Function DBUpdateMatchingFields(
           const
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestinationTable,
           ErrorField: string;
           MsgPanel: TPanel;
           FilePath: String): Boolean;

{!~ Deletes all occurances of a Character in a String}
Function DeleteCharacterInString(InputCharacter,InputString: String): String;

{!~ Deletes Files}
Function DeleteFiles(FilePath,FileMask: String): Boolean;

{!~ Deletes all LineFeed Carriage Returns}
Function DeleteLineBreaks(const S: string): string;

{!~ Deletes all occurances of specified substring in a String}
Function DeleteSubStringInString(substring,InputString: String): String;

{Deletes all occurances of specified substring in a String and is case
insensitive.}
Function DeleteSubStringInStringNoCase(substring,InputString: String): String;

{!~ Deletes A Table}
Function DeleteTable(const DatabaseName, TableName : string):Boolean;

{!~ Checks whether Delphi is Running and
issues a message if the user doesn't have
the right to use the component}
procedure DelphiCheck(CanRunOutSide: Boolean);

{!~ Checks whether Delphi is Running and
issues a message if the user doesn't have
the right to use the component}
procedure DelphiChecker(
  CanRunOutSide   : Boolean;
  ComponentName   : String;
  OwnerName       : String;
  PurchaseMessage : String;
  ActivateDate    : String);

{!~ Returns True if delphi is running, False otherwise}
Function DelphiIsRunning: Boolean;

{!~ Completely deletes a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function DelTree(DirectoryName: String): Boolean;

{!~ DIALOGABOUTBOX_ADS
This procedure presents an About Box.
TITLE The title is set by the AboutTitle parameter.

INFORMATION
The information displayed in the about box is pulled directly
from the executable.  The programmer can configure this information
in Delphi by doing the following:
(1) in Delphi go to Project|Options|VersionInfo and make sure
that the check box for Include Version information in project
is checked.
(2)Auto-increment build number should also be checked so
that each time a build-all is run the version number is
automatically updated.  This makes life simple and in automatic.
(3)Edit/Add items in the section at the bottom of this page
where key and value items are listed.  Whatever you put in
this section is what will appear in the about box.
(2) Save the project and recompile
(3) The newly edited information will appear in the about box.

IMAGE
The Application Icon is presented as the image. To change the
image do the following:
(1) in Delphi go to Project|Options|Application|Load Icon
and select an Icon for the application
(2) Save the project and
recompile
(3) The newly selected Icon will appear in the about box.

SIZE
The About box size can be pased as the parameters AboutWidth
and AboutHeight.  If however you wish to have the procedure
size the About Box automatically set these two parameters to
zero.  }
Procedure DialogAboutBox_ads(
  AboutTitle  : String;
  AboutWidth  : Integer;
  AboutHeight : Integer
  );

{!~ Presents a lookup Dialog to the user.  The selected
value is returned if the user presses OK and the Default
value is returned if the user presses Cancel unless the
TStringList is nil in which case a blank string is returned}
Function DialogDBLookUp(
  Const DataBaseName  : String;
  Const TableName     : String;
  Const FieldName     : String;
  Const SessionName   : String;
  Const DefaultValue  : String;
  const DialogCaption : string;
  const InputPrompt   : string;
  const DialogWidth   : Integer
  ): String;

{!~ Presents an input dialog that accepts a-z and A-Z only.
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function DialogInputBoxOnlyAToZ(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Presents an input dialog that accepts 0-9,-,+,".".
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function DialogInputBoxOnlyNumbers(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Presents an input dialog that accepts 0-9.
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function DialogInputBoxOnlyNumbersAbsolute(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Presents a lookup Dialog to the user.  The selected
value is returned if the user presses OK and the Default
value is returned if the user presses Cancel unless the
TStringList is nil in which case a blank string is returned}
Function DialogLookup(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string;
  const Values        : TStringList
  ): string;


{!~ Returns Current Working Directory}
Function Directory: String;

{!~ Copies a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.  If the destination directory already exists the process
fails and returns false.}
Function DirectoryCopy(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;

{!~ Moves a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.}
Function DirectoryMove(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;

{!~ Drops A Table}
Function DropTable(const DatabaseName, TableName : string):Boolean;

{!~ Empties a directory of normal files.}
Function EmptyDirectory(Directory : String): Boolean;

{!~ Empties a table of all records}
Function EmptyTable(
           const DatabaseName,
           TableName : string): Boolean;

{!~ Returns the meaning of the given result code.  Error codes are for
Delphi 1.0.}
Function ErrorMeaning (ResultCode: Integer): string;

{Triggers an Executable to update itself.
Don't worry about the handle parameter,
just pass HANDLE which is the applications
handle. This can be run in the Application's
Main Form Create method.}
Function ExecutableUpdate(
  ExecutablePath : String;
  ExecutableName : String;
  InstallPath    : String;
  Handle         : THandle): Boolean;

{!~Executes an executable with no parameters}
Function ExecuteExe(FileName : String): Boolean;

{!~Executes an executable with parameters}
Function ExecuteExeParams(
  FileName    : String;
  ParamString : String;
  DefaultDir  : String): Boolean;

{!~ Loads a known file type using the appropriate
executable, e.g., WinWord for *.Doc, Paradox for *.db.}
Function ExecuteKnownFileType(
  Handle   : THandle;
  FileName : String): Boolean;

{!~ Returns The File Extension Without The Path, Name Or Period}
Function ExtractFileExtNoPeriod(FileString: String): String;

{!~ Returns The File Name Without The Path, Extension Or Period}
Function ExtractFileNameNoExt(FileString: String): String;

{!~ Returns the field Number as an integer.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason 0 is returned.}
Function FieldNo(DatabaseName, TableName, FieldName: String): Integer;

{!~ Returns the database field Size as an integer.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason 0 is returned.}
Function FieldSize(DatabaseName, TableName, FieldName: String): Integer;

{!~ Returns the database field type as a string.  If there
is an error, the table doesn't exist, the field doesn't
exist or some other reason a null string is returned.}
Function FieldType(DatabaseName, TableName, FieldName: String): String;

{!~ Returns the database field type as a string.  If there
is an error a null string is returned.}
Function FieldTypeFromDataSet(DataSet: TDataSet; FieldName: String): String;

{!~ Returns The Files Date Time Stamp as TDateTime}
Function FileDate(FileString: String): TDateTime;

{!~ Returns True is the filoe dates are the same, False otherwise.}
Function FileDatesSame(FileString1,FileString2: String): Boolean;

{!~ Returns The File Extension Without The Path, Name Or Period}
Function FileExt(FileString: String): String;

{!~ Returns the next available file name number as a string
in the format 00000001}
Function FileNextNumberName(
  Directory   : String;
  Mask        : String
  ): String;

{!~ Hides a directory.  Returns true if
successful and false otherwise}
Function DirectoryHide(Const FileString : String): Boolean;

{!~ Copies a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.  If the destination directory already exists the process
fails and returns false.}
Function File_CopyDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;

{!~ Completely deletes a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function File_DeleteDirectory(DirectoryName: String): Boolean;

{!~ Completely deletes a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function File_DelTree(DirectoryName: String): Boolean;

{!~ Moves a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.}
Function File_DirOperations_Detail(
  Action            : String;  //COPY, DELETE, MOVE, RENAME
  RenameOnCollision : Boolean; //Renames if directory exists
  NoConfirmation    : Boolean; //Responds "Yes to All" to any dialogs
  Silent            : Boolean; //No progress dialog is shown
  ShowProgress      : Boolean; //displays progress dialog but no file names
  FromDir           : String;  //From directory
  ToDir             : String   //To directory
  ): Boolean;

{!~ Returns the Creation Date for a file.}
Function File_GetCreationDate(FileName : String): TDateTime;

{!~ Returns the Date a file was last accessed.}
Function File_GetLastAccessDate(FileName : String): TDateTime;

{!~ Returns the Date a file was last modified.}
Function File_GetLastModifiedDate(FileName : String): TDateTime;

{!~ Returns the Long File Name of a file.}
Function File_GetLongFileName(FileName : String): String;

{!~ Returns the Short File Name of a file.}
Function File_GetShortFileName(FileName : String): String;

{!~ Completely deletes a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function File_KillDirectory(DirectoryName: String): Boolean;

{!~ Moves a directory regardless of whether the directory is filled or has subdirectories.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise.}
Function File_MoveDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;

{!~ Completely deletes a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function File_RemoveDirectory(DirectoryName: String): Boolean;

{!~ ReNames a directory regardless of whether the directory
is filled or has subdirectories.  No confirmation is requested so be careful.
This is a powerful utility.  If the operation is successful then True is
returned, False otherwise}
Function File_ReNameDirectory(
  OldDirectoryName: String;
  NewDirectoryName: String): Boolean;

{!~ Moves a File From Source To Destination}
Function FileMove(SourceFile, DestinationFile: String): Boolean;

{!~ Returns The File Name Without The Path, Extension Or Period}
Function FileName(FileString: String): String;

{!~ Returns The File Path Without The Name, Extension ,Period or trailing Backslash}
Function FilePath(FileString: String): String;

{!~ Returns The File size in bytes.  Does not work on a text file.}
Function FileNotTextSize(FileString: String): LongInt;

{!~ Populates a TStrings FileList with the files meeting selected
file attribute criteria in a directory.  The mask argument is a
standard DOS file argument like '*.*.  The InclDotFiles argument
allows the user to exclude the system files "." and ".." by
setting the value to False.  If the Intersection argument is set
to true then the result will reflect only those files that satisfy
all attribute criteria.  If Intersection is set to false then the
result will be a union of files that meet any of the criteria.}
Function FilesInDirDetail(
  FileList    : TStrings;
  Directory   : String;
  Mask        : String;
  Intersection: Boolean;
  IsReadOnly  : Boolean;
  IsHidden    : Boolean;
  IsSystem    : Boolean;
  IsVolumeID  : Boolean;
  IsDirectory : Boolean;
  IsArchive   : Boolean;
  IsNormal    : Boolean;
  InclDotFiles: Boolean): Boolean;

{!~ UnHides a directory.  Returns true if
successful and false otherwise}
Function DirectoryUnHide(Const FileString : String): Boolean;

{!~ Returns The Left Property To Center A Form}
Function FormCenterHorizontal(FormWidth: Integer): Integer;

{!~ Returns The Top Property To Center A Form}
Function FormCenterVertical(FormHeight: Integer): Integer;

{!~ Sets The Dimensions Of A Form}
procedure FormDimensions(
            Form: TForm;
            TopDim,
            LeftDim,
            HeightDim,
            WidthDim: Integer);

{!~ Returns the form's left value that will center the form horizontally}
Function  GetCenterFormLeft(FormWidth : Integer): Integer;

{!~ Returns the form's Top value that will center the form vertically}
Function  GetCenterFormTop(FormHeight : Integer): Integer;

{!~ Deletes a row in a TStringGrid}
procedure GridDeleteRow(RowNumber : Integer; Grid : TStringGrid);

{!~ Moves a row in a TStringGrid to the bottom of the grid}
procedure GridMoveRowToBottom(RowNumber : Integer; Grid : TStringGrid);

{!~ Causes an image to fade away.
Example code:
procedure TForm1.Button7Click(Sender: TObject);
begin
  Timer1.OnTimer := Button7Click;
  ImageFadeAway(
    Image1,
    Timer1,
    False);
end;}
Procedure ImageFadeAway(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean);

{!~ Causes an image to fade in.
Example code:
procedure TForm1.Button6Click(Sender: TObject);
begin
  Timer1.OnTimer := Button6Click;
  ImageFadeIn(
    Image1,
    Timer1,
    False);
end;}
Procedure ImageFadeIn(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean);

{!~ Causes an image to fade in and out.
Setting cycles to 0 makes it continuous.
Example code:
procedure TForm1.Button10Click(Sender: TObject);
begin
  Timer1.OnTimer := Button10Click;
  ImageFadeInAndOut(
    Image1,
    Timer1,
    False,
    0);
end;}
Procedure ImageFadeInAndOut(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);

{!~ Causes an image to flip horizontally.
Setting cycles to 0 makes it continuous.
Example code:
procedure TForm1.Button4Click(Sender: TObject);
begin
  Timer1.OnTimer := Button4Click;
  ImageFlipHoriz(
    Image1,
    Timer1,
    False,
    3,
    3);
end;}
Procedure ImageFlipHoriz(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinLeft  : Integer;
  Cycles         : Integer);

{!~ Causes an image to flip vertically.
Setting cycles to 0 makes it continuous.
Example code:
procedure TForm1.Button5Click(Sender: TObject);
begin
  Timer1.OnTimer := Button5Click;
  ImageFlipVert(
    Image1,
    Timer1,
    False,
    3,
    3);
end;}

Procedure ImageFlipVert(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinTop   : Integer;
  Cycles         : Integer);

{!~ Causes an image to flutter horizontally.
Setting cycles to 0 makes it continuous.
Example code:
procedure TForm1.Button9Click(Sender: TObject);
begin
  Timer1.OnTimer := Button9Click;
  ImageFlutterHoriz(
    Image1,
    Timer1,
    False,
    0);
end;}
Procedure ImageFlutterHoriz(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);

{!~ Causes an image to flutter vertically.
Example code:
procedure TForm1.Button8Click(Sender: TObject);
begin
  Timer1.OnTimer := Button8Click;
  ImageFlutterVert(
    Image1,
    Timer1,
    False,
    0);
end;}
Procedure ImageFlutterVert(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);

{!~ Causes an image to pulsate in and out.
Example code:
procedure TForm1.Button11Click(Sender: TObject);
begin
  Timer1.OnTimer := Button11Click;
  ImagePulsate(
    Image1,
    Timer1,
    False,
    0);
end;}
Procedure ImagePulsate(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);

{!~ Returns the ini value for a variable (IntegerName)
in the ini section (IniSection) of the ini file (TheIniFile).}
Function IniGetIntegerValue(
  TheIniFile            : String;
  IniSection            : String;
  IntegerName           : String;
  DefaultInteger        : Integer): Integer;

{!~ Returns the ini value for a variable (StringName)
in the ini section (IniSection) of the ini file (TheIniFile).}
Function IniGetStringValue(
  TheIniFile            : String;
  IniSection            : String;
  StringName            : String;
  DefaultString         : String): String;

{!~ Sets a variable (IntegerName) in the ini section (IniSection)
of the ini file (TheIniFile) with the value (IntegerValue).
If an exception is thrown the function returns False,
True otherwise.}
Function IniSetIntegerValue(
  TheIniFile            : String;
  IniSection            : String;
  IntegerName           : String;
  IntegerValue          : Integer): Boolean;

{!~ Sets a variable (StringName) in the ini section (IniSection)
of the ini file (TheIniFile) with the value (StringValue).
If an exception is thrown the function returns False,
True otherwise.}
Function IniSetStringValue(
  TheIniFile            : String;
  IniSection            : String;
  StringName            : String;
  StringValue           : String): Boolean;

{!~ Updates an ini file from a TStringList}
Procedure IniUpdateFromTStringList(
  TheIniFile            : String;
  IniSection            : String;
  StringListName        : String;
  CountField            : String;
  StringList            : TStringList);

{!~ Updates a TStringList from an ini file}
Procedure IniUpdateTStringList(
  TheIniFile            : String;
  IniSection            : String;
  StringListName        : String;
  CountField            : String;
  StringList            : TStringList);

{!~ Presents an input dialog that accepts a-z and A-Z only.
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function InputBoxOnlyAToZ(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Presents an input dialog that accepts 0-9,-,+,".".
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function InputBoxOnlyNumbers(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Presents an input dialog that accepts 0-9.
All other keys are thrown away except for the backspace key.
The result is returned as a string}
Function InputBoxOnlyNumbersAbsolute(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;

{!~ Empties the Temporary Internet Files directory}
procedure Internet_EmptyCacheDirectories(
  TemporaryInternetDirectory : String);

{!~ The purpose of this procedure is to extract URL information from
web pages stored in the Temporary Internet Files Directory.

The URL's gathered by this procedure are stored in a new HTML page given
by the OutputFile argument.

This procedure needs a working directory designated
by the WorkingDirectoryName argument.  This working directory should
be for the exclusive use of this procedure because all files in the
directory are deleted at the beginning of the process.

The location of the Temporary Internet Files Directory is provided by
the TemporaryInternetDirectory argument.

A number of boolean options are provided in this procedure:
  SortByLabels           : Sort the Results by the Unit Description UnitIndex Master Index
Procedure AboutBox_ads(
  AboutTitle  : String;
  AboutWidth  : Integer;
  AboutHeight : Integer
  );
Begin
  ads_comp.AboutBox_ads(AboutTitle,AboutWidth,AboutHeight);
End;

//
Unit Description UnitIndex Master Index
Function AddTables(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result := Ads_DB.AddTables(SourceDatabaseName,SourceTable,DestDatabaseName,DestinationTable);
End;

//
Unit Description UnitIndex Master Index
procedure AppClose(ExecutableName,WinClassName : String);
Begin
  ads_file.
    AppClose(ExecutableName,WinClassName);
End;

//
Unit Description UnitIndex Master Index
procedure AppExecute(
  ExecutableName : String;
  WinClassName   : String);
Begin
  ads_file.
    AppExecute(
      ExecutableName,
      WinClassName);
End;

//
Unit Description UnitIndex Master Index
function AppHandle(WinClassName : String): THandle;
Begin
  Result :=
    ads_file.
      AppHandle(WinClassName);
End;

//
Unit Description UnitIndex Master Index
Function AppIsRunning(AppName: String): Boolean;
Begin
  Result :=
    ads_file.
      AppIsRunning(AppName);
End;

//
Unit Description UnitIndex Master Index
Function AppLoad(const ExecutableName: string; show : word) : THandle;
Begin
  Result := ads_file.AppLoad(ExecutableName, show);
End;

//
Unit Description UnitIndex Master Index
function AppSwitchTo(WinClassName   : String): boolean;
Begin
  Result := ads_file.AppSwitchTo(WinClassName);
End;

//
Unit Description UnitIndex Master Index
Function AppTerminate(AppName: String): Boolean;
Begin
  Result := ads_file.AppTerminate(AppName);
End;

//
Unit Description UnitIndex Master Index
procedure ButtonReSizer(
  ButtonBase      : TPanel;
  ButtonSlider    : TPanel;
  ButtonWidth     : Integer;
  ButtonSpacer    : Integer;
  ButtonsReSize   : Boolean;
  ButtonsAlignment: TAlignment;
  Beveled         : Boolean);
Begin
  ads_comp.
    ButtonReSizer(
      ButtonBase,
      ButtonSlider,
      ButtonWidth,
      ButtonSpacer,
      ButtonsReSize,
      ButtonsAlignment,
      Beveled);
End;

//
Unit Description UnitIndex Master Index
Function CD(DirName: String): Boolean;
Begin
  Result :=
    ads_file.
      CD(DirName);
End;

//
Unit Description UnitIndex Master Index
procedure CenterChild(Panel : TPanel);
Begin
  ads_comp.
    CenterChild(Panel);
End;

//
Unit Description UnitIndex Master Index
procedure CenterChildren_H(Panel : TPanel);
Begin
  ads_comp.
    CenterChildren_H(Panel);
End;

//
Unit Description UnitIndex Master Index
Procedure CenterComponent(ParentControl, ChildControl: TControl);
Begin
  ads_comp.
    CenterComponent(ParentControl, ChildControl);
End;

//
Unit Description UnitIndex Master Index
Procedure CenterForm(f : TForm);
Begin
  ads_comp.
    CenterForm(f);
End;

//
Unit Description UnitIndex Master Index
Procedure CenterFormHorizontally(f : TForm);
Begin
  ads_comp.
    CenterFormHorizontally(f);
End;

//
Unit Description UnitIndex Master Index
Procedure CenterFormVertically(f : TForm);
Begin
  ads_comp.
    CenterFormVertically(f);
End;

//
Unit Description UnitIndex Master Index
procedure CompDimensions(
  Comp: TControl;
  TopDim,
  LeftDim,
  HeightDim,
  WidthDim: Integer);
Begin
  ads_comp.
    CompDimensions(
      Comp,
      TopDim,
      LeftDim,
      HeightDim,
      WidthDim);
End;

//
Unit Description UnitIndex Master Index
Function ConvertIntegerToBinaryString(Int, Length : Integer) : ShortString;
Begin
  Result :=
    Ads_Conv.
      ConvertIntegerToBinaryString(Int, Length);
End;

//
Unit Description UnitIndex Master Index
Function ConvertPCharToString(PCharValue: PChar): String;
Begin
  Result :=
    Ads_Conv.
      ConvertPCharToString(PCharValue);
End;

//
Unit Description UnitIndex Master Index
Function ConvertStringToChar(InputString: String; CharPosition: Integer): Char;
Begin
  Result :=
    Ads_Conv.
      ConvertStringToChar(InputString, CharPosition);
End;

//
Unit Description UnitIndex Master Index
Function ConvertStringToInteger(StringValue: String): Integer;
Begin
  Result :=
    Ads_Conv.
      ConvertStringToInteger(StringValue);
End;

//
Unit Description UnitIndex Master Index
Function ConvertStringToPChar(StringValue: String): PChar;
Begin
  Result :=
    Ads_Conv.
      ConvertStringToPChar(StringValue);
End;

//
Unit Description UnitIndex Master Index
Function ConvertWordToBinaryString(InputWord : Word; Length : Integer) : ShortString;
Begin
  Result :=
    Ads_Conv.
      ConvertWordToBinaryString(InputWord, Length);
End;

//
Unit Description UnitIndex Master Index
Function CopyDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result := ads_file.CopyDirectory(SourceDirectoryName,DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function CopyFile(FromFile,ToFile:String): Boolean;
Begin
  Result :=
    ads_file.
      CopyFile(FromFile,ToFile);
End;

//
Unit Description UnitIndex Master Index
Function CopyFiles(FromPath,ToPath,FileMask: String): Boolean;
Begin
  Result :=
    ads_file.
      CopyFiles(FromPath,ToPath,FileMask);
End;

//
Unit Description UnitIndex Master Index
Function CreateTableFromQuery(
  Query: TQuery;
  NewTableName,
  TableDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      CreateTableFromQuery(
        Query,
        NewTableName,
        TableDatabaseName);
End;

//
Unit Description UnitIndex Master Index
Procedure DBAddQueryToTable(
  DataSet : TQuery;
  const
  DestDatabaseName,
  DestinationTable: string);
Begin
  Ads_DB.DBAddQueryToTable(DataSet,DestDatabaseName,DestinationTable);
End;

//
Unit Description UnitIndex Master Index
Function DBAddTables(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result := Ads_DB.DBAddTables(SourceDatabaseName,SourceTable,DestDatabaseName,DestinationTable);
End;

//
Unit Description UnitIndex Master Index
function DBCopyFieldAToB(
  DatabaseName,
  TableName,
  SourceField,
  DestField: String): Boolean;
Begin
  Result := Ads_DB.DBCopyFieldAToB(DatabaseName,TableName,SourceField,DestField);
End;

//
Unit Description UnitIndex Master Index
Function DBCopyTable(
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestTable: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBCopyTable(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestTable);
End;

//
Unit Description UnitIndex Master Index
Function DBCopyTableAToB(
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestTable: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBCopyTableAToB(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestTable);
End;

//
Unit Description UnitIndex Master Index
Function DBCopyTableToServer(
  SourceDatabaseName   : String;
  SourceTableName      : String;
  DestDatabaseName     : String;
  DestTableName        : String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBCopyTableToServer(
        SourceDatabaseName,
        SourceTableName,
        DestDatabaseName,
        DestTableName);
End;

//
Unit Description UnitIndex Master Index
Function DBCreateTableBorrowStr(
  SourceDatabaseName   : String;
  SourceTableName      : String;
  DestDatabaseName     : String;
  DestTableName        : String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBCreateTableBorrowStr(
        SourceDatabaseName,
        SourceTableName,
        DestDatabaseName,
        DestTableName);
End;

//
Unit Description UnitIndex Master Index
Function DBCreateTableFromQuery(
  Query: TQuery;
  NewTableName,
  TableDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBCreateTableFromQuery(
        Query,
        NewTableName,
        TableDatabaseName);
End;

//
Unit Description UnitIndex Master Index
Function DBDeleteTable(const DatabaseName, TableName : string):Boolean;
Begin
  Result := Ads_DB.DBDeleteTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function DBDropTable(const DatabaseName, TableName : string):Boolean;
Begin
  Result := Ads_DB.DBDropTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function DBEmptyTable(
  const DatabaseName,
  TableName : string): Boolean;
Begin
  Result := Ads_DB.DBEmptyTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldNameByNo(
  DatabaseName  : String;
  TableName     : String;
  FieldNo       : Integer): String;
Begin
  Result :=
    Ads_DB.
      DBFieldNameByNo(
        DatabaseName,
        TableName,
        FieldNo);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldNamesCommonToString(
  DatabaseName1 : String;
  TableName1    : String;
  DatabaseName2 : String;
  TableName2    : String): String;
Begin
  Result :=
    Ads_DB.
      DBFieldNamesCommonToString(
        DatabaseName1,
        TableName1,
        DatabaseName2,
        TableName2);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldNamesCommonToTStrings(
  DatabaseName1 : String;
  TableName1    : String;
  DatabaseName2 : String;
  TableName2    : String;
  Strings       : TStrings): Boolean;
Begin
  Result :=
    Ads_DB.
      DBFieldNamesCommonToTStrings(
        DatabaseName1,
        TableName1,
        DatabaseName2,
        TableName2,
        Strings);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldNamesToTStrings(
  DatabaseName : String;
  TableName    : String;
  Strings      : TStrings): Boolean;
Begin
  Result :=
    Ads_DB.
      DBFieldNamesToTStrings(
        DatabaseName,
        TableName,
        Strings);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldNo(DatabaseName, TableName, FieldName: String): Integer;
Begin
  Result :=
    Ads_DB.
      DBFieldNo(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldSize(DatabaseName, TableName, FieldName: String): Integer;
Begin
  Result :=
    Ads_DB.
      DBFieldSize(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldType(DatabaseName, TableName, FieldName: String): String;
Begin
  Result :=
    Ads_DB.
      DBFieldType(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBFieldTypeByNo(DatabaseName, TableName: String; FieldNo: Integer): String;
Begin
  Result := Ads_DB.DBFieldTypeByNo(DatabaseName, TableName, FieldNo);
End;

//
Unit Description UnitIndex Master Index
procedure DBGlobalStringFieldChange(
  const DatabaseName,
  TableName,
  FieldName,
  NewValue : string);
Begin
  Ads_DB.DBGlobalStringFieldChange(DatabaseName,TableName,FieldName,NewValue);
End;

//
Unit Description UnitIndex Master Index
procedure DBGlobalStringFieldChangeWhere(
  const DatabaseName,
  TableName,
  FieldName,
  CurrentValue,
  NewValue : string);
Begin
  Ads_DB.DBGlobalStringFieldChangeWhere(DatabaseName,TableName,FieldName,CurrentValue,NewValue);
End;

//
Unit Description UnitIndex Master Index
procedure DBGlobalStringFieldChangeWhere2(
  const DatabaseName,
  TableName,
  NewValueField,
  NewValue,
  CurrentValueField,
  CurrentValue: string);
Begin
  Ads_DB.DBGlobalStringFieldChangeWhere2(DatabaseName,TableName,NewValueField,NewValue,CurrentValueField,CurrentValue);
End;

//
Unit Description UnitIndex Master Index
Function DBInsertMatchingFields(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable,
  ErrorField: string): Boolean;
Begin
  Result := Ads_DB.DBInsertMatchingFields(SourceDatabaseName,SourceTable,DestDatabaseName,DestinationTable,ErrorField);
End;

//
Unit Description UnitIndex Master Index
Function DBKeyFieldNamesToTStrings(
  DatabaseName : String;
  TableName    : String;
  Strings      : TStrings): Boolean;
Begin
  Result :=
    Ads_DB.
      DBKeyFieldNamesToTStrings(
        DatabaseName,
        TableName,
        Strings);
End;

//
Unit Description UnitIndex Master Index
Function DBLookUpDialog(
  Const DataBaseName  : String;
  Const TableName     : String;
  Const FieldName     : String;
  Const SessionName   : String;
  Const DefaultValue  : String;
  const DialogCaption : string;
  const InputPrompt   : string;
  const DialogWidth   : Integer
  ): String;
Begin
  Result :=
    Ads_DB.
      DBLookUpDialog(
        DataBaseName,
        TableName,
        FieldName,
        SessionName,
        DefaultValue,
        DialogCaption,
        InputPrompt,
        DialogWidth
        );
End;

//
Unit Description UnitIndex Master Index
Function DBMedianSingle(
  const DatabaseName,
  TableName,
  FieldName,
  WhereString
  : string): Single;
Begin
  Result :=
    Ads_DB.
      DBMedianSingle(
        DatabaseName,
        TableName,
        FieldName,
        WhereString
        );
End;

//
Unit Description UnitIndex Master Index
Function DBMoveTable(
  SourceTable,
  SourceDatabaseName,
  DestDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBMoveTable(
        SourceTable,
        SourceDatabaseName,
        DestDatabaseName);
End;

//
Unit Description UnitIndex Master Index
Function DBNFields(DatabaseName, TableName: String): Integer;
Begin
  Result :=
    Ads_DB.
      DBNFields(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function DBNextAlphaKey(DatabaseName, TableName, FieldName: String):String;
Begin
  Result :=
    Ads_DB.
      DBNextAlphaKey(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBNextInteger(
  DatabaseName,
  TableName,
  FieldName: String):LongInt;
Begin
  Result :=
    Ads_DB.
      DBNextInteger(
        DatabaseName,
        TableName,
        FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBParadoxCreateNKeys(
  DatabaseName : String;
  TableName    : String;
  NKeys        : Integer): Boolean;
Begin
  Result :=
    Ads_DB.
      DBParadoxCreateNKeys(
        DatabaseName,
        TableName,
        NKeys);
End;

//
Unit Description UnitIndex Master Index
Function DBReNameTable(
  DatabaseName,
  TableNameOld,
  TableNameNew: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBReNameTable(
        DatabaseName,
        TableNameOld,
        TableNameNew);
End;

//
Unit Description UnitIndex Master Index
Function DBRecordMove(
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestTable: String;
  BMode: TBatchMode): Boolean;
Begin
  Result :=
    Ads_DB.
      DBRecordMove(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestTable,
        BMode);
End;

//
Unit Description UnitIndex Master Index
Function DBSchemaSame(const
  DatabaseName1,
  Table1,
  DatabaseName2,
  Table2: string): Boolean;
Begin
  Result :=
    Ads_DB.
      DBSchemaSame(
        DatabaseName1,
        Table1,
        DatabaseName2,
        Table2);
End;

{$IFDEF WIN32}
//
Unit Description UnitIndex Master Index
Function DBSessionCreateNew: TSession;
{$ENDIF WIN32}
Begin
  Result :=
    Ads_DB.
      {$IFDEF WIN32}
        DBSessionCreateNew;
      {$ENDIF WIN32}
End;

//
Unit Description UnitIndex Master Index
Function DBSqlValueQuoted(
  const
  DatabaseName,
  TableName,
  FieldName,
  FieldValue: string): String;
Begin
  Result :=
    Ads_DB.
      DBSqlValueQuoted(
        DatabaseName,
        TableName,
        FieldName,
        FieldValue);
End;

//
Unit Description UnitIndex Master Index
Function DBSubtractTable(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result :=
    Ads_DB.
      DBSubtractTable(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestinationTable);
End;

//
Unit Description UnitIndex Master Index
Function DBTrimBlanksLeft(
  DatabaseName : String;
  TableName    : String;
  FieldName    : String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBTrimBlanksLeft(
        DatabaseName,
        TableName,
        FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBTrimBlanksRight(
  DatabaseName : String;
  TableName    : String;
  FieldName    : String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBTrimBlanksRight(
        DatabaseName,
        TableName,
        FieldName);
End;

//
Unit Description UnitIndex Master Index
Function DBUpdateMatchingFields(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable,
  ErrorField: string;
  MsgPanel: TPanel;
  FilePath: String): Boolean;
Begin
  Result :=
    Ads_DB.
      DBUpdateMatchingFields(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestinationTable,
        ErrorField,
        MsgPanel,
        FilePath);
End;

//
Unit Description UnitIndex Master Index
Function Date_DaysInMonth(DateValue: TDateTime): Integer;
Begin
  Result :=
    ads_date.
      Date_DaysInMonth(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_FirstDayOfLastWeek(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_FirstDayOfLastWeek(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_FirstDayOfNextMonth(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_FirstDayOfNextMonth(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_FirstDayOfNextWeek(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_FirstDayOfNextWeek(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_FirstDayOfWeek(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_FirstDayOfWeek(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_LastDayOfMonth(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_LastDayOfMonth(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_Month(DateValue: TDateTime): Integer;
Begin
  Result :=
    ads_date.
      Date_Month(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_MonthNext(DateValue: TDateTime): Integer;
Begin
  Result :=
    ads_date.
      Date_MonthNext(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_MonthPrior(DateValue: TDateTime): Integer;
Begin
  Result :=
    ads_date.
      Date_MonthPrior(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_MoveNDays(
  DateValue    : TDateTime;
  DateMovement : Integer): TDateTime;
Begin
  Result :=
    ads_date.
      Date_MoveNDays(
        DateValue,
        DateMovement);
End;

//
Unit Description UnitIndex Master Index
Function Date_NextDay(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_NextDay(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_PriorDay(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_PriorDay(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function Date_PriorWeek(DateValue: TDateTime): TDateTime;
Begin
  Result :=
    ads_date.
      Date_PriorWeek(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function DelTree(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      DelTree(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function DeleteCharacterInString(InputCharacter,InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      DeleteCharacterInString(InputCharacter,InputString);
End;

//
Unit Description UnitIndex Master Index
Function DeleteFiles(FilePath,FileMask: String): Boolean;
Begin
  Result :=
    ads_file.
      DeleteFiles(FilePath,FileMask);
End;

//
Unit Description UnitIndex Master Index
function DeleteLineBreaks(const S: string): string;
Begin
  Result :=
    Ads_Strg.
      DeleteLineBreaks(S);
End;

//
Unit Description UnitIndex Master Index
Function DeleteSubStringInString(substring,InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      DeleteSubStringInString(substring,InputString);
End;

//
Unit Description UnitIndex Master Index
Function DeleteSubStringInStringNoCase(substring,InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      DeleteSubStringInStringNoCase(substring,InputString);
End;

//
Unit Description UnitIndex Master Index
Function DeleteTable(const DatabaseName, TableName : string):Boolean;
Begin
  Result :=
    Ads_DB.
      DeleteTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
procedure DelphiCheck(CanRunOutSide: Boolean);
Begin
  Ads_Misc.
    DelphiCheck(CanRunOutSide);
End;

//
Unit Description UnitIndex Master Index
procedure DelphiChecker(
  CanRunOutSide   : Boolean;
  ComponentName   : String;
  OwnerName       : String;
  PurchaseMessage : String;
  ActivateDate    : String);
Begin
  Ads_Misc.
    DelphiChecker(
      CanRunOutSide,
      ComponentName,
      OwnerName,
      PurchaseMessage,
      ActivateDate);
End;

//
Unit Description UnitIndex Master Index
Function DelphiIsRunning: Boolean;
Begin
  Result := Ads_Misc.DelphiIsRunning;
End;

//
Unit Description UnitIndex Master Index
Procedure DialogAboutBox_ads(
  AboutTitle  : String;
  AboutWidth  : Integer;
  AboutHeight : Integer
  );
Begin
  ads_comp.
    DialogAboutBox_ads(
      AboutTitle,
      AboutWidth,
      AboutHeight
      );
End;

//
Unit Description UnitIndex Master Index
Function DialogDBLookUp(
  Const DataBaseName  : String;
  Const TableName     : String;
  Const FieldName     : String;
  Const SessionName   : String;
  Const DefaultValue  : String;
  const DialogCaption : string;
  const InputPrompt   : string;
  const DialogWidth   : Integer
  ): String;
Begin
  Result :=
    Ads_DB.
      DialogDBLookUp(
        DataBaseName,
        TableName,
        FieldName,
        SessionName,
        DefaultValue,
        DialogCaption,
        InputPrompt,
        DialogWidth
        );
End;

//
Unit Description UnitIndex Master Index
Function DialogInputBoxOnlyAToZ(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      DialogInputBoxOnlyAToZ(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function DialogInputBoxOnlyNumbers(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      DialogInputBoxOnlyNumbers(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function DialogInputBoxOnlyNumbersAbsolute(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      DialogInputBoxOnlyNumbersAbsolute(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function DialogLookup(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string;
  const Values        : TStringList
  ): string;
Begin
  Result :=
    Ads_DB.
      DialogLookup(
        DialogCaption,
        InputPrompt,
        DefaultValue,
        Values
        );
End;

//
Unit Description UnitIndex Master Index
Function DialogLookupDetail(
  Const DialogCaption   : string;
  Const InputPrompt     : string;
  Const DefaultValue    : string;
  Const Values          : TStringList;
  Const ButtonSpacing   : Integer;
  Const SpacerHeight    : Integer;
  Const TopBevelWidth   : Integer;
  Const PromptHeight    : Integer;
  Const FormHeight      : Integer;
  Const FormWidth       : Integer;
  Const Hint_OK         : string;
  Const Hint_Cancel     : string;
  Const Hint_ListBox    : string;
  Const ListSorted      : Boolean;
  Const AllowDuplicates : Boolean
  ): string;
Begin
  Result :=
    Ads_DB.
      DialogLookupDetail(
        DialogCaption,
        InputPrompt,
        DefaultValue,
        Values,
        ButtonSpacing,
        SpacerHeight,
        TopBevelWidth,
        PromptHeight,
        FormHeight,
        FormWidth,
        Hint_OK,
        Hint_Cancel,
        Hint_ListBox,
        ListSorted,
        AllowDuplicates
        );
End;

//
Unit Description UnitIndex Master Index
Function Directory: String;
Begin
  Result := ads_file.Directory;
End;

//
Unit Description UnitIndex Master Index
Function DirectoryCopy(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      DirectoryCopy(
        SourceDirectoryName,
        DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function DirectoryHide(Const FileString : String): Boolean;
Begin
  Result :=
    ads_file.
      DirectoryHide(FileString);
End;

//
Unit Description UnitIndex Master Index
Function DirectoryMove(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      DirectoryMove(
        SourceDirectoryName,
        DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function DirectoryUnHide(Const FileString : String): Boolean;
Begin
  Result :=
    ads_file.
      DirectoryUnHide(FileString);
End;

//
Unit Description UnitIndex Master Index
Function DropTable(const DatabaseName, TableName : string):Boolean;
Begin
  Result :=
    Ads_DB.
      DropTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function EmptyDirectory(Directory : String): Boolean;
Begin
  Result :=
    ads_file.
      EmptyDirectory(Directory);
End;

//
Unit Description UnitIndex Master Index
Function EmptyTable(
  const DatabaseName,
  TableName : string): Boolean;
Begin
  Result :=
    Ads_DB.
      EmptyTable(
        DatabaseName,
        TableName);
End;

//
Unit Description UnitIndex Master Index
function ErrorMeaning (ResultCode: Integer): string;
Begin
  Result :=
    Ads_DB.
      ErrorMeaning (ResultCode);
End;

//
Unit Description UnitIndex Master Index
Function ExcelAddWorkSheet(Excel : Variant): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelAddWorkSheet(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelClose(Excel : Variant; SaveAll: Boolean): Boolean;
Begin
  Result := ads_excel.ExcelClose(Excel, SaveAll);
End;

//
Unit Description UnitIndex Master Index
Function ExcelCloseWorkBooks(Excel : Variant; SaveAll: Boolean): Boolean;
Begin
  Result := ads_excel.ExcelCloseWorkBooks(Excel, SaveAll);
End;

//
Unit Description UnitIndex Master Index
Function ExcelColIntToStr(ColNum: Integer): ShortString;
Begin
  Result :=
    ads_excel.
      ExcelColIntToStr(ColNum);
End;

//
Unit Description UnitIndex Master Index
Function ExcelColStrToInt(ColStr: ShortString): Integer;
Begin
  Result :=
    ads_excel.
      ExcelColStrToInt(ColStr);
End;

//
Unit Description UnitIndex Master Index
Function ExcelCopyToStringGrid(
  Excel                 : Variant;
  ExcelFirstRow         : Integer;
  ExcelFirstCol         : Integer;
  ExcelLastRow          : Integer;
  ExcelLastCol          : Integer;
  StringGrid            : TStringGrid;
  StringGridFirstRow    : Integer;
  StringGridFirstCol    : Integer;
  {Make the StringGrid the same size as the input range}
  SizeStringGridToFit   : Boolean;
  {cells outside input range in StringGrid are cleared}
  ClearStringGridFirst  : Boolean
  ): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelCopyToStringGrid(
        Excel,
        ExcelFirstRow,
        ExcelFirstCol,
        ExcelLastRow,
        ExcelLastCol,
        StringGrid,
        StringGridFirstRow,
        StringGridFirstCol,
        {Make the StringGrid the same size as the input range}
        SizeStringGridToFit,
        {cells outside input range in StringGrid are cleared}
        ClearStringGridFirst
        );
End;

//
Unit Description UnitIndex Master Index
Function ExcelDeleteWorkSheet(
  Excel     : Variant;
  SheetName : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelDeleteWorkSheet(
        Excel,
        SheetName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelEnd(Excel : Variant): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelEnd(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelFind(
  Excel       : Variant;
  FindString  : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelFind(
        Excel,
        FindString);
End;

//
Unit Description UnitIndex Master Index
Function ExcelFindInRange(
  Excel       : Variant;
  FindString  : ShortString;
  TopRow      : Integer;
  LeftCol     : Integer;
  LastRow     : Integer;
  LastCol     : Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelFindInRange(
        Excel,
        FindString,
        TopRow,
        LeftCol,
        LastRow,
        LastCol);
End;

//
Unit Description UnitIndex Master Index
Function ExcelFindValue(
  Excel       : Variant;
  FindString  : ShortString;
  TopRow      : Integer;
  LeftCol     : Integer;
  LastRow     : Integer;
  LastCol     : Integer;
  SearchRight : Boolean;
  SearchDown  : Boolean;
  RowsFirst   : Boolean
  ): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelFindValue(
        Excel,
        FindString,
        TopRow,
        LeftCol,
        LastRow,
        LastCol,
        SearchRight,
        SearchDown,
        RowsFirst
        );
End;

//
Unit Description UnitIndex Master Index
Function ExcelFirstCol(Excel : Variant): Integer;
Begin
  Result := ads_excel.ExcelFirstCol(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelFirstRow(Excel : Variant): Integer;
Begin
  Result :=
    ads_excel.
      ExcelFirstRow(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGetActiveSheetName(Excel : Variant): ShortString;
Begin
  Result :=
    ads_excel.
      ExcelGetActiveSheetName(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGetCellFormula(
  Excel         : Variant;
  RowNum, ColNum: Integer): ShortString;
Begin
  Result :=
    ads_excel.
      ExcelGetCellFormula(
        Excel,
        RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGetCellValue(Excel : Variant; RowNum, ColNum: Integer): ShortString;
Begin
  Result := ads_excel.ExcelGetCellValue(Excel, RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGetCol(Excel : Variant): Integer;
Begin
  Result := ads_excel.ExcelGetCol(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGetRow(Excel : Variant): Integer;
Begin
  Result := ads_excel.ExcelGetRow(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGoToLastCol(Excel : Variant): Boolean;
Begin
  Result := ads_excel.ExcelGoToLastCol(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGoToLastRow(Excel : Variant): Boolean;
Begin
  Result := ads_excel.ExcelGoToLastRow(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGoToLeftmostCol(Excel : Variant): Boolean;
Begin
  Result := ads_excel.ExcelGoToLeftmostCol(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelGoToTopRow(Excel : Variant): Boolean;
Begin
  Result := ads_excel.ExcelGoToTopRow(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelHome(Excel : Variant): Boolean;
Begin
  Result := ads_excel.ExcelHome(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelLastCol(Excel : Variant): Integer;
Begin
  Result := ads_excel.ExcelLastCol(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelLastRow(Excel : Variant): Integer;
Begin
  Result :=
    ads_excel.
      ExcelLastRow(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelOpenFile(Excel : Variant; FileName : String): Boolean;
Begin
  Result := ads_excel.ExcelOpenFile(Excel, FileName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelOpenFileComplex(
  Excel        : Variant;
  FileName     : String;
  UpdateLinks  : Integer;
  ReadOnly     : Boolean;
  Format       : Integer;
  Password     : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelOpenFileComplex(
        Excel,
        FileName,
        UpdateLinks,
        ReadOnly,
        Format,
        Password);
End;

//
Unit Description UnitIndex Master Index
Function ExcelPasteValuesOnly(
  Excel         : Variant;
  ExcelFirstRow : Integer;
  ExcelFirstCol : Integer;
  ExcelLastRow  : Integer;
  ExcelLastCol  : Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelPasteValuesOnly(
        Excel,
        ExcelFirstRow,
        ExcelFirstCol,
        ExcelLastRow,
        ExcelLastCol);
End;

//
Unit Description UnitIndex Master Index
Function ExcelRenameSheet(
  Excel         : Variant;
  OldName       : ShortString;
  NewName       : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelRenameSheet(
        Excel,
        OldName,
        NewName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSaveAsDBase4(
  Excel         : Variant;
  ExcelFirstRow : Integer;
  ExcelFirstCol : Integer;
  ExcelLastRow  : Integer;
  ExcelLastCol  : Integer;
  OutFilePath   : ShortString;
  OutFileName   : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSaveAsDBase4(
        Excel,
        ExcelFirstRow,
        ExcelFirstCol,
        ExcelLastRow,
        ExcelLastCol,
        OutFilePath,
        OutFileName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSaveAsText(
  Excel         : Variant;
  ExcelFirstRow : Integer;
  ExcelFirstCol : Integer;
  ExcelLastRow  : Integer;
  ExcelLastCol  : Integer;
  OutFilePath   : ShortString;
  OutFileName   : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSaveAsText(
        Excel,
        ExcelFirstRow,
        ExcelFirstCol,
        ExcelLastRow,
        ExcelLastCol,
        OutFilePath,
        OutFileName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSelectBlock(
  Excel    : Variant;
  FirstRow : Integer;
  FirstCol : Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSelectBlock(
        Excel,
        FirstRow,
        FirstCol);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSelectBlockWhole(Excel: Variant): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSelectBlockWhole(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSelectCell(Excel : Variant; RowNum, ColNum: Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSelectCell(Excel, RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSelectRange(
  Excel    : Variant;
  FirstRow : Integer;
  FirstCol : Integer;
  LastRow  : Integer;
  LastCol  : Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSelectRange(
        Excel,
        FirstRow,
        FirstCol,
        LastRow,
        LastCol);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSelectSheetByName(
  Excel    : Variant;
  SheetName: String): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSelectSheetByName(
        Excel,
        SheetName);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSetCellFormula(
  Excel         : Variant;
  FormulaString : ShortString;
  RowNum, ColNum: Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSetCellFormula(
        Excel,
        FormulaString,
        RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSetCellValue(
  Excel : Variant;
  RowNum, ColNum: Integer;
  Value : ShortString): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSetCellValue(
        Excel,
        RowNum, ColNum,
        Value);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSetColumnWidth(Excel : Variant; ColNum, ColumnWidth: Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSetColumnWidth(Excel, ColNum, ColumnWidth);
End;

//
Unit Description UnitIndex Master Index
Function ExcelSetVisible(Excel : Variant;IsVisible: Boolean): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelSetVisible(Excel,IsVisible);
End;

//
Unit Description UnitIndex Master Index
Function ExcelValuesOnly(
  Excel         : Variant;
  ExcelFirstRow : Integer;
  ExcelFirstCol : Integer;
  ExcelLastRow  : Integer;
  ExcelLastCol  : Integer): Boolean;
Begin
  Result :=
    ads_excel.
      ExcelValuesOnly(
        Excel,
        ExcelFirstRow,
        ExcelFirstCol,
        ExcelLastRow,
        ExcelLastCol);
End;

//
Unit Description UnitIndex Master Index
Function ExcelVersion(Excel: Variant): ShortString;
Begin
  Result :=
    ads_excel.
      ExcelVersion(Excel);
End;

//
Unit Description UnitIndex Master Index
Function ExecutableUpdate(
  ExecutablePath : String;
  ExecutableName : String;
  InstallPath    : String;
  Handle         : THandle): Boolean;
Begin
  Result :=
    ads_file.
      ExecutableUpdate(
        ExecutablePath,
        ExecutableName,
        InstallPath,
        Handle);
End;

//
Unit Description UnitIndex Master Index
Function ExecuteExe(FileName : String): Boolean;
Begin
  Result :=
    ads_file.
      ExecuteExe(FileName);
End;

//
Unit Description UnitIndex Master Index
Function ExecuteExeParams(
  FileName    : String;
  ParamString : String;
  DefaultDir  : String): Boolean;
Begin
  Result :=
    ads_file.
      ExecuteExeParams(
        FileName,
        ParamString,
        DefaultDir);
End;

//
Unit Description UnitIndex Master Index
Function ExecuteKnownFileType(
  Handle   : THandle;
  FileName : String): Boolean;
Begin
  Result :=
    ads_file.
      ExecuteKnownFileType(
        Handle,
        FileName);
End;

//
Unit Description UnitIndex Master Index
Function ExtractFileExtNoPeriod(FileString: String): String;
Begin
  Result :=
    ads_file.
      ExtractFileExtNoPeriod(FileString);
End;

//
Unit Description UnitIndex Master Index
Function ExtractFileNameNoExt(FileString: String): String;
Begin
  Result :=
    ads_file.
      ExtractFileNameNoExt(FileString);
End;

//
Unit Description UnitIndex Master Index
Function FieldNo(DatabaseName, TableName, FieldName: String): Integer;
Begin
  Result :=
    Ads_DB.
      FieldNo(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function FieldSize(DatabaseName, TableName, FieldName: String): Integer;
Begin
  Result :=
    Ads_DB.
      FieldSize(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function FieldType(DatabaseName, TableName, FieldName: String): String;
Begin
  Result :=
    Ads_DB.
      FieldType(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function FieldTypeFromDataSet(DataSet: TDataSet; FieldName: String): String;
Begin
  Result :=
    Ads_DB.
      FieldTypeFromDataSet(DataSet, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function FileDate(FileString: String): TDateTime;
Begin
  Result := ads_file.FileDate(FileString);
End;

//
Unit Description UnitIndex Master Index
Function FileDatesSame(FileString1,FileString2: String): Boolean;
Begin
  Result :=
    ads_file.
      FileDatesSame(FileString1,FileString2);
End;

//
Unit Description UnitIndex Master Index
Function FileExt(FileString: String): String;
Begin
  Result :=
    ads_file.
      FileExt(FileString);
End;

{Copies A File}
  Function FileFilterChar(
  FromFile   : String;
  ToFile     : String;
  OldChar    : Char;
  NewString  : ShortString): Boolean;
Begin
  Result :=
    ads_file.
      {Copies A File}
      FileFilterChar(
        FromFile,
        ToFile,
        OldChar,
        NewString);
End;

//
Unit Description UnitIndex Master Index
Function FileMove(SourceFile, DestinationFile: String): Boolean;
Begin
  Result :=
    ads_file.
      FileMove(SourceFile, DestinationFile);
End;

//
Unit Description UnitIndex Master Index
Function FileName(FileString: String): String;
Begin
  Result :=
    ads_file.
      FileName(FileString);
End;

//
Unit Description UnitIndex Master Index
Function FileNextNumberName(
  Directory   : String;
  Mask        : String
  ): String;
Begin
  Result := ads_file.FileNextNumberName(Directory,Mask);
End;

//
Unit Description UnitIndex Master Index
Function FileNotTextSize(FileString: String): LongInt;
Begin
  Result :=
    ads_file.
      FileNotTextSize(FileString);
End;

//
Unit Description UnitIndex Master Index
Function FilePath(FileString: String): String;
Begin
  Result :=
    ads_file.
      FilePath(FileString);
End;

//
Unit Description UnitIndex Master Index
Function File_CopyDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_CopyDirectory(
        SourceDirectoryName,
        DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_DelTree(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_DelTree(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_DeleteDirectory(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_DeleteDirectory(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_DirOperations_Datail(
  Action            : String;  //COPY, DELETE, MOVE, RENAME
  RenameOnCollision : Boolean; //Renames if directory exists
  NoConfirmation    : Boolean; //Responds "Yes to All" to any dialogs
  Silent            : Boolean; //No progress dialog is shown
  ShowProgress      : Boolean; //displays progress dialog but no file names
  FromDir           : String;  //From directory
  ToDir             : String   //To directory
  ): Boolean;
Begin
  Result :=
    ads_file.
      File_DirOperations_Detail(
        Action,
        RenameOnCollision,
        NoConfirmation,
        Silent,
        ShowProgress,
        FromDir,
        ToDir
        );
End;

//
Unit Description UnitIndex Master Index
Function File_GetCreationDate(FileName : String): TDateTime;
Begin
  Result :=
    ads_file.
      File_GetCreationDate(FileName);
End;

//
Unit Description UnitIndex Master Index
Function File_GetLastAccessDate(FileName : String): TDateTime;
Begin
  Result :=
    ads_file.
      File_GetLastAccessDate(FileName);
End;

//
Unit Description UnitIndex Master Index
Function File_GetLastModifiedDate(FileName : String): TDateTime;
Begin
  Result := ads_file.File_GetLastModifiedDate(FileName);
End;

//
Unit Description UnitIndex Master Index
Function File_GetLongFileName(FileName : String): String;
Begin
  Result :=
    ads_file.
      File_GetLongFileName(FileName);
End;

//
Unit Description UnitIndex Master Index
Function File_GetShortFileName(FileName : String): String;
Begin
  Result :=
    ads_file.
      File_GetShortFileName(FileName);
End;

//
Unit Description UnitIndex Master Index
Function File_KillDirectory(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_KillDirectory(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_MoveDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_MoveDirectory(
        SourceDirectoryName,
        DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_ReNameDirectory(
  OldDirectoryName: String;
  NewDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_ReNameDirectory(
        OldDirectoryName,
        NewDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function File_RemoveDirectory(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      File_RemoveDirectory(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function FilesInDirDetail(
  FileList    : TStrings;
  Directory   : String;
  Mask        : String;
  Intersection: Boolean;
  IsReadOnly  : Boolean;
  IsHidden    : Boolean;
  IsSystem    : Boolean;
  IsVolumeID  : Boolean;
  IsDirectory : Boolean;
  IsArchive   : Boolean;
  IsNormal    : Boolean;
  InclDotFiles: Boolean): Boolean;
Begin
  Result :=
    ads_file.
      FilesInDirDetail(
        FileList,
        Directory,
        Mask,
        Intersection,
        IsReadOnly,
        IsHidden,
        IsSystem,
        IsVolumeID,
        IsDirectory,
        IsArchive,
        IsNormal,
        InclDotFiles);
End;

//
Unit Description UnitIndex Master Index
Function FormCenterHorizontal(FormWidth: Integer): Integer;
Begin
  Result :=
    ads_comp.
      FormCenterHorizontal(FormWidth);
End;

//
Unit Description UnitIndex Master Index
Function FormCenterVertical(FormHeight: Integer): Integer;
Begin
  Result :=
    ads_comp.
      FormCenterVertical(FormHeight);
End;

//
Unit Description UnitIndex Master Index
procedure FormDimensions(
  Form: TForm;
  TopDim,
  LeftDim,
  HeightDim,
  WidthDim: Integer);
Begin
  ads_comp.
    FormDimensions(
      Form,
      TopDim,
      LeftDim,
      HeightDim,
      WidthDim);
End;

//
Unit Description UnitIndex Master Index
Function  GetCenterFormLeft(FormWidth : Integer): Integer;
Begin
  Result :=
    ads_comp.
      GetCenterFormLeft(FormWidth);
End;

//
Unit Description UnitIndex Master Index
Function  GetCenterFormTop(FormHeight : Integer): Integer;
Begin
  Result :=
    ads_comp.
      GetCenterFormTop(FormHeight);
End;

//
Unit Description UnitIndex Master Index
procedure GridDeleteRow(RowNumber : Integer; Grid : TStringGrid);
Begin
  ads_comp.GridDeleteRow(RowNumber, Grid);
End;

//
Unit Description UnitIndex Master Index
procedure GridMoveRowToBottom(RowNumber : Integer; Grid : TStringGrid);
Begin
  ads_comp.GridMoveRowToBottom(RowNumber, Grid);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFadeAway(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean);
Begin
  ads_graf.
    ImageFadeAway(
      Image,
      Timer,
      Transparent);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFadeIn(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean);
Begin
  ads_graf.
    ImageFadeIn(
      Image,
      Timer,
      Transparent);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFadeInAndOut(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFadeInAndOut(
      Image,
      Timer,
      Transparent,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFadeInAndOutDetail(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinTop   : Integer;
  Const MinLeft  : Integer;
  MaxWidth       : Integer;
  MaxHeight      : Integer;
  MinWidth       : Integer;
  MinHeight      : Integer;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFadeInAndOutDetail(
      Image,
      Timer,
      Transparent,
      MinTop,
      MinLeft,
      MaxWidth,
      MaxHeight,
      MinWidth,
      MinHeight,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlipHoriz(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinLeft  : Integer;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlipHoriz(
      Image,
      Timer,
      Transparent,
      MinLeft,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlipVert(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinTop   : Integer;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlipVert(
      Image,
      Timer,
      Transparent,
      MinTop,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlutterHoriz(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlutterHoriz(
      Image,
      Timer,
      Transparent,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlutterHorizDetail(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinTop   : Integer;
  Const MinLeft  : Integer;
  MaxWidth       : Integer;
  MaxHeight      : Integer;
  MinWidth       : Integer;
  MinHeight      : Integer;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlutterHorizDetail(
      Image,
      Timer,
      Transparent,
      MinTop,
      MinLeft,
      MaxWidth,
      MaxHeight,
      MinWidth,
      MinHeight,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlutterVert(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlutterVert(
      Image,
      Timer,
      Transparent,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageFlutterVertDetail(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Const MinTop   : Integer;
  Const MinLeft  : Integer;
  MaxWidth       : Integer;
  MaxHeight      : Integer;
  MinWidth       : Integer;
  MinHeight      : Integer;
  Cycles         : Integer);
Begin
  ads_graf.
    ImageFlutterVertDetail(
      Image,
      Timer,
      Transparent,
      MinTop,
      MinLeft,
      MaxWidth,
      MaxHeight,
      MinWidth,
      MinHeight,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImagePulsate(
  Image          : TImage;
  Timer          : TTimer;
  Transparent    : Boolean;
  Cycles         : Integer);
Begin
  ads_graf.
    ImagePulsate(
      Image,
      Timer,
      Transparent,
      Cycles);
End;

//
Unit Description UnitIndex Master Index
Procedure ImageRotateDetail(
  Image          : TImage;
  Timer          : TTimer;
  Frames         : Integer;
  Interval       : Integer;
  Transparent    : Boolean;
  RotateHoriz    : Boolean;
  RotateVert     : Boolean;
  QuarterCycles  : Integer;
  Const MinTop   : Integer;
  Const MinLeft  : Integer;
  MaxWidth       : Integer;
  MaxHeight      : Integer;
  MinWidth       : Integer;
  MinHeight      : Integer;
  StartMaxHoriz  : Boolean;
  StartMaxVert   : Boolean);
Begin
  ads_graf.
    ImageRotateDetail(
      Image,
      Timer,
      Frames,
      Interval,
      Transparent,
      RotateHoriz,
      RotateVert,
      QuarterCycles,
      MinTop,
      MinLeft,
      MaxWidth,
      MaxHeight,
      MinWidth,
      MinHeight,
      StartMaxHoriz,
      StartMaxVert);
End;

//
Unit Description UnitIndex Master Index
Function IniGetIntegerValue(
  TheIniFile            : String;
  IniSection            : String;
  IntegerName           : String;
  DefaultInteger        : Integer): Integer;
Begin
  Result :=
    Ads_Ini.
      IniGetIntegerValue(
        TheIniFile,
        IniSection,
        IntegerName,
        DefaultInteger);
End;

//
Unit Description UnitIndex Master Index
Function IniGetStringValue(
  TheIniFile            : String;
  IniSection            : String;
  StringName            : String;
  DefaultString         : String): String;
Begin
  Result :=
    Ads_Ini.
      IniGetStringValue(
        TheIniFile,
        IniSection,
        StringName,
        DefaultString);
End;

//
Unit Description UnitIndex Master Index
Function IniSetIntegerValue(
  TheIniFile            : String;
  IniSection            : String;
  IntegerName           : String;
  IntegerValue          : Integer): Boolean;
Begin
  Result :=
    Ads_Ini.
      IniSetIntegerValue(
        TheIniFile,
        IniSection,
        IntegerName,
        IntegerValue);
End;

//
Unit Description UnitIndex Master Index
Function IniSetStringValue(
  TheIniFile            : String;
  IniSection            : String;
  StringName            : String;
  StringValue           : String): Boolean;
Begin
  Result :=
    Ads_Ini.
      IniSetStringValue(
        TheIniFile,
        IniSection,
        StringName,
        StringValue);
End;

//
Unit Description UnitIndex Master Index
Procedure IniUpdateFromTStringList(
  TheIniFile            : String;
  IniSection            : String;
  StringListName        : String;
  CountField            : String;
  StringList            : TStringList);
Begin
  Ads_Ini.
    IniUpdateFromTStringList(
      TheIniFile,
      IniSection,
      StringListName,
      CountField,
      StringList);
End;

//
Unit Description UnitIndex Master Index
Procedure IniUpdateTStringList(
  TheIniFile            : String;
  IniSection            : String;
  StringListName        : String;
  CountField            : String;
  StringList            : TStringList);
Begin
  Ads_Ini.
    IniUpdateTStringList(
      TheIniFile,
      IniSection,
      StringListName,
      CountField,
      StringList);
End;

//
Unit Description UnitIndex Master Index
Function InputBoxFilterDetail(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string;
  const FilterString  : string
  ): string;
Begin
  Result :=
    ads_comp.
      InputBoxFilterDetail(
        DialogCaption,
        InputPrompt,
        DefaultValue,
        FilterString
        );
End;

//
Unit Description UnitIndex Master Index
Function InputBoxOnlyAToZ(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      InputBoxOnlyAToZ(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function InputBoxOnlyNumbers(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      InputBoxOnlyNumbers(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function InputBoxOnlyNumbersAbsolute(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string): string;
Begin
  Result :=
    ads_comp.
      InputBoxOnlyNumbersAbsolute(
        DialogCaption,
        InputPrompt,
        DefaultValue);
End;

//
Unit Description UnitIndex Master Index
Function InternetCopyURLToFile(
  SourceURL    : String;
  DestFile     : String;
  ShowMessages : Boolean;
  StatusPanel  : TPanel
  ): Boolean;
Begin
  Result :=
    ads_intnet.
      InternetCopyURLToFile(
        SourceURL,
        DestFile,
        ShowMessages,
        StatusPanel
        );
End;

//
Unit Description UnitIndex Master Index
Function InternetGetBaseURL(URL : String): String;
Begin
  Result :=
    ads_intnet.
      InternetGetBaseURL(URL);
End;

//
Unit Description UnitIndex Master Index
Function InternetIsUrl(URL : String): Boolean;
Begin
  Result :=
    ads_intnet.
      InternetIsUrl(URL);
End;

//
Unit Description UnitIndex Master Index
procedure Internet_EmptyCacheDirectories(
  TemporaryInternetDirectory : String);
Begin
  ads_file.
    Internet_EmptyCacheDirectories(
      TemporaryInternetDirectory);
End;

//
Unit Description UnitIndex Master Index
procedure Internet_GetURLsFromCachePages(
  TemporaryInternetDirectory : String;
  WorkingDirectoryName       : String;
  OutputFile                 : String;
  SortByLabels               : Boolean;
  EliminateDuplicates        : Boolean;
  DiscardRelativePaths       : Boolean;
  EmptyCacheWhenDone         : Boolean;
  EliminateURLsContaining    : TStrings);
Begin
  ads_intnet.
    Internet_GetURLsFromCachePages(
      TemporaryInternetDirectory,
      WorkingDirectoryName,
      OutputFile,
      SortByLabels,
      EliminateDuplicates,
      DiscardRelativePaths,
      EmptyCacheWhenDone,
      EliminateURLsContaining);
End;

//
Unit Description UnitIndex Master Index
Function IsBlockColSide(Excel : Variant; RowNum, ColNum: Integer): Boolean;
Begin
  Result :=
    ads_excel.
      IsBlockColSide(Excel, RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function IsBlockRowSide(Excel : Variant; RowNum, ColNum: Integer): Boolean;
Begin
  Result :=
    ads_excel.
      IsBlockRowSide(Excel, RowNum, ColNum);
End;

//
Unit Description UnitIndex Master Index
Function IsDate(DateString: String): Boolean;
Begin
  Result :=
    ads_date.
      IsDate(DateString);
End;

//
Unit Description UnitIndex Master Index
Function IsDelphiRunning: Boolean;
Begin
  Result := Ads_Misc.IsDelphiRunning;
End;

//
Unit Description UnitIndex Master Index
Function IsDir(IsDirPath: String): Boolean;
Begin
  Result :=
    ads_file.
      IsDir(IsDirPath);
End;

//
Unit Description UnitIndex Master Index
Function IsDirEmpty(DirName: String): Boolean;
Begin
  Result :=
    ads_file.
      IsDirEmpty(DirName);
End;

//
Unit Description UnitIndex Master Index
Function IsEmptyDataSource(DS: TDataSource): Boolean;
Begin
  Result :=
    Ads_DB.
      IsEmptyDataSource(DS);
End;

//
Unit Description UnitIndex Master Index
Function IsEmptyTQuery(Query: TQuery): Boolean;
Begin
  Result :=
    Ads_DB.
      IsEmptyTQuery(Query);
End;

//
Unit Description UnitIndex Master Index
Function IsEmptyTTable(Table: TTable): Boolean;
Begin
  Result :=
    Ads_DB.
      IsEmptyTTable(Table);
End;

//
Unit Description UnitIndex Master Index
Function IsEmptyTable(DatabaseName, TableName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      IsEmptyTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function IsField(DatabaseName, TableName, FieldName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      IsField(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function IsFieldKeyed(DatabaseName, TableName, FieldName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      IsFieldKeyed(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function IsFile(DirName: String): Boolean;
Begin
  Result :=
    ads_file.
      IsFile(DirName);
End;

//
Unit Description UnitIndex Master Index
Function IsRecord(
  DatabaseName : String;
  TableName    : String;
  TableKeys    : TStringList;
  KeyValues    : TStringList): Boolean;
Begin
  Result :=
    Ads_DB.
      IsRecord(
        DatabaseName,
        TableName,
        TableKeys,
        KeyValues);
End;

//
Unit Description UnitIndex Master Index
Function IsSchemaSame(const
  DatabaseName1,
  Table1,
  DatabaseName2,
  Table2: string): Boolean;
Begin
  Result :=
    Ads_DB.
      IsSchemaSame(
        DatabaseName1,
        Table1,
        DatabaseName2,
        Table2);
End;

//
Unit Description UnitIndex Master Index
Function IsStructureSame(const
  DatabaseName1,
  Table1,
  DatabaseName2,
  Table2: string): Boolean;
Begin
  Result :=
    Ads_DB.
      IsStructureSame(
        DatabaseName1,
        Table1,
        DatabaseName2,
        Table2);
End;

//
Unit Description UnitIndex Master Index
Function IsTable(DatabaseName, TableName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      IsTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function IsTableKeyed(DatabaseName, TableName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      IsTableKeyed(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Procedure KeyPressOnlyAToZ(Var Key: Char);
Begin
  Ads_Strg.
    KeyPressOnlyAToZ(Key);
End;

//
Unit Description UnitIndex Master Index
Procedure KeyPressOnlyNumbers(Var Key: Char);
Begin
  Ads_Strg.
    KeyPressOnlyNumbers(Key);
End;

//
Unit Description UnitIndex Master Index
Procedure KeyPressOnlyNumbersAbsolute(Var Key: Char);
Begin
  Ads_Strg.
    KeyPressOnlyNumbersAbsolute(Key);
End;

//
Unit Description UnitIndex Master Index
Function KeySend(VirtualKey: Word): Boolean;
Begin
  Result :=
    Ads_Misc.
      KeySend(VirtualKey);
End;

//
Unit Description UnitIndex Master Index
Function KillDirectory(DirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      KillDirectory(DirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function Len(InputString: String): Integer;
Begin
  Result :=
    Ads_Strg.
      Len(InputString);
End;

//
Unit Description UnitIndex Master Index
Function LookupDialog(
  const DialogCaption : string;
  const InputPrompt   : string;
  const DefaultValue  : string;
  const Values        : TStringList
  ): string;
Begin
  Result :=
    Ads_DB.
      LookupDialog(
        DialogCaption,
        InputPrompt,
        DefaultValue,
        Values
        );
End;

//
Unit Description UnitIndex Master Index
Function Lower(InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      Lower(InputString);
End;

//
Unit Description UnitIndex Master Index
Function MD(DirName: String): Boolean;
Begin
  Result :=
    ads_file.
      MD(DirName);
End;

//
Unit Description UnitIndex Master Index
Function Max(Number1, Number2: Single): Single;
Begin
  Result :=
    Ads_math.
      Max(Number1, Number2);
End;

//
Unit Description UnitIndex Master Index
Function Min(Number1, Number2: Single): Single;
Begin
  Result :=
    Ads_math.
      Min(Number1, Number2);
End;

//
Unit Description UnitIndex Master Index
Function Min_I(Number1, Number2: Integer): Integer;
Begin
  Result :=
    Ads_math.
      Min_I(Number1, Number2);
End;

//
Unit Description UnitIndex Master Index
Function MoveDirectory(
  SourceDirectoryName: String;
  DestDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      MoveDirectory(
        SourceDirectoryName,
        DestDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Function MoveTable(
  SourceTable,
  SourceDatabaseName,
  DestDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      MoveTable(
        SourceTable,
        SourceDatabaseName,
        DestDatabaseName);
End;

//
Unit Description UnitIndex Master Index
procedure Msg(Msg: String);
Begin
  Ads_Misc.
    Msg(Msg);
End;

//
Unit Description UnitIndex Master Index
function MsgDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultButton : TMsgDlgBtn): Integer;
Begin
  Result :=
    Ads_Misc.
      MsgDlg(Msg, DlgType,
        Buttons, HelpCtx, DefaultButton);
End;

//
Unit Description UnitIndex Master Index
Function NFields(DatabaseName, TableName: String): Integer;
Begin
  Result :=
    Ads_DB.
      NFields(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Function NMHttp_GetURLToFile(
  NMHttp       : TNMHttp;
  SourceURL    : String;
  DestFile     : String;
  Button_Stop  : TSpeedButton
  ): Boolean;
Begin
  Result :=
    ads_intnet.
      NMHttp_GetURLToFile(
        NMHttp,
        SourceURL,
        DestFile,
        Button_Stop
        );
End;

//
Unit Description UnitIndex Master Index
Function NMHttp_IsUrl(NMHttp: TNMHttp; URLString: String): Boolean;
Begin
  Result := ads_intnet.NMHttp_IsUrl(NMHttp, URLString);
End;

//
Unit Description UnitIndex Master Index
Function NMHttp_PostURLToFile(
  NMHttp       : TNMHttp;
  SourceURL    : String;
  Parameters   : String;
  DestFile     : String;
  Button_Stop  : TSpeedButton
  ): Boolean;
Begin
  Result :=
    ads_intnet.
      NMHttp_PostURLToFile(
        NMHttp,
        SourceURL,
        Parameters,
        DestFile,
        Button_Stop
        );
End;

//
Unit Description UnitIndex Master Index
Function NumVal(InputString: String): Extended;
Begin
  Result :=
    Ads_math.
      NumVal(InputString);
End;

//
Unit Description UnitIndex Master Index
Function NumbersOnly(InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      NumbersOnly(InputString);
End;

//
Unit Description UnitIndex Master Index
Function NumbersOnlyAbsolute(InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      NumbersOnlyAbsolute(InputString);
End;

//
Unit Description UnitIndex Master Index
Procedure PanelBevel(Beveled : Boolean; Panel: TPanel);
Begin
  ads_comp.
    PanelBevel(Beveled, Panel);
End;

//
Unit Description UnitIndex Master Index
Function Pi_Real: Real;
Begin
  Result := Ads_math.Pi_Real;
End;

//
Unit Description UnitIndex Master Index
procedure ProgressScreenCursor;
Begin
  ads_comp.
    ProgressScreenCursor;
End;

//
Unit Description UnitIndex Master Index
Function Proper(S : String): String;
Begin
  Result :=
    Ads_Strg.
      Proper(S);
End;

//
Unit Description UnitIndex Master Index
Procedure PurgeInternetCache(
  MainForm   : TForm;
  WinDir     : String;
  IntTempDir : String);
Begin
  ads_intnet.
    PurgeInternetCache(
      MainForm,
      WinDir,
      IntTempDir);
End;

//
Unit Description UnitIndex Master Index
Function RD(DirName: String): Boolean;
Begin
  Result :=
    ads_file.
      RD(DirName);
End;

//
Unit Description UnitIndex Master Index
Function Rand: Integer;
Begin
  Result := Ads_math.Rand;
End;

//
Unit Description UnitIndex Master Index
Procedure RandImage(ImageControl: TImage;
  DirPath,
  FileStub,
  FileExt: String;
  ImageMin,
  ImageMax: Integer);
Begin
  ads_graf.
    RandImage(ImageControl,
      DirPath,
      FileStub,
      FileExt,
      ImageMin,
      ImageMax);
End;

//
Unit Description UnitIndex Master Index
Function RandomInteger(RandMin, RandMax: Integer): Integer;
Begin
  Result :=
    Ads_math.
      RandomInteger(RandMin, RandMax);
End;

//
Unit Description UnitIndex Master Index
Function ReNameDir(OldDirName, NewDirName: String): Boolean;
Begin
  Result :=
    ads_file.
      ReNameDir(OldDirName, NewDirName);
End;

//
Unit Description UnitIndex Master Index
Function ReNameDirectory(
  OldDirectoryName: String;
  NewDirectoryName: String): Boolean;
Begin
  Result :=
    ads_file.
      ReNameDirectory(
        OldDirectoryName,
        NewDirectoryName);
End;

//
Unit Description UnitIndex Master Index
Procedure ReSizeTuner(ComponentName : String);
Begin
  Ads_Misc.ReSizeTuner(ComponentName);
End;

//
Unit Description UnitIndex Master Index
Function ReplaceCharInString(S,OldChar,NewChar :String): String;
Begin
  Result :=
    Ads_Strg.
      ReplaceCharInString(S,OldChar,NewChar);
End;

//
Unit Description UnitIndex Master Index
Function ReplaceCharacterInString(
  OldChar,
  NewChar,
  InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      ReplaceCharacterInString(
        OldChar,
        NewChar,
        InputString);
End;

//
Unit Description UnitIndex Master Index
Function ReplaceSubStringInString(OldSubString,NewSubString,InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      ReplaceSubStringInString(OldSubString,NewSubString,InputString);
End;

//
Unit Description UnitIndex Master Index
Function ReplaceSubStringInStringNoCase(OldSubString,NewSubString,InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      ReplaceSubStringInStringNoCase(OldSubString,NewSubString,InputString);
End;

//
Unit Description UnitIndex Master Index
Procedure ScaleForm(F: TForm;ScreenWidth, ScreenHeight: LongInt);
Begin
  ads_comp.
    ScaleForm(F,ScreenWidth, ScreenHeight);
End;

//
Unit Description UnitIndex Master Index
Function SendKey(VirtualKey: Word): Boolean;
Begin
  Result :=
    Ads_Misc.
      SendKey(VirtualKey);
End;

//
Unit Description UnitIndex Master Index
procedure SetChildWidths(Panel : TPanel);
Begin
  ads_comp.
    SetChildWidths(Panel);
End;

//
Unit Description UnitIndex Master Index
Function SetFileDate(
  Const FileName : String;
  Const FileDate : TDateTime): Boolean;
Begin
  Result :=
    ads_file.
      SetFileDate(
        FileName,
        FileDate);
End;

//
Unit Description UnitIndex Master Index
Function StringPad(
  InputStr,
  FillChar: String;
  StrLen: Integer;
  StrJustify: Boolean): String;
Begin
  Result :=
    Ads_Strg.
      StringPad(
        InputStr,
        FillChar,
        StrLen,
        StrJustify);
End;

//
Unit Description UnitIndex Master Index
Function String_GrepAllToStringList(
  Source                  : String;   //The input string
  StartTag                : String;   //The start tag
  EndTag                  : String;   //The end tag
  Containing              : String;   //A match must contain this string
  Var StringList          : TStringList;   //A List of Matches
  CaseSensitiveTags       : Boolean;  //True if tags are casesensitive
  CaseSensitiveContaining : Boolean   //True if Containing string is casesensitive
  ): Boolean;                         //True if a match was found
Begin
  Result :=
    Ads_Strg.
      String_GrepAllToStringList(
        Source,
        StartTag,
        EndTag,
        Containing,
        StringList,
        CaseSensitiveTags,
        CaseSensitiveContaining
        );
End;

//
Unit Description UnitIndex Master Index
Function String_Grep_Contents(Source, StartTag, EndTag: String): String;
Begin
  Result :=
    Ads_Strg.
      String_Grep_Contents(Source, StartTag, EndTag);
End;

//
Unit Description UnitIndex Master Index
Function String_Grep_Detail(
  Source                  : String;   //The input string
  StartTag                : String;   //The start tag
  EndTag                  : String;   //The end tag
  Containing              : String;   //A match must contain this string
  Var BeforeString        : String;   //The substring prior to the match
  Var MatchWithTags       : String;   //The match string including tags
  Var MatchWithoutTags    : String;   //the match string without the tags
  Var AfterString         : String;   //The substring after the match with tags
  CaseSensitiveTags       : Boolean;  //True if tags are casesensitive
  CaseSensitiveContaining : Boolean   //True if Containing string is casesensitive
  ): Boolean;                         //True if a match was found
Begin
  Result :=
    Ads_Strg.
      String_Grep_Detail(
        Source,
        StartTag,
        EndTag,
        Containing,
        BeforeString,
        MatchWithTags,
        MatchWithoutTags,
        AfterString,
        CaseSensitiveTags,
        CaseSensitiveContaining
        );
End;

//
Unit Description UnitIndex Master Index
Function String_LineFeed_Format(SourceString : String): String;
Begin
  Result :=
    Ads_Strg.
      String_LineFeed_Format(SourceString);
End;

//
Unit Description UnitIndex Master Index
Function String_LineFeed_Insert(SourceString : String; Index : Integer): String;
Begin
  Result :=
    Ads_Strg.
      String_LineFeed_Insert(SourceString, Index);
End;

//
Unit Description UnitIndex Master Index
Function String_Replace(
  OldSubString : String;
  NewSubString : String;
  SourceString : String): String;
Begin
  Result :=
    Ads_Strg.
      String_Replace(
        OldSubString,
        NewSubString,
        SourceString);
End;

//
Unit Description UnitIndex Master Index
Function String_Replace_NoCase(
  OldSubString : String;
  NewSubString : String;
  SourceString : String): String;
Begin
  Result :=
    Ads_Strg.
      String_Replace_NoCase(
        OldSubString,
        NewSubString,
        SourceString);
End;

//
Unit Description UnitIndex Master Index
Function String_Reverse(S : String): String;
Begin
  Result :=
    Ads_Strg.
      String_Reverse(S);
End;

//
Unit Description UnitIndex Master Index
Function SubStr(InputString: String; StartPos, StringLength: Byte): String;
Begin
  Result :=
    Ads_Strg.
      SubStr(InputString, StartPos, StringLength);
End;

//
Unit Description UnitIndex Master Index
Function SubtractTable(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result :=
    Ads_DB.
      SubtractTable(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestinationTable);
End;

//
Unit Description UnitIndex Master Index
Function TableAdd(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result :=
    Ads_DB.
      TableAdd(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestinationTable);
End;

//
Unit Description UnitIndex Master Index
Function TableCreateFromQuery(
  Query: TQuery;
  NewTableName,
  TableDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      TableCreateFromQuery(
        Query,
        NewTableName,
        TableDatabaseName);
End;

//
Unit Description UnitIndex Master Index
Function TableMove(
  SourceTable,
  SourceDatabaseName,
  DestDatabaseName: String): Boolean;
Begin
  Result :=
    Ads_DB.
      TableMove(
        SourceTable,
        SourceDatabaseName,
        DestDatabaseName);
End;

//
Unit Description UnitIndex Master Index
Function TableSubtract(
  const
  SourceDatabaseName,
  SourceTable,
  DestDatabaseName,
  DestinationTable: string): Boolean;
Begin
  Result :=
    Ads_DB.
      TableSubtract(
        SourceDatabaseName,
        SourceTable,
        DestDatabaseName,
        DestinationTable);
End;

//
Unit Description UnitIndex Master Index
Function TimeDeltaInMinutes(
  StartDate : TDateTime;
  EndDate   : TDateTime): Double;
Begin
  Result :=
    ads_date.
      TimeDeltaInMinutes(
        StartDate,
        EndDate);
End;

//
Unit Description UnitIndex Master Index
Function TimeDeltaInSeconds(
  StartDate : TDateTime;
  EndDate   : TDateTime): Double;
Begin
  Result :=
    ads_date.
      TimeDeltaInSeconds(
        StartDate,
        EndDate);
End;

//
Unit Description UnitIndex Master Index
Function Today: String;
Begin
  Result := ads_date.Today;
End;

//
Unit Description UnitIndex Master Index
Procedure ToolBarButtonVisibleOne(P:TPanel;B : TSpeedButton);
Begin
  ads_comp.ToolBarButtonVisibleOne(P,B);
End;

//
Unit Description UnitIndex Master Index
Function TrimBlanksFromEnds(InputString: String): String;
Begin
  Result := Ads_Strg.TrimBlanksFromEnds(InputString);
End;

//
Unit Description UnitIndex Master Index
Function TrimBlanksLeft(InputString: String): String;
Begin
  Result := Ads_Strg.TrimBlanksLeft(InputString);
End;

//
Unit Description UnitIndex Master Index
Function TrimBlanksRight(InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      TrimBlanksRight(InputString);
End;

//
Unit Description UnitIndex Master Index
Function TypeField(DatabaseName, TableName, FieldName: String): String;
Begin
  Result :=
    Ads_DB.
      TypeField(DatabaseName, TableName, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function TypeFieldFromDataSet(DataSet: TDataSet; FieldName: String): String;
Begin
  Result :=
    Ads_DB.
      TypeFieldFromDataSet(DataSet, FieldName);
End;

//
Unit Description UnitIndex Master Index
Function Upper(InputString: String): String;
Begin
  Result :=
    Ads_Strg.
      Upper(InputString);
End;

//
Unit Description UnitIndex Master Index
Function UserIDFromWindows: string;
Begin
  Result :=
    Ads_Misc.
      UserIDFromWindows;
End;

//
Unit Description UnitIndex Master Index
Function VersionInformation(
  ListBox : TListBox): Boolean;
Begin
  Result :=
    Ads_Misc.
      VersionInformation(
        ListBox);
End;

//
Unit Description UnitIndex Master Index
Function WinExecute(ApToExec: String): THandle;
Begin
  Result :=
    ads_file.
      WinExecute(ApToExec);
End;

//
Unit Description UnitIndex Master Index
Function WinExecute32(
  FileName   : String;
  Visibility : integer):integer;
Begin
  Result :=
    ads_file.
      WinExecute32(
        FileName,
        Visibility);
End;

//
Unit Description UnitIndex Master Index
Function Date_NextWeek(DateValue: TDateTime): TDateTime;
Begin
  Result := Date_NextWeek(DateValue);
End;

//
Unit Description UnitIndex Master Index
Function File_DirOperations_Detail(
  Action            : String;  //COPY, DELETE, MOVE, RENAME
  RenameOnCollision : Boolean; //Renames if directory exists
  NoConfirmation    : Boolean; //Responds "Yes to All" to any dialogs
  Silent            : Boolean; //No progress dialog is shown
  ShowProgress      : Boolean; //displays progress dialog but no file names
  FromDir           : String;  //From directory
  ToDir             : String   //To directory
  ): Boolean;
Begin
  Result :=
    ads_file.
      File_DirOperations_Detail(
        Action,
        RenameOnCollision,
        NoConfirmation,
        Silent,
        ShowProgress,
        FromDir,
        ToDir
        );
End;

{Tests whether a table is empty, i.e., has no records }
//
Unit Description UnitIndex Master Index
Function IsEmptyTable2(DatabaseName, TableName: String): Boolean;
Begin
  Result := Ads_DB.IsEmptyTable(DatabaseName, TableName);
End;

//
Unit Description UnitIndex Master Index
Procedure KeyPressOnlyLettersAbsolute(Var Key: Char);
Begin
  Ads_Strg.KeyPressOnlyLettersAbsolute(Key);
End;

//
Unit Description UnitIndex Master Index
Function LettersOnlyAbsolute(InputString: String): String;
Begin
  Result := LettersOnlyAbsolute(InputString);
End;

//
Unit Description UnitIndex Master Index
Function TimeDeltaInMSeconds(StartDate : TDateTime;EndDate   : TDateTime): Double;
Begin
  Result := TimeDeltaInMSeconds(StartDate,EndDate);
End;

End.
//