Fr0sT-Brutal / Delphi_OSMMap

Visual control for Delphi and Lazarus to display OSM map
Mozilla Public License 2.0
65 stars 22 forks source link

Trunk to Stable ? #23

Closed ClubACNews closed 10 months ago

ClubACNews commented 10 months ago

Good morning, I installed a trunk version for FCP and Laz. Some of the components that I use from the "online Package Manager" no longer install without error. Is it possible for you to modify your component for a stable installation of FPC and Laz? Thanks

Fr0sT-Brutal commented 10 months ago

Hi! Trunk is needed for anonymous functions, it's just about a year since FPC team implemented what has been in Delphi since D2009 I suppose. And this is needed for clean code calling ReplaceTokens inside TilesProvider and inside TMapMarkList.GetComparer. It's possible to rewrite for older versions but this would be a short-time patch until they release next version. You can patch it yourself:

TReplTokenCallback = {$IFDEF CAPS_REFERENCE}reference to{$ENDIF} function(var Token: string{$IFNDEF CAPS_REFERENCE}; Vars: array of const{$ENDIF}): Boolean;

function ReplaceTokens(const Patt: string; TokenStart, TokenEnd: Char; EatUnmatched: Boolean; Callback: TReplTokenCallback{$IFNDEF CAPS_REFERENCE}; Vars: array of const{$ENDIF}): string;

inside ReplaceTokens:

if Callback(Token{$IFNDEF CAPS_REFERENCE}, Vars{$ENDIF}) then
  Result := Result + Copy(Patt, TxtBeg, PosBeg-TxtBeg) + Token

and modify the callback

also adjust TMapMarkList.GetComparer - I don't know how, just follow the interface of the method

ClubACNews commented 10 months ago

Hi, if the trunk is included in its entirety in version 3 which should not be long, that suits me too.. François