RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
TCustomVariantType.LeftPromotion Method

Indicates whether the left argument to a binary operation should be coerced to a different type.

Pascal
function LeftPromotion(const V: TVarData; const Operator: TVarOp; out RequiredVarType: TVarType): Boolean; virtual;
C++
virtual __fastcall Boolean LeftPromotion(const TVarData V, const TVarOp Operator, TVarType RequiredVarType);

Override LeftPromotion to indicate when the left argument for a binary or comparison operation should be implicitly cast to another type before performing the operation. LeftPromotion is called when the right-hand Variant in a binary or comparison operation is of this Variant type and  

The left-hand argument is a built-in Variant type. 

The left-hand argument is a custom Variant type that does not indicate any problem with this Variant type for the right-hand argument.  

V is the TVarData record for the left-hand argument of the operation. 

Operator indicates the type of operation. It can be any of the operators in the following table:

Value 
Operation 
opAdd  
addition  
opSubtract  
subtraction  
opMultiply  
multiplication  
opDivide  
floating-point division  
opIntDivide  
integer division  
opModulus  
remainder  
opShiftLeft  
left shift  
opShiftRight  
right shift  
opAnd  
bitwise and  
opOr  
bitwise or  
opXor  
bitwise exclusive or  
opCompare  
any comparison operation  

RequiredVarType returns the Variant type code for the type to which the left-hand argument should be cast before performing the operation. If the operation can proceed with the left-hand argument left as-is, RequiredVarType returns the VType field of V. 

LeftPromotion returns true if the TCustomVariantType descendant can perform the operation (using the BinaryOp, CompareOp, or Compare method) assuming the left-hand argument can be cast to RequiredVarType. It returns false if the TCustomVariantType descendant can't perform the operation. 

As implemented in TCustomVariantType, LeftPromotion returns the VarType property as RequiredVarType, and returns true. 

 

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!