Habs getestet und macht was es soll.
Gibts da noch was zu beachten oder passt der Code so?
Delphi-Quellcode:
function tmarkerhelper.getAddressGGUID : string;
begin
AddressGGUIDDictionary.TryGetValue(self,result);
end;
Dein Rückgabewert ist nicht initialisiert. (eigentlich doch, da String ein Managed-Type ist, aber nicht in Bezug auf diese Function)
Sowas macht Spaß, wenn getAddressGGUID z.B. in einer For-Schleife aufgerufen wird.
Delphi-Quellcode:
if not AddressGGUIDDictionary.TryGetValue(self,result) then
Result := '';
Du hast ein Speicherleck bei AddressGGUIDDictionary. Die Liste wird nicht freigegeben.
Ich weiß nicht ob Class-Constructor und Class-Destructor bei Class-Helpern möglich sind, aber es gibt ja noch Initialization und Finalization der
Unit.
Wenn TMarker von TComponent abgeleitet ist, dann könnte man noch
TComponent.FreeNotification verwenden, um automatisch die
GUID zu löschen, wenn der TMarker freigegeben wird.
https://stackoverflow.com/questions/...has-been-freed