Bonjour .

J'aurais besoin de comparer deux enregistrements, mais il me suffit de savoir s'ils sont identiques, et donc j'aimerais bien éviter d'avoir à effectuer une comparaison champs à champs. À partir d'un certain nombre, ça devient fastidieux et ça encombre le code, peut-être pour rien.

J'ai donc essayé ceci
Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
 
type
 
 { TForm1 }
 
  TForm1 = class(TForm)
 
private
  type
    TmyRecord = record
                champs_1: integer;
                champs_2: string;
                end;
 
  var
  enregistrement_1, enregistrement_2: TMyRecord;
 
  procedure Compare;
 
public
 
end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Compare;
begin
  enregistrement_1.champs_1 := 1;
  enregistrement_1.champs_2:= 'un';
  enregistrement_2.champs_1 := 10;
  enregistrement_2.champs_2:= 'dix';
  if (enregistrement_1 = enregistrement_2)
    then ShowMessage('Les enregistrement sont identiques!')
    else ShowMessage('Les enregistrement sont différents!');
end;
 
end.
mais il semble que ce ne soit pas la bonne méthode car on me dit aimablement que
unit1.pas(47,24) Error: Operator is not overloaded: "TForm1.TmyRecord" = "TForm1.TmyRecord"
Y a-t'il un opérateur ou une procédure dédié à ce type de comparaisons?

Merci d'avance pour vos réponses,

amicalement,
naute.