freeing fncmaps correctly

What is the correct way to destroy a dinamically created map component in FMX? I tried it with delete and disposeof but when I created it again (after destroy) there was just a white browser without the map.
This happens on windows.

Hi,

Can you try calling DeInitialize before destroying the component?

Hello Pieter,

It doesn't help.

Can you send us a sample project?

Yes. I sent it in an e-mail.

Any news here? We've tried same, creating in runtime or creating in designtime and freeing all stuff on formdestroy seems not working right because latest when i close the main-app i get exceptions and access violations from within fncmaps ...

Can you try with the latest version?

I'll try today with next version: Latest version works without shown access violations on application.terminate. Seems that you've solved the problems.

Thanks.

The problem is not solved in all areas. Attached an exception-log with latest version:

madExcept version  : 5.1.0
callstack crc      : $0ae03308, $fee22a26, $fee22a26
exception number   : 1
exception class    : EAccessViolation
exception message  : Zugriffsverletzung bei Adresse 00413574 in Modul 'myapplication.exe'. Lesen von Adresse 00000008.

thread $684:
00413574 +010 myapplication.exe    System                      5375  +0 @IntfClear
0448466e +00e myapplication.exe    VCL.TMSFNCGeocoding          847  +1 TTMSFNCCustomGeocodingInterfacedObject.Destroy
04476841 +011 myapplication.exe    VCL.TMSFNCGeocoding.Google   129  +1 TTMSFNCGeocodingGoogleGeocoding.Destroy
00414a0d +039 myapplication.exe    System                      5375  +0 TInterfacedObject._Release
00413574 +010 myapplication.exe    System                      5375  +0 @IntfClear
00410209 +17d myapplication.exe    System                      5375  +0 @FinalizeArray
004daa12 +0be myapplication.exe    System.Generics.Collections          TListHelper.InternalDeleteRangeMRef
004dc466 +036 myapplication.exe    System.Generics.Collections          TListHelper.InternalSetCountMRef
04485346 +016 myapplication.exe    VCL.TMSFNCGeocoding         4810  +0 {System.Generics.Collections}TList<VCL.TMSFNCGeocoding.ITMSFNCCustomGeocoding>.Destroy
0040bcb8 +008 myapplication.exe    System                      5375  +0 TObject.Free
0448405a +01e myapplication.exe    VCL.TMSFNCGeocoding          687  +1 TTMSFNCGeocodingFactoryService.Destroy
00414a0d +039 myapplication.exe    System                      5375  +0 TInterfacedObject._Release
00413574 +010 myapplication.exe    System                      5375  +0 @IntfClear
04477346 +01e myapplication.exe    VCL.TMSFNCGeocoding.Google   283  +0 Finalization
0040d55e +03e myapplication.exe    System                      5375  +0 FinalizeUnits
004d2200 +054 myapplication.exe    madExcept                            InterceptFinalizeUnits
004d2210 +000 myapplication.exe    madExcept                            InterceptHalt0FinalizeUnits
0040da34 +0ac myapplication.exe    System                      5375  +0 @Halt0
04ff7771 +175 myapplication.exe    SPED3                        412 +40 initialization
75dc0417 +017 KERNEL32.DLL                                      BaseThreadInitThunk

thread $2f38:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $3e84:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $3bf0:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $43c: <priority:2>
76b4805f +4f USER32.dll             GetMessageA
004d2e39 +0d myapplication.exe    madExcept CallThreadProcSafe
004d2e9e +32 myapplication.exe    madExcept ThreadExceptFrame
75dc0417 +17 KERNEL32.DLL           BaseThreadInitThunk
>> created by thread $684 at:
71dd2db5 +00 winmm.dll

thread $3dd4: <priority:1>
004d2e39 +0d myapplication.exe    madExcept CallThreadProcSafe
004d2e9e +32 myapplication.exe    madExcept ThreadExceptFrame
75dc0417 +17 KERNEL32.DLL           BaseThreadInitThunk
>> created by thread $684 at:
72981cd4 +00 mswsock.dll

thread $3204:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $18f8:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $2250:
76358b03 +93 KERNELBASE.dll           WaitForSingleObjectEx
76358a5d +0d KERNELBASE.dll           WaitForSingleObject
004d2e39 +0d myapplication.exe      madExcept CallThreadProcSafe
004d2e9e +32 myapplication.exe      madExcept ThreadExceptFrame
75dc0417 +17 KERNEL32.DLL             BaseThreadInitThunk
>> created by thread $684 at:
742412fa +00 winspool.drv

thread $2c30:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $3158:
75dc0417 +17 KERNEL32.DLL  BaseThreadInitThunk

thread $38f4:
7635af6d +12d KERNELBASE.dll           WaitForMultipleObjectsEx
004d2e39 +00d myapplication.exe      madExcept CallThreadProcSafe
004d2e9e +032 myapplication.exe      madExcept ThreadExceptFrame
75dc0417 +017 KERNEL32.DLL             BaseThreadInitThunk
>> created by thread $684 at:
7604ab60 +000 combase.dll

thread $550:
004d2e39 +0d myapplication.exe                  madExcept CallThreadProcSafe
004d2e9e +32 myapplication.exe                  madExcept ThreadExceptFrame
75dc0417 +17 KERNEL32.DLL                         BaseThreadInitThunk
>> created by thread $684 at:
631f7d0d +00 EmbeddedBrowserWebView.dll


Hi,

We have investigated this here and can reproduce this issue, we'll apply a fix and the next update will fix this. We'll try to release an update today.

1 Like