Delphi 6. Что нового? 12
Delphi 6. Что нового? Преобразование значения или результата.
Функция function ConvUnitSameValue (const AValue1: Double; const AType1: TConvType; const AValue2: Double; const AType2: TConvType): Boolean; — указывает, являются ли два значения эквивалентными.
Эти значения могут использовать различные единицы измерения, но они должны быть в одном и том же конверсионном семействе.
AValue1 и AValue2 — определяют единицы измерения для сравниваемых значений.
AType1 — единица измерения для AVALUE1.
AType2 — единица измерения для AVALUE2.
Параметр ConvUnitSameValue возвращает True, если два значения эквивалентны, иначе возвращается значение False.
Функция function ConvUnitToStr(const AValue: Double; const AType: TConvType): string; — форматирует измерение и его конверсионный тип в удобочитаемую строку.
AValue — определяет значение.
AType — определяет конверсионный тип (единицу измерения).
ConvUnitToString форматирует результат в строку в соответствии с описанием, которое обеспечивает ATYPE.
Например,
ConvUnitToStr (3.5, duMiles)
возвращает строку ' 3.5 Miles'
Предупреждение: строковое значение может оказаться неудобочитаемым, в зависимости от описания, которое обеспечивает конверсионный тип. Например, ConvUnitToStr (53, duFahrenheit) возвращает строку ' 53 Фаренгейт ', а не ' 53 градуса по Фаренгейту '.
Функция function ConvUnitWithinNext(const AValue, ATest: Double; const AType: TConvType; const AAmount: Double; const AAmountType: TConvType): Boolean; — указывает, превышает ли заданное измерение другое измерение на величину значения, указанного в AAmount.
AValue — значение для сравнения с ATest.
ATest — значение, сравниваемое с AValue.
AType — единица измерения и для AVALUE, и для ATEST.
AAmount — значение, на которое ATEST может превышать AVALUE.
AAmountType — единица измерения для AAmount.
ConvUnitWithinNext возвращает значение True или False в зависимости от результата.
Функция function ConvUnitWithinPrevious(const AValue, ATest: Double; const AType: TConvType; const AAmount: Double; const AAmountType: TConvType): Boolean; — указывает, является ли заданное измерение меньше, чем другое измерение на величину, указанную в AAmount.
Функция function DescriptionToConvFamily(const ADescription: string; out AFamily: TConvFamily): Boolean; — возвращает конверсионный идентификатор семейства для семейства с именем, указанным ADescription.
ADescription — имя, определенное методом RegisterConversionFamily, когда конверсионное семейство было зарегистрировано.
AFamily возвращаемый идентификатор для указанного конверсионного семейства.
DescriptionToConvFamily возвращает значение True или False в зависимости от результата.
Функции function DescriptionToConvType(const AFamily, TConvFamily; const ADescription: string; out AType: TConvType): Boolean; overload;
function DescriptionToConvType(const ADescription: string; out AType: TConvType): Boolean; overload; — возвращают значение True, если идентификатор типа для конверсионного семейства был зарегистрирован под именем, указанным ADESCRIPTION, False в противном случае.
AFamily — идентификатор конверсионного семейства, определенный функцией RegisterConversionType, когда конверсионный тип был зарегистрирован.
ADescription — имя, определенное функцией RegisterConversionType, когда конверсионный тип был зарегистрирован. Как правило, это форма имени единицы измерения. Например, описание для auAcres конверсионного типа — 'Acres'.
AType определяет идентификатор конверсионного типа.
Процедура procedure GetConvFamilies (out AFamilies: TConvFamilyArray); — возвращает список всех зарегистрированных конверсионных семейств.
GetConvFamilies возвращает динамическое множество идентификаторов для всех конверсионных семейств, зарегистрированных в настоящее время. Каждый вход во множество представляет конверсионное семейство, зарегистрированное функцией RegisterConversionFamily.
type TConvFamilyArray = array ofTConvFamily; — представляет динамическое множество конверсионных семейств.
type
TConvFamily = type Word; — представляет набор конверсионных типов, которые позволяют производить преобразования.
TConvFamily определяет конверсионное семейство. Конверсионное семейство — это совокупность единиц измерения (TConvType). Если два TConvType зарегистрированы в одном и том же конверсионном семействе, то преобразующая функция может производить преобразования между измерениями, используя значения, представленные в TConvType.
TConvFamily значения определяются во время регистрации конверсионного семейства с использованием функции RegisterConversionFamily
Процедура procedure GetConvTypes(const AFamily: TConvFamily; out ATypes: TConvTypeArray); — возвращает список всех зарегистрированных конверсионных типов в указанном конверсионном семействе.
Процедуры procedure RaiseConversionError(const AText: string; const AArgs: array of const); overload;
procedure RaiseConversionError(const AText: string); overload; — поднимают ECONVERSIONERROR исключение.
Вы не должны вызывать этот метод в своих приложениях.
Однако вы можете вызывать исключение ECONVERSIONERROR для конверсионных типов, которые вы регистрируете. Например, если единица измерения не разрешает отрицательных значений, то вы можете проверять наличие таких значений и вызывать RaiseConversionError, если будет произведена попытка запрещенного преобразования.
AText — определяет вид сообщения об ошибке для вашего исключения.
AArgs — список аргументов для спецификаторов формата в AText.
Функция function RegisterConversionFamily(const ADescription: string): TConvFamily; — регистрирует новое конверсионное семейство и возвращает его идентификатор.
Когда вы регистрируете новое конверсионное семейство, то можете регистрировать единицы измерения, которые принадлежат семейству, используя функцию RegisterConversionType. RegisterConversionType использует конверсионный идентификатор семейства, возвращаемый RegisterConversionFamily как аргумент.
ADescription — определяет название конверсионного семейства.
RegisterConversionFamily возвращает идентификатор для нового конверсионного семейства.
Функции function RegisterConversionType(const AFamily: TConvFamily; const ADescription: string, const AFactor: Double): TConvType; overload;
function RegisterConversionType(const AFamily: TConvFamily; const ADescription: string, const AToCommonProc, AFromCommonProc: TConversionProc): TConvType; overload;
function RegisterConversionType(AConvTypeInfo: TConvTypeInfo; out AType: TConvType): Boolean; overload; — производят регистрацию нового конверсионного типа и возвращают его идентификатор.
Вызывая RegisterConversionType, вы можете добавить новый конверсионный тип единицы измерения к зарегистрированному конверсионному семейству.
AFamily — идентификатор для конверсионного семейства, к которому новый конверсионный тип принадлежит. Это может быть одно из предопределенных конверсионных семейств в модуле StdConvs или значение, возвращаемое после запроса RegisterConversionFamily.
Adescription — определяет имя конверсионного типа. Как правило, это форма названия единицы измерения. Например, описание для duMeters конверсионного типа — 'Метры'.
AFactor — фактор измерения, используя который, вы можете произвести умножение, чтобы произвести преобразование в единицы конверсионного семейства. Таким образом, например, фактор для duKilometers = 1000, так как единицей для конверсионного семейства является расстояние, т.е. метры.
AToCommonProc и AFROMCOMMONPROC — функции, которые используются, когда происходят преобразования между новым конверсионным типом и единицами конверсионного семейства, и эти преобразования не могут быть выполнены простым умножением. Например, температурные измерения используют различные значения для точки отсчета от 0.
AConvTypeInfo — представляет новый конверсионный тип, включая значение ConvFamily, к которому конверсионный тип принадлежит.
Функция function StrToConvUnit(AText: string; out AType: TConvType): Double; — преобразует строковое значение в конверсионный тип.
Функции function TryConvTypeTo Family(const AType: TConvType); out AFamily: TConvFamily): Boolean; overload;
function TryConvTypeToFamily(const AFrom, ATo: TConvType; out AFamily: TConvFamily): Boolean; overload; — восстанавливают идентификатор для конверсионного семейства, с которым конверсионный тип или оба типа зарегистрированы.
TryConvTypeToFamily определяет конверсионный идентификатор семейства для семейства указанного конверсионного типа или типов. Конверсионные типы связаны с конверсионным семейством функцией RegisterConversionType, когда конверсионный тип регистрируется.
Функция function TryStrToConvUnit(AText: string; out AValue: Double; out AType: TConvType): Boolean; — полностью отменяет преобразование, выполненное функцией ConvUnitToStr.
Функция procedure UnregisterConversionFamily(const AFamily: TConvFamily); — отменяет регистрацию конверсионного семейства, предварительно зарегистрированного с использованием функции RegisterConversionFamily.
Функция procedure UnregisterConversionType(const AType: TConvType); — отменяет регистрацию конверсионного типа.
Владимир Скуратов
Функция function ConvUnitSameValue (const AValue1: Double; const AType1: TConvType; const AValue2: Double; const AType2: TConvType): Boolean; — указывает, являются ли два значения эквивалентными.
Эти значения могут использовать различные единицы измерения, но они должны быть в одном и том же конверсионном семействе.
AValue1 и AValue2 — определяют единицы измерения для сравниваемых значений.
AType1 — единица измерения для AVALUE1.
AType2 — единица измерения для AVALUE2.
Параметр ConvUnitSameValue возвращает True, если два значения эквивалентны, иначе возвращается значение False.
Функция function ConvUnitToStr(const AValue: Double; const AType: TConvType): string; — форматирует измерение и его конверсионный тип в удобочитаемую строку.
AValue — определяет значение.
AType — определяет конверсионный тип (единицу измерения).
ConvUnitToString форматирует результат в строку в соответствии с описанием, которое обеспечивает ATYPE.
Например,
ConvUnitToStr (3.5, duMiles)
возвращает строку ' 3.5 Miles'
Предупреждение: строковое значение может оказаться неудобочитаемым, в зависимости от описания, которое обеспечивает конверсионный тип. Например, ConvUnitToStr (53, duFahrenheit) возвращает строку ' 53 Фаренгейт ', а не ' 53 градуса по Фаренгейту '.
Функция function ConvUnitWithinNext(const AValue, ATest: Double; const AType: TConvType; const AAmount: Double; const AAmountType: TConvType): Boolean; — указывает, превышает ли заданное измерение другое измерение на величину значения, указанного в AAmount.
AValue — значение для сравнения с ATest.
ATest — значение, сравниваемое с AValue.
AType — единица измерения и для AVALUE, и для ATEST.
AAmount — значение, на которое ATEST может превышать AVALUE.
AAmountType — единица измерения для AAmount.
ConvUnitWithinNext возвращает значение True или False в зависимости от результата.
Функция function ConvUnitWithinPrevious(const AValue, ATest: Double; const AType: TConvType; const AAmount: Double; const AAmountType: TConvType): Boolean; — указывает, является ли заданное измерение меньше, чем другое измерение на величину, указанную в AAmount.
Функция function DescriptionToConvFamily(const ADescription: string; out AFamily: TConvFamily): Boolean; — возвращает конверсионный идентификатор семейства для семейства с именем, указанным ADescription.
ADescription — имя, определенное методом RegisterConversionFamily, когда конверсионное семейство было зарегистрировано.
AFamily возвращаемый идентификатор для указанного конверсионного семейства.
DescriptionToConvFamily возвращает значение True или False в зависимости от результата.
Функции function DescriptionToConvType(const AFamily, TConvFamily; const ADescription: string; out AType: TConvType): Boolean; overload;
function DescriptionToConvType(const ADescription: string; out AType: TConvType): Boolean; overload; — возвращают значение True, если идентификатор типа для конверсионного семейства был зарегистрирован под именем, указанным ADESCRIPTION, False в противном случае.
AFamily — идентификатор конверсионного семейства, определенный функцией RegisterConversionType, когда конверсионный тип был зарегистрирован.
ADescription — имя, определенное функцией RegisterConversionType, когда конверсионный тип был зарегистрирован. Как правило, это форма имени единицы измерения. Например, описание для auAcres конверсионного типа — 'Acres'.
AType определяет идентификатор конверсионного типа.
Процедура procedure GetConvFamilies (out AFamilies: TConvFamilyArray); — возвращает список всех зарегистрированных конверсионных семейств.
GetConvFamilies возвращает динамическое множество идентификаторов для всех конверсионных семейств, зарегистрированных в настоящее время. Каждый вход во множество представляет конверсионное семейство, зарегистрированное функцией RegisterConversionFamily.
type TConvFamilyArray = array ofTConvFamily; — представляет динамическое множество конверсионных семейств.
type
TConvFamily = type Word; — представляет набор конверсионных типов, которые позволяют производить преобразования.
TConvFamily определяет конверсионное семейство. Конверсионное семейство — это совокупность единиц измерения (TConvType). Если два TConvType зарегистрированы в одном и том же конверсионном семействе, то преобразующая функция может производить преобразования между измерениями, используя значения, представленные в TConvType.
TConvFamily значения определяются во время регистрации конверсионного семейства с использованием функции RegisterConversionFamily
Процедура procedure GetConvTypes(const AFamily: TConvFamily; out ATypes: TConvTypeArray); — возвращает список всех зарегистрированных конверсионных типов в указанном конверсионном семействе.
Процедуры procedure RaiseConversionError(const AText: string; const AArgs: array of const); overload;
procedure RaiseConversionError(const AText: string); overload; — поднимают ECONVERSIONERROR исключение.
Вы не должны вызывать этот метод в своих приложениях.
Однако вы можете вызывать исключение ECONVERSIONERROR для конверсионных типов, которые вы регистрируете. Например, если единица измерения не разрешает отрицательных значений, то вы можете проверять наличие таких значений и вызывать RaiseConversionError, если будет произведена попытка запрещенного преобразования.
AText — определяет вид сообщения об ошибке для вашего исключения.
AArgs — список аргументов для спецификаторов формата в AText.
Функция function RegisterConversionFamily(const ADescription: string): TConvFamily; — регистрирует новое конверсионное семейство и возвращает его идентификатор.
Когда вы регистрируете новое конверсионное семейство, то можете регистрировать единицы измерения, которые принадлежат семейству, используя функцию RegisterConversionType. RegisterConversionType использует конверсионный идентификатор семейства, возвращаемый RegisterConversionFamily как аргумент.
ADescription — определяет название конверсионного семейства.
RegisterConversionFamily возвращает идентификатор для нового конверсионного семейства.
Функции function RegisterConversionType(const AFamily: TConvFamily; const ADescription: string, const AFactor: Double): TConvType; overload;
function RegisterConversionType(const AFamily: TConvFamily; const ADescription: string, const AToCommonProc, AFromCommonProc: TConversionProc): TConvType; overload;
function RegisterConversionType(AConvTypeInfo: TConvTypeInfo; out AType: TConvType): Boolean; overload; — производят регистрацию нового конверсионного типа и возвращают его идентификатор.
Вызывая RegisterConversionType, вы можете добавить новый конверсионный тип единицы измерения к зарегистрированному конверсионному семейству.
AFamily — идентификатор для конверсионного семейства, к которому новый конверсионный тип принадлежит. Это может быть одно из предопределенных конверсионных семейств в модуле StdConvs или значение, возвращаемое после запроса RegisterConversionFamily.
Adescription — определяет имя конверсионного типа. Как правило, это форма названия единицы измерения. Например, описание для duMeters конверсионного типа — 'Метры'.
AFactor — фактор измерения, используя который, вы можете произвести умножение, чтобы произвести преобразование в единицы конверсионного семейства. Таким образом, например, фактор для duKilometers = 1000, так как единицей для конверсионного семейства является расстояние, т.е. метры.
AToCommonProc и AFROMCOMMONPROC — функции, которые используются, когда происходят преобразования между новым конверсионным типом и единицами конверсионного семейства, и эти преобразования не могут быть выполнены простым умножением. Например, температурные измерения используют различные значения для точки отсчета от 0.
AConvTypeInfo — представляет новый конверсионный тип, включая значение ConvFamily, к которому конверсионный тип принадлежит.
Функция function StrToConvUnit(AText: string; out AType: TConvType): Double; — преобразует строковое значение в конверсионный тип.
Функции function TryConvTypeTo Family(const AType: TConvType); out AFamily: TConvFamily): Boolean; overload;
function TryConvTypeToFamily(const AFrom, ATo: TConvType; out AFamily: TConvFamily): Boolean; overload; — восстанавливают идентификатор для конверсионного семейства, с которым конверсионный тип или оба типа зарегистрированы.
TryConvTypeToFamily определяет конверсионный идентификатор семейства для семейства указанного конверсионного типа или типов. Конверсионные типы связаны с конверсионным семейством функцией RegisterConversionType, когда конверсионный тип регистрируется.
Функция function TryStrToConvUnit(AText: string; out AValue: Double; out AType: TConvType): Boolean; — полностью отменяет преобразование, выполненное функцией ConvUnitToStr.
Функция procedure UnregisterConversionFamily(const AFamily: TConvFamily); — отменяет регистрацию конверсионного семейства, предварительно зарегистрированного с использованием функции RegisterConversionFamily.
Функция procedure UnregisterConversionType(const AType: TConvType); — отменяет регистрацию конверсионного типа.
Владимир Скуратов
Компьютерная газета. Статья была опубликована в номере 21 за 2002 год в рубрике программирование :: delphi