У вас и так всё нормально закручено, дело лишь с распознованием типа переменной, возможно примерно так
Код:
function Search (Value: olevariant; fFirst: integer {ещё параметр}): string;
begin
case TVarData(Value).VType of
varSmallInt,
varInteger : Result:= IntToStr(Value);
varSingle,
varDouble,
varCurrency : Result:= FloatToStr(Value);
varDate : Result:= FormatDateTime('dd/mm/yyyy', Value);
varBoolean : if Value then Result:= 'T' else Result:= 'F';
varString : Result:= Value;
else Result:= '';
end;
end;
совет из DRKB