Добрый день, написал легенду карты, на подобии Вашей(конечно использовал SDK)))). Все работает хорошо, но при закрытии слоя и чиcтки select(освобождение памяти с FreeMemory() как в SDK) и , в дальнейшем, закрытии самого окна отображения(компонент MapScreen лежит на дочерней MDI форме, сообщение типа MT_CHANGEDATA посылаю) выскакивает сообщение об ошибке в mapselt.pas, какие могут быть варианты, надо ли еще что-то посылать компоненту MapScreen? слой зарываю функцией mapCloseSiteForMap. GTK 11.14, dll 24/05/17 , c builder 6
Код |
---|
procedure TMapSelect.MapAction(aAction : TMapActionType); ... if (aAction = acBeforeClose) AND (FMV.MapHandle > 0) // Если закрыли карту then begin if FListSelect <> nil then begin for ii:=0 to FListSelect.Count-1 do if FListSelect[ii] <> nil then begin mapDeleteSelectContext(HSelect(FListSelect[ii])); FListSelect[ii] := nil; // Здесь выдает сообщение end; FListSelect.Free; FListSelect := nil; end; if FListUses <> nil then begin FListUses.Free; FListUses := nil; end; FListSelect:=TList.Create; FListSelect.Add(nil); FListUses:=TList.Create; FListUses.Add(Pointer(true)); exit; end; // Если закрыли карту |