Вопросы по исходному коду

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: Вопросы по исходному коду

Сообщение vdemidov » 09 дек 2016, 17:14

DJ VK писал(а):А в программе наоборот, класс геометрии мультиточки и нету класса геометрии точки.

Как нету? TGeometryLonLatPoint в том же файле.
А про TGeometryLonLatMultiPoint я забыл, но ее поддержки в базе все равно нет и метка с такой геометрией скорее всего просто потеряется. Оно для других целей там живет. А в метках не доделано.
Хотя могу ошибаться. Нужно проверять.

DJ VK писал(а):это я так понимаю если напрямую делать не используя TGeometryLonLatFactory

Но тогда,опять же, придется самому хеши считать. Так что проще с фабрикой.
DJ VK писал(а):TVectorItemSubsetBuilderFactory Create

Лучше получать уже готовый.

DJ VK писал(а):Это линейная структура. а как сделать разветвленную ?

А разветвленная делается при помощи TVectorItemTree. При создании он получается метки текущего уровня и все подуровни.

DJ VK писал(а):мне в итоге нужны отдельные подкатегории для каждого уровня иерархии.

Ну вот и создавайте TVectorItemTree для каждого узла каждого уровня.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1686
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по исходному коду

Сообщение DJ VK » 13 дек 2016, 14:36

геометрия geojson вроде уже должна парситься, проверить осталось только.
С деревом же пока ничего не получается.

1. куда засовывать название подкатегории (локальную папку метки)?

2. В примерах везде дерево создается одновременно с присваиванием уже готовых ветвей
Код: Выделить всё
VSubTree := TVectorItemTree.Create(
      AName,
      VFolder.FVectorDataItemsResultBuilder.MakeStaticAndClear,
      VFolder.FSubTree.MakeStaticAndClear
    );

А как сделать динамическое дерево? Мне надо постоянно проверять граф дерева и доращивать по мере надобности его ветви в нужных местах. И у меня предчувствие, что после MakeStaticAndClear еще можно дотянуться до отдельных веток-листьев и поменять им имя и описание, а вот структуру менять будет неправильно.
То есть как для TVectorItemTree сделать аналоги AddNode(AddObject) и AddChildNode(AddChildObject), вызываемые после Create.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1467
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 298 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 13 дек 2016, 15:00

DJ VK писал(а):1. куда засовывать название подкатегории (локальную папку метки)?

Код: Выделить всё
VSubTree := TVectorItemTree.Create(
AName,
VFolder.FVectorDataItemsResultBuilder.MakeStaticAndClear,
VFolder.FSubTree.MakeStaticAndClear
);

AName это и есть название подкатегории.
DJ VK писал(а):А как сделать динамическое дерево? Мне надо постоянно проверять граф дерева и доращивать по мере надобности его ветви в нужных местах. И у меня предчувствие, что после MakeStaticAndClear еще можно дотянуться до отдельных веток-листьев и поменять им имя и описание, а вот структуру менять будет неправильно.
То есть как для TVectorItemTree сделать аналоги AddNode(AddObject) и AddChildNode(AddChildObject), вызываемые после Create.

Никак. Отдельные метки, наборы меток и поддеревья - это иммутабельные структуры. Как только они созданы менять их больше нельзя. Поэтому код создания TVectorItemTree приведенный выше нужно вызывать только тогда когда все под-дерево построено - построены поддеревья для вложенных категорий и построен список меток текущего уровня
VFolder.FVectorDataItemsResultBuilder и VFolder.FSubTree как раз и имеют метод add.
Если дерево нужно редактировать в процессе разбора - значит пользуемся своими деревьями.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1686
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по исходному коду

Сообщение netsky » 30 май 2017, 13:24

Доброго времени суток!

Есть пара вопросов.
1) Где прописаны имена датчиков отображаемые в панеле датчиков?
2) Где прописывается версия программы, которая отображается в заголовке окна?

Спасибо.
netsky
Новичок
 
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 30 май 2017, 14:02

netsky писал(а):1) Где прописаны имена датчиков отображаемые в панеле датчиков?

В файле u_SensorListStuped.pas для каждого датчика создается TStringConfigDataElementWithDefByStringRec, которому передается соответствующая ресурсная строка.

netsky писал(а):2) Где прописывается версия программы, которая отображается в заголовке окна?

А зачем вам?
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

За это сообщение автора vdemidov поблагодарил:
netsky (31 май 2017, 18:34)
Рейтинг: 5.26%
 
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1686
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по исходному коду

Сообщение netsky » 30 май 2017, 14:29

vdemidov писал(а):В файле u_SensorListStuped.pas для каждого датчика создается TStringConfigDataElementWithDefByStringRec, которому передается соответствующая ресурсная строка.

Нашёл только англ названия, а где русские?

vdemidov писал(а):А зачем вам?

Хочу собрать подпиленную под себя версию и не нравиться, что написано Custom -=Debug=- :D :roll:
netsky
Новичок
 
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 30 май 2017, 14:36

netsky писал(а):Нашёл только англ названия, а где русские?

Как это ни странно, но в файле локализации. Po файлы живут в отдельном репозитории. Компилируются потом отдельным инструментом в mo
netsky писал(а):Хочу собрать подпиленную под себя версию и не нравиться, что написано Custom -=Debug=-

Все правильно написано. Это будет именно Custom сборка. А когда соберете в релиз, то пропадет Debug
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1686
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по исходному коду

Сообщение netsky » 30 май 2017, 14:48

vdemidov писал(а):Как это ни странно, но в файле локализации. Po файлы живут в отдельном репозитории. Компилируются потом отдельным инструментом в mo


Значит я правильно думал :D . Просто хотел "азимут" поменять на "курс". Так как-то более привычнее. Хотя в англ написано "Course".

netsky писал(а):Все правильно написано. Это будет именно Custom сборка. А когда соберете в релиз, то пропадет Debug


А мне не нужен релиз, хотелось бы оставить Custom, но без -=Debug=-. :roll:
netsky
Новичок
 
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Вопросы по исходному коду

Сообщение vdemidov » 30 май 2017, 15:46

netsky писал(а):А мне не нужен релиз, хотелось бы оставить Custom, но без -=Debug=-. :roll:

Ну, тогда ищите. Я сам не в курсе. Оно должно добавляться автоматически по наличию дефайна Debug
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1686
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по исходному коду

Сообщение netsky » 30 май 2017, 18:23

vdemidov писал(а):Ну, тогда ищите. Я сам не в курсе. Оно должно добавляться автоматически по наличию дефайна Debug

Нашёл. В Src\System\u_BuildInfo.pas
Может кому пригодиться.
netsky
Новичок
 
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2