y en el caso de registros mas complejos con varios atributos se puede aprovechar la excelente funcion
CompareMem (gracias fede ya no me la acordaba)
entonces la definicion del operados Equal te queria asi:
Código Delphi
[-]class operator TCliente.Equal( c1, c2 : TCliente): bool;
begin
Result := CompareMem(@c1, @c2, SizeOf(TCliente));
end;
y para el caso del operador <>
Código Delphi
[-]class operator TCliente.NotEqual( c1, c2 : TCliente): bool;
begin
Result := not (c1 = c2);
end;
nunca entendi porque este no es el efecto por defecto
y ahora si tienes exactamente la sentecia que querias arriba:
Código Delphi
[-]if ClienteActual <> clienteViejo then grabar;