[Lazarus] Compare record
aradeonas
aradeonas at operamail.com
Wed Mar 11 08:57:56 CET 2015
Thank you Jürgen,That is just a example but Its good to know there is
now way.
Thank you Sven for examples.I didn't know about advanced record support.
Regards,
Ara
On Tue, Mar 10, 2015, at 11:43 PM, Sven Barth wrote:
> 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 at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
http://www.fastmail.com - Choose from over 50 domains or use your own
More information about the Lazarus
mailing list