Перейти к основному содержанию

Процедуры, функции и классы

rUtils.pas

Функции и процедуры, не связанные с БД.
Даты
function AdaptedDateStr(Date: TDateTime): string Строка даты с заменой имени месяца на род. падеж.
function rDayOfWeek(dDate: TDateTime): Integer День недели (учитывает опцию WEEK_MONDAY)
function DaysOfMonth(Date: TDateTime): Integer Количество дней в месяце.
function MaxDate(const D: array of TDate): TDate Выбор максимальной даты из списка.
function MinDate(const D: array of TDate): TDate Выбор минимальной даты из списка.
Строки
function AddSlash(Path: string): string Добавление \ в конец строки.
function AddFirstToList(List, S: String; Delim: String): String Добавление элемента S в начало строки-списка List c разделителем Delim.
function ChangeEndStr(Dest,Delim,Source: string): string Замена конца строки Dest после разделителя Delim на Source.
function ConvertCodes(Source: string): string Преобразование \n, \r, \t, \NNN в соответсвующие символы.
function ConvertSymbols(S, Source, Target: string): string Замена символов в строке S из одного набора (Source) на символы из другого (Target).
function FormatFIO(S: string): string Форматирование полного ФИО в инициалы.
function GetDelimCount(S: String; Delims: TCharSet): Integer Количество разделителей Delim в строке S.
function ListToStr(List: TList; Delim: String): String Преобразование TList в строку с разделителем Delim.
function MoneyInWords(Sum: Extended; MainCur, SecCur: TCurrencyNames; Gender: TGenders; Decimals: Integer): string Представление денежной суммы Sum прописью с точностью до Decimals дробных знаков, причем MainCur - старшая валюта, SecCur - младшая ден.единица. Gender - род старшей валюты.
function NumInWords(Sum: Extended; Gender: TGenders): string Преобразование целой части числа Sum в строку прописью. Gender - род числительного (например, ОДНА ложка, но ОДИН стакан).
function NumSomething(Num: Integer; Something: String; IncludeNum: Boolean = True): String;
function NumSomething(Num: Integer; Something: TCurrencyNames; IncludeNum: Boolean = True): String

Формирует строки типа "5 байтов" или "2 байта". Например:
NumSomething(3, 'пирог,пирога,пирогов') =
'3 пирога'

function PosR(C: Char; S: String): Integer Позиция символа C в строке S, начиная с последнего
function PosWordDelims(Srch, S: String; Delims: TCharSet): Integer Позиция обрамленной разделителями Delims подстроки Srch в строке S
function RightCopy(S: String; N: Integer): String N последних символов из строки S
function StrToDateFix(const S: string): TDateTime;
function StrToTimeFix(const S: string): TDateTime;
function StrToDateTimeFix(const S: string): TDateTime;
function DateToStrFix(Date: TDateTime): string;
function TimeToStrFix(Time: TDateTime): string;
function DateTimeToStrFix(DateTime: TDateTime): string;
function StrToFloatFix(const S: string): Extended;
function FloatToStrFix(Value: Extended): string;
function FormatFloatFix(const Format: string; Value: Extended): string;
Семейство функций для преобразования дат и чисел в строки и наоборот, но без учета текущих настроек Windows. Используются разделители DateSeparatorFix, TimeSeparatorFix, ShortDateFormatFix, ShortTimeFormatFix, DecimalSeparatorFix.
function StrTrunc(Source: string; Len: Integer; TermStr: string): string Обрезание строки Source c добавлением в конец строки TermStr до длины Len.
function Stuff(S: string; Index,Count: Integer; Source: string): string Вставка подстроки Source в строку S с заменой Count символов, начиная с Index.
function TestNum(Num: Integer): Integer Определение попадания числа Num в диапазон TCurrencyNames.
Числа
function DivZero(X, Y: Extended; DefValue: Extended): Extended Защищенное деление (если делитель =0, то возвращается DefValue).
function fRound(X: Extended; Precision: Integer): Extended Округление числа Value до Precision знаков. Если Precision - отрицательный, то округляется целая часть.
function IncCycle(var Value: Integer;const Offset, MinValue, MaxValue: Integer): Integer Циклический инкремент Value с шагом Offset в пределах диапазона [MinValue, MaxValue].
function RaisePower(Value,Power: Integer): Integer Возведение числа Value в степень Power.
function fPower(Value, Power: Extended): Extended
function Sign(Value: Extended): Integer Знак числа. 1 - >0, 0 =0, -1 - <0.
function SoftRound(X: Extended; Precision: Integer): Extended Округление как и fRound, но если получается 0, то остается исходное число.
ОС
procedure ExitOS(Flag: UINT) Выключение или перезагрузка ОС (Flag = EWX_xxxx, см. ExitWindowsEx)
function GetOSUser: string Имя текущего пользователя Windows.
function GetVersionInfo(VerList: TStrings; FileName: String): Boolean Загрузка VersionInfo в VerList из файла FileName.
function SeparateVersion(Version: String; var MS, LS: DWORD): Boolean Разделение версии вида XX.XX.XX.XX на старшую и младшую части.
procedure SetOSTime(D: TDateTime) Установка системного времени.
Разное
function AssignList(Dest, Source: TList): Integer Копирует элементы TList из Source в Dest.
procedure CopyObject(Source, Dest: TObject) Копирует свойства объекта из Source в Dest.
function IIF(Switch: Boolean; Var1,Var2: Variant): Variant;
function IIF(Switch: Boolean; Var1,Var2: String): String;
Выбор из двух значений. Если Switch=True, то возвращается первое.
function GetRealIndex(Items: TStrings; FirstIndex: Integer; S: string): Integer Определение правильного индекса в списке Items строки S с учетом регистра символов, начиная с индекса FirstIndex.
function CompareVar(Var1, Var2: Variant): Integer Сравнение двух Variant'ов.
1 - Var1>Var2, 0 - Var1=Var2, -1 - Var1<Var2. Следует учитывать, что varEmpty < varNull.

rVCLUtils.pas

Функции и процедуры, связанные с VCL.
Окна
procedure ActiveControls(Owner: TWinControl; Active: Boolean) Смена активности (Enabled:=Active) элементов управления владельца Owner.
procedure AppHint(StrHint: string) Принудительное отображение Hint.
function CheckMDIForm(Parent: TForm;ChildName: string): Boolean Проверка MDI окна с именем ChildName на его существование в форме Parent.
function ConfirmCancel(Caption: string): Boolean Предупреждение об отмене изменений.
procedure DrawImage(Canvas: TCanvas; Rect: TRect; Images: TImageList; Index: Integer) Отрисовка картинки с индексом Index из ImageList'a в Rect канвы Canvas.
function ExecuteForm(Form: TForm): TModalResult Вызов и уничтожение модального окна.
procedure RefreshWindow(Control: TWinControl; Rect: Pointer) Перерисовывет оконный объект.
procedure RestoreWindow(Control: TWinControl) Достает наверх уже показанную форму.
function rMsgBox(Text: string; Flags: Longint): Integer Выдает стандартное окно сообщения MessageBox.
Реестр
function RegReadValue(Reg: TRegistry; Name: string; Default: TYPE): TYPE Чтение значения параметра Name реестра Reg.
Для D4,D5 - TYPE = (String, Integer, Boolean, Extended, TDateTime),
для D3 - TYPE = String.
function SeparateRegKey(Source: String; var TargetRoot: HKEY; var TargetKey: String): Boolean Разделяет строку (полный путь ключа реестра) на корневой ключ и RegKey
Ресурсы
procedure CorrectResName(var ResName: string) Исправляет имя ресурса.
function FindResourceInModules(var Module: THandle; const ResName, ResType: PChar): HRSRC Ищет ресурс ResName типа ResType в массиве RHandles (в первую очередь в Module).
procedure LoadBitmapFromResource(Bitmap: TBitmap; RHandle: THandle; ResName: string; ResKind: TBitmapResKind) Загружает картинку из ресурса ResName типа ResKind из модуля RHandle с преобразованием в битмап Bitmap.
function LoadToImage(Handle: THandle; ResName: PChar; ResKind: TBitmapResKind; Image: TImageList): Boolean Загрузка Bitmap'а в Image из ресурса ResName типа ResKind из модуля Handle.
function RLoadPicture(RHandle: THandle; ResName: string; ResKind: TBitmapResKind): THANDLE Загрузка картинки из ресурса ResName типа ResKind из модуля RHandle.
procedure UpdateGlyph(Comp: TComponent; Glyph: TBitmap; GlyphResKind: TBitmapResKind; GlyphResource: string) Обновление картинки на кнопках Polaris Library.
Разное
procedure CopyMenu(Source, Dest: TMenuItem) Копирует пункты меню из подменю Source в Dest
function FontToStr(Font: TFont; Delim: string): string Преобразование TFont в строку с разделителями
procedure StrToFont(S: string; Font: TFont; Delim: Char) Преобразование строки в TFont

rDBUtils.pas

Функции и процедуры, связанные с БД (без BDE).
procedure ChangeFilter(DataSet: TDataSet; NewFilter: string) Смена фильтра у DataSet.
procedure DBErrorEHProc(E: Exception; Handler: TErrorHandler) Обработчик ошибок типа EDatabaseError для компонента TErrorHandler.
function DeleteMessage(Multi: Boolean): Boolean
function DeleteMessage(Q: Integer): Boolean
Предупреждение об удалении записи (или записей при Multi=True или Q > 1).
function DoAction(DataSet: TDataSet; Field: TField; Action: TrDBAction): Boolean Выполнение действия Action на DataSet и Field. Возвращает True при успешном завершении.
procedure FormatFIOField(Field: TStringField) Форматирование колонки ФИО.
procedure FormatNameField(Field: TStringField) Форматирование значения колонки наименования с отсечением пробелов и перевода первой буквы в прописную.
procedure ReCalcField(DataSet: TDataSet) Принудительный пересчет вычислимых полей.
procedure SetDBFilter(AModule: TComponent; Reg: TRegistry; ARegKey: String) Устанавливает значение в компоненту AModule из реестра Reg из раздела ARegKey (для настройки фильтра).
function TestOptions(DataSet: TDataSet; Field: TField; PositiveOptions,NegativeOptions: TrDBOptionSet): Boolean Проверка условий PositiveOptions и NegativeOptions на Dataset и Field.
procedure AssignParam(Param: TParam; Value: Variant) Присваивание значения Value параметру Param (даже NULL).
procedure ClearParams(Params: TParams) Очистка значений всех параметров.
procedure AssignParamFromField(Param: TParam; Field: TField) Присваивание значения параметру из поля.

rBDEUtils.pas

Функции и процедуры, связанные с БД через BDE.
procedure BDEErrorEHProc(E: Exception; Handler: TErrorHandler) Обработчик ошибок типа EDBEngineError для компонента TErrorHandler.
function DBSysDate(ADatabase: TDatabase; WithTime: Boolean): TDateTime Системная дата/время на сервере БД (только Interbase или локальная БД).
procedure ExecStoredProc(StoredProc: TStoredProc; DB: TDatabase) Выполнение хранимой процедуры StoredProc внутри транзакции.
procedure ExecuteSQL(ADatabase: TDatabase; SQL: string) Выполнение SQL запроса в базе данных ADatabase.
function GetUser(DB: TDatabase): string Имя пользователя в БД DB или в Windows, если БД не открыта.

rClasses.pas

Вспомогательные классы общего назначения.
TVariantList = class(TObject)
Аналог TList, но с элементами типа Variant.
Свойства
Count: Integer Количество элементов
Items[const Index: Integer]: Variant Элементы списка
Методы
function Add(Item: Variant): Integer; virtual Добавление нового элемента в конец списка. Возвращает его номер.
procedure Assign(Source: TVariantList) Добавление элементов из списка Source.
procedure Clear; virtual Удаление всех элементов списка. Память освобождается.
procedure Delete(Index: Integer); virtual Удаление элемента с номером Index из списка. Память освобождается.
function Extract(Item: Variant): Variant; virtual Возвращает Item, если он найден в списке, и удаляет его из списка.
function First: Variant Первый элемент списка
function IndexOf(Value: Variant): Integer Поиск Value в списке. Возвращает номер элемента в случае успеха или -1, если не найдено.
procedure Insert(Index : Integer; Item: Variant); virtual Вставка в список элемента Item с номером Index.
function Last: Variant Последний элемент списка
procedure LoadFromString(S: String; Delims: TCharSet; const AVarType: Integer) Добавление элементов типа AVarType из строки S с элементами, разделенными символами из Delims.
function Remove(Item: Variant): Integer; virtual Исключение элемента с номером Index из списка.
function SaveToString(Delim: String): String Сохранение элементов списка в строку с разделителем Delim.
procedure Toggle(Item: Variant) Если элемент со значением Item найден в списке, то он удаляется, иначе - добавляется.

rPeriod.pas

Вспомогательные классы и функции для диапазонов дат.
function GetNumPeriod(dDate: TDateTime; dTypePeriod: TTypePeriod): Integer Возвращает порядковый в году номер периода типа dTypePeriod, в который входит дата dDate.
function GetPeriodName(D1, D2: TDateTime; NeedPrefix: Boolean): string Возвращает название периода.
function GetPeriodType(D1, D2: TDateTime): TTypePeriod Возвращает тип периода.
TrPeriod = class(TObject)
Период дат.
Свойства
D1, D2: TDateTime Дата начала и окончания
Методы
procedure AssignDate(dDate: TDateTime; dTypePeriod: TTypePeriod; Offset: Integer) Сформировать период типа dTypePeriod по дате dDate со смещением Offset.
Например,
AssignDate(StrToDate('10.04.02'), bdMonth, -1) сформирует период 01.03.02-31.03.02 (март 2002).
procedure AssignDates(Date1,Date2: TrDate) Присваивание D1 и D2 из Date1 и Date2.
procedure AssignNum(NumPeriod,Year: Integer; dTypePeriod: TTypePeriod) Сформировать период типа dTypePeriod и номером NumPeriod за Year год.
Например,
AssignNum(1, 2002, bdQuart) сформирует период 01.01.02-31.03.02 (I квартал 2002).
function GetDates: TrDates Период в виде TrDates
function GetName(NeedPrefix: Boolean): string Название периода
function GetType: TTypePeriod Тип периода