Difference between revisions of "TFPGMap"
From Free Pascal wiki
Jump to navigationJump to searchLine 55: | Line 55: | ||
==See also== | ==See also== | ||
− | * https://www.freepascal.org/docs-html/current/rtl/fgl/tfpgmap.html | + | * [https://www.freepascal.org/docs-html/current/rtl/fgl/tfpgmap.html Free Pascal docs on TFPGMap] |
Revision as of 18:40, 13 November 2022
TFPGMap is part of the FGL
(Free Generics Library).
Example
Here is an example provided by forum user Remy Lebeau:
uses
..., fgl;
var
Dict: TFPGMap<string, integer>;
Value: Integer;
begin
Dict := TFPGMap<string, integer>.Create;
try
Dict.Add('VarName', 99);
...
Value := Dict['VarName'];
...
finally
Dict.Free;
end;
end;
IndexOfData
By default TFPGMap<>
does not provide a comparison for the Data type. So method IndexOfData will not find anything. You need to provide it by assigning the OnDataCompare event:
uses
StrUtils, fgl;
{$R *.lfm}
type
TMyTest = specialize TFPGMap<PtrInt, String>;
...
public
property MyTest: TMyTest read FMyTest write SetMyTest;
end;
...
function CompareStringFunc(const aData1, aData2: String): Integer;
begin
Result := AnsiCompareStr(aData1, aData2);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: PtrInt = 0;
begin
FMyTest:= TMyTest.Create;
FMyTest.OnDataCompare := @CompareStringFunc;