à priori je partirais sur les RTTI pour obtenir la liste des membres du record et leur type et faire une comparaison adaptée à chaque membre.
Code:
1 2 3 4
| function RTTICompare<T>(const A, B: T): Boolean;
begin
...
end; |
voilà reste plus qu'à remplacer les "..." :D
personnellement je le ferais avec mon unité
RTTI, mais c'est possible de le faire avec celle de Delphi.
un autre approche serait de sérialiser les records en JSON et de comparer les deux chaînes obtenues...par contre je ne sais pas trop avec quelle précision les réels sont encodés.
dans mon unité
JSON c'est défini, dans la partie Delphi je ne sais pas trop comment c'est géré...mais ça doit pouvoir se faire aussi