On Tue, 15 Feb 2022, James Richters wrote:
Thanks for the elegant solution Michael, but I'm having some issues
implementing it.
I'm getting:
pastep.pas(28651,10) Warning: Function result does not seem to be set
28650 // Custom compare function
28651 function CompareValues(List: TStringList; Index1, Index2: Integer):
Integer;
28652
28653 begin
28654
Result:=CompareText(List.ValueFromIndex[Index1],List.ValueFromIndex[Index2])
28655 end;
pastep.pas(28797,65) Error: Incompatible type for arg no. 1: Got "Pointer", expected
"<procedure variable type of function(TStringList;LongInt;LongInt):LongInt;Register>"
28797 AllLogLastRunStringList.CustomSort(@CompareValues);
The unit I'm putting this in has:
Unit PAStep;
{$Mode TP}{$I-}
Ehmmm..
TStringList is not supposed to be used in mode TP, and Result likewise should not be
available IIRC...
{$modeswitch exceptions}
{$R+}
I can fix the first error with:
28654
CompareValues:=CompareText(List.ValueFromIndex[Index1],List.ValueFromIndex[Index2])
{$Mode TP} doesn't like using 'result'
But I have no idea how I could fix the second error. Any ideas?
Try to remove the @
Michael.
_______________________________________________
fpc-pascal maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal