Delphi-Mocks presenta dos funciones:
function CompareValue(const Left,Right : TValue): Integer;
function SameValue(const Left, Right: TValue): Boolean;
Con el ayudante récord para TValue también se puede hacer TValue.Equals(TValue);
licencia bajo los términos de Apache y bajo el permiso de Stefan Glienke.
Aquí está la fuente original de Stefan: delphisorcery.
Si necesita ampliar la funcionalidad de las variantes, añadir:
function TValueHelper.IsVariant: Boolean;
begin
Result := TypeInfo = System.TypeInfo(Variant);
end;
e insertar
if Left.IsVariant and Right.IsVariant then
begin
Result := Left.AsVariant = Right.AsVariant;
end else
después de la comparación isString en la función SameValue
.
Creo que DeHL (ahora descontinuado) tiene algunas cosas para hacer esto. No sé detalles. http://code.google.com/p/delphilhlplib/ – awmross