On 10.03.2015 22:23, aradeonas wrote:
Hi,
How can I compare two record?
Like this :

    type
    TRec=record
    na:string;
    end;

    var
    R1,R2:TRec;
    Begin
    R1.na:='A';
    R2.na:='B';
    if R1<>R2 then
    Showmessage('Error')

At the declaration of TRec add this:

=== code begin ===

operator = (aLeft, aRight: TRec): Boolean;

=== code end ===

and then implement it like this:

=== code begin ===

operator = (aLeft, aRight: TRec): Boolean;
begin
  Result := aLeft.na = aRight.na;
end;

=== code end ===

Alternatively you can declare the operator inside TRec if you enable modeswitch advancedrecords:

=== code begin ===
type
  TRec = record
    na: String;
    class operator = (aLeft, aRight: TRec): Boolean;
  end;

=== code end ===

Implementation:

=== code begin ===

class operator TRec.=(aLeft, aRight: TRec): Boolean;
begin
  Result := aLeft,na = aRight.na;
end;

=== code end ===

This /should/ work though I did not test it by compilation.

Regards,
Sven

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to