На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Не понятное ведение программы

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Не понятное ведение программы
 
Добрый день, программа работает:
1. Подгружаю карту
2. Сделал цыкл поиска карт в папке и в случае успеха предлагает загрузить найденную в этой папке карту
3. После того как карта погрузилась с неё автоматически копируются объекты на ранее загруженную карту
4. Отключается подгруженная карта
Проблема:
Один раз карта загрузится и объекты перененсутся, а другой раз объекты не переносятся но цикл по переносу объектов выполняется и говорит что все хорошо. Я понять не могу почему так ведёт программа.
Если не понятно объяснил, то вечером запишу видео и скину ссылку на видео.  
 
Цитата
Паук написал:
Один раз карта загрузится и объекты перененсутся, а другой раз объекты не переносятся но цикл по переносу объектов выполняется и говорит что все хорошо. Я понять не могу почему так ведёт программа.

Цикл организовали Вы, Вам и решать, почему он "говорит что все хорошо", а объекты не переносит.
Для того, чтобы "не говорил, что всё хорошо" когда на самом деле не хорошо, очень рекомендуется обрабатывать коды возврата от функций.

Постарайтесь локализовать проблему и тогда пытаться ее решать. Цикл поиска карт в папке и пр., и т.п. - усложняют поиск ошибки.

Как выполняется копирование? Судя по описанию, с первой карты объекты копируются нормально, а с последующих - нет?
Посмотрите как у Вас осуществляется переход после обработки одной карты к обработке другой. Возможно, остаются какие-то условия поиска/отбора объектов от предыдущей карты, которые на текущую карту не действуют.
Либо идет попытка использовать экземпляр класса работы с объектом карты, созданный для одной карты, при обработке другой.
Вариантов много.
 
вот ссылка на видео
https://www.youtube.com/watch?v=cHVm3IM_ZTo&feature=youtu.be
описываю видео тут я сделал три способа загрузки :
первый способ:
я вначале подгрузил основную карту и никуда не кликая у меня появляется входящая карта я ее загружаю в итоге ничего не происходит
второй раз я кликаю в то место где будет помещен знак обстановки и обстановка переносится радиус поиска у меня стандартный стоит 4 пикселя вариант с 100000 пикселей пробывал не работает
третьим способом я кликаю по карте перед загрузкой в далекое место на карте и в итоге копирование обьекта  не происходит
вот цыкл копирования объектов  
siteIn и siteOut определяются зарянее  
Код
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
      //Процесс копирования объектов
      //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      frmFind.MapFindObject.First;
          while not frmFind.MapFindObject.Eof do //копируется пока не дойдет до последнего найденного обьекта
            begin
              if frmFind.MapFindObject.MapObj.SiteNumber = siteIn then
                  begin
                    frmFind.mObj2.ObjHandle := frmFind.MapFindObject.MapObj.ObjHandle;
                    frmFind.mObj2.SetSite(siteOut);
                    frmFind.mObj2.Commit;
                  end;
              frmFind.MapFindObject.Next;
            end;
 
как видно из скриншота, что на карту которая находится под 5 индексом на нее переносится объекты, а 6 следовательно это карта является подгружаемой и с нее переноятся обьекты
 
Цитата
Паук написал:
вот ссылка на видео  https://www.youtube.com/watch?v=cHVm3IM_ZTo&feature=youtu.be  описываю видео тут я сделал три способа загрузки :первый способ:я вначале подгрузил основную карту и никуда не кликая у меня появляется входящая карта я ее загружаю в итоге ничего не происходитвторой раз я кликаю в то место где будет помещен знак обстановки и обстановка переносится радиус поиска у меня стандартный стоит 4 пикселя вариант с 100000 пикселей пробывал не работаеттретьим способом я кликаю по карте перед загрузкой в далекое место на карте и в итоге копирование обьекта  не происходит вот цыкл копирования объектов  

Легче в понимании проблемы не стало. Скорее наоборот...

Визуально - Ваш "цЫкл" копирования объектов должен работать.
Но проблема того, что при каких-то условиях копирование выполняется, а при каких-то нет (прошу прощения, это единственное, что я понял из описания проблемы), заключается как раз в формировании этих самых условий.

Еще раз повторяю: проверяйте коды возврата.
Когда установили условия поиска объектов, можно сразу спросить у MapFind количество объектов, отвечающих этим условиям.
Commit также возвращает результат, который надо анализировать.
И так везде.
Это поможет понять, где именно программа начинает работать не так, как Вы планировали.

И еще раз повторюсь: локализуйте проблему. Когда всё "свалено в кучу" очень трудно понять, что именно пошло не так.
Вынесите проблемынй код в отдельное приложение и упростите его до максимума.
Посмотрите, как пишутся юнит-тесты.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности