これあげーる。

 評価しない=functionの中身が呼ばれない
 MathユニットのIfThenと比較するとよくわかるニャ

 ̄ ̄∨ ̄ ̄ ̄
  ∧,,∧
 ミ,,゚Д゚彡
  ミ つ[ 三項 ]).
〜ミ ,, ミ 
  ∪∪  

function TrueValue: Integer;
begin
 Result := 1;
 ShowMessage('Trueってヨシ');
end;

function FalseValue: Integer;
begin
 Result := 0;
 ShowMessage('Falseってヨシ');
end;

type TIntFunction = function: Integer;

function IfThen(AValue: Boolean; ATrue: TIntFunction;
AFalse: TIntFunction): Integer; overload;
begin
 if AValue then
  Result := ATrue
 else
  Result := AFalse;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Button1.Caption := IntToStr(
  IfThen(True, TrueValue, FalseValue));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Button2.Caption := IntToStr(
  IfThen(False, TrueValue, FalseValue));
end;