Добрый день коллеги, недавно я жаловался на странное поведение MapWinGis при загрузке карты (см. http://deeptown12.blogspot.com/2010/11/delphi-activex.html)
Так вот нашлось решения этой проблемы.
перед загрузкой карты в AddLayer нужно установить фокус на компонент ТMap и тогда ошибка не возникает.
То есть сделать что то вроде:
procedure TForm2.Button1Click(Sender: TObject);
begin
Sh := CoShapefile.Create;
IF OpenDialog1.Execute then
begin
if not Sh.Open(OpenDialog1.FileName, nil) then
ShowMessage('Ошибка загрузки карты!');
try
// Без этого будет ошибка -------------------------------------------------
Map1.Setfocus;
// ------------------------------------------------------------------------
Map1.AddLayer(sh,true);
Map1.ZoomToMaxExtents;
except
On E:Exception do
ShowMessage(E.Message);
end;
end;
end;
Такой вот костыль позволяет нормально загружать shp файл и не генерирует ошибку. После чего использование MapWinGis в Delphi становится возможным.
Комментариев нет:
Отправить комментарий