System.Variants.TCustomVariantType.LeftPromotion

提供:RAD Studio API Documentation

Delphi

function LeftPromotion(const V: TVarData; const Operator: TVarOp;  out RequiredVarType: TVarType): Boolean; virtual;

C++

virtual bool __fastcall LeftPromotion(const TVarData &V, const int Operator, /* out */ System::Word &RequiredVarType);

プロパティ

種類 可視性 ソース ユニット 親
function protected
System.Variants.pas
System.Variants.hpp
System.Variants TCustomVariantType

説明

二項演算の左側の引数を別の型に強制的にキャストするかどうかを示します。

LeftPromotion メソッドをオーバーライドすると,二項演算の左側の引数を暗黙にほかの型にキャストしてから演算を実行できます。LeftPromotion が呼び出されるのは,二項演算または比較演算の右側の Variant がこの Variant 型であり,左側の引数が以下の場合です。

左側の引数が組み込み Variant 型

左側の引数がカスタム Variant 型で,右側の引数のこの Variant 型と一緒に使って問題がない

V は,演算の左側の引数に対する TVarData レコードです。

Operator は,演算の種類を示します。次の表に,演算子の種類を示します。



値 オペレーション

opAdd

加算

opSubtract

減算

opMultiply

乗算

opDivide

浮動小数点の除算

opIntDivide

整数除算

opModulus

剰余

opShiftLeft

左へ移動

opShiftRight

右へ移動

opAnd

ビット論理積

opOr

ビット論理和

opXor

ビット排他的論理和

opCompare

任意の比較処理



RequiredVarType は,演算を実行する前に左側の引数をキャストする Variant 型コードを返します。左側の引数を変更せずに演算が実行される場合,RequiredVarType は,V の VType 項目を返します。

左側の引数が RequiredVarType にキャストできることを前提に,TCustomVariantType の下位クラスが(BinaryOp,CompareOp,または Compare メソッドを使って)演算を実行できる場合,LeftPromotion は true を返します。TCustomVariantType の下位クラスが演算を実行できない場合は,false が返されます。

TCustomVariantType での LeftPromotion は,RequiredVarType として VarType プロパティを返し,true を返します。

関連項目