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

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

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

Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

DJ VK писал(а):А в программе наоборот, класс геометрии мультиточки и нету класса геометрии точки.
Как нету? TGeometryLonLatPoint в том же файле.
А про TGeometryLonLatMultiPoint я забыл, но ее поддержки в базе все равно нет и метка с такой геометрией скорее всего просто потеряется. Оно для других целей там живет. А в метках не доделано.
Хотя могу ошибаться. Нужно проверять.
DJ VK писал(а):это я так понимаю если напрямую делать не используя TGeometryLonLatFactory
Но тогда,опять же, придется самому хеши считать. Так что проще с фабрикой.
DJ VK писал(а):TVectorItemSubsetBuilderFactory Create
Лучше получать уже готовый.
DJ VK писал(а):Это линейная структура. а как сделать разветвленную ?
А разветвленная делается при помощи TVectorItemTree. При создании он получается метки текущего уровня и все подуровни.
DJ VK писал(а):мне в итоге нужны отдельные подкатегории для каждого уровня иерархии.
Ну вот и создавайте TVectorItemTree для каждого узла каждого уровня.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
DJ VK
Гуру
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 80 раз
Поблагодарили: 314 раз

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

Сообщение DJ VK »

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

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

2. В примерах везде дерево создается одновременно с присваиванием уже готовых ветвей

Код: Выделить всё

VSubTree := TVectorItemTree.Create(
      AName,
      VFolder.FVectorDataItemsResultBuilder.MakeStaticAndClear,
      VFolder.FSubTree.MakeStaticAndClear
    );
А как сделать динамическое дерево? Мне надо постоянно проверять граф дерева и доращивать по мере надобности его ветви в нужных местах. И у меня предчувствие, что после MakeStaticAndClear еще можно дотянуться до отдельных веток-листьев и поменять им имя и описание, а вот структуру менять будет неправильно.
То есть как для TVectorItemTree сделать аналоги AddNode(AddObject) и AddChildNode(AddChildObject), вызываемые после Create.
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

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.
Если дерево нужно редактировать в процессе разбора - значит пользуемся своими деревьями.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
netsky
Новичок
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раза

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

Сообщение netsky »

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

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

Спасибо.
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

netsky писал(а): 1) Где прописаны имена датчиков отображаемые в панеле датчиков?
В файле u_SensorListStuped.pas для каждого датчика создается TStringConfigDataElementWithDefByStringRec, которому передается соответствующая ресурсная строка.
netsky писал(а):2) Где прописывается версия программы, которая отображается в заголовке окна?
А зачем вам?
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
netsky
Новичок
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раза

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

Сообщение netsky »

vdemidov писал(а):В файле u_SensorListStuped.pas для каждого датчика создается TStringConfigDataElementWithDefByStringRec, которому передается соответствующая ресурсная строка.
Нашёл только англ названия, а где русские?
vdemidov писал(а):А зачем вам?
Хочу собрать подпиленную под себя версию и не нравиться, что написано Custom -=Debug=- :D :roll:
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

netsky писал(а):Нашёл только англ названия, а где русские?
Как это ни странно, но в файле локализации. Po файлы живут в отдельном репозитории. Компилируются потом отдельным инструментом в mo
netsky писал(а): Хочу собрать подпиленную под себя версию и не нравиться, что написано Custom -=Debug=-
Все правильно написано. Это будет именно Custom сборка. А когда соберете в релиз, то пропадет Debug
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
netsky
Новичок
Сообщения: 6
Зарегистрирован: 05 ноя 2015, 12:17
Благодарил (а): 2 раза

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

Сообщение netsky »

vdemidov писал(а):Как это ни странно, но в файле локализации. Po файлы живут в отдельном репозитории. Компилируются потом отдельным инструментом в mo
Значит я правильно думал :D . Просто хотел "азимут" поменять на "курс". Так как-то более привычнее. Хотя в англ написано "Course".
netsky писал(а):Все правильно написано. Это будет именно Custom сборка. А когда соберете в релиз, то пропадет Debug
А мне не нужен релиз, хотелось бы оставить Custom, но без -=Debug=-. :roll:
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

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

Сообщение vdemidov »

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

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

Сообщение netsky »

vdemidov писал(а):Ну, тогда ищите. Я сам не в курсе. Оно должно добавляться автоматически по наличию дефайна Debug
Нашёл. В Src\System\u_BuildInfo.pas
Может кому пригодиться.
Ответить

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