三項演算子IfThenの使い方
79 TreeParameterOperator 動作確認 Delphi2007 更新日 2008/02/04(月)

VBではIIFという三項演算子は
DelphiではIfThen関数として実装されています。

HELPによると定義は次の通り

    function IfThen(AValue: Boolean; const 
      ATrue: Integer; const AFalse: Integer = 0): Integer; overload;

Integer以外にStringなどでも実装されています。

AValueがTrueの場合、戻り値にATrueの値、
AValueがFalseの場合、戻り値にAFalseの値が返されますが

いわゆる厳密な三項演算子ではないので
ATrue、AFalseに関数が指定された場合は
IfThen関数が呼び出された段階で
どちらの関数も呼び出されることになります。

つまり、
────────────────────
function TestA: Integer;
begin
  ShowMessage('TestAが呼び出されました');
  Result := 1;
end;

function TestB: Integer;
begin
  ShowMessage('TestBが呼び出されました');
  Result := 2;
end;

var
  Value: Integer;
begin
  Value := IfThen(True, TestA, TestB);
end;
────────────────────
このようにすると、
TestA、TestB、両方でShowMessageが呼ばれて
Valueに1が入ります。