SASGIS

Веб-картография и навигация

Портирование исходников в Delphi 10.1 Berlin

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

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

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение vdemidov » 23 июн 2016, 01:13

DJ VK писал(а):Собрал проект. Ни одного дефайна за пределами uses не понадобится. да и там можно без условной компиляции добавить.
uses Compatibility. (и все.)

Ну, ждем пулреквеста.
PS: Еще функциям inline луше добавить на всякий случай. Ну и Compatibility в условную компиляцию как во всех остальных местах, где он используется.
PPS: Хотя нет, так не катит. Нужно что бы Compatibility использовался только в старых версиях. Так что туда нужно добавлять свой аналог FormatSettings, а не наоборот (В XE2 он уже есть).
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение DJ VK » 23 июн 2016, 10:11

При запуске программа ведет себя так: :D

1) в функции TImageResamplerFactoryListStaticSimple.Create;
после inherited Create(VList.MakeStaticAndClear);
внутри destructor TInterfaceListSimple.Destroy;
выдает
Код: Выделить всё
if FRefCount < 0 then begin
    raise Exception.Create(rsDoubleFree);

два-три раза.

FRefCount = -2147483648

2)Затем валится по AV....

короче GState := TGlobalState.Create; не проходит
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение vdemidov » 23 июн 2016, 11:21

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

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение DJ VK » 23 июн 2016, 11:59

vdemidov писал(а):Значит что-то поменялось в работе с итерфейсами. Мой совет ставить XE2 становится еще более актуальным.

Всему свое время. Для начала надо попробовать собрать на стабильных xe6-xe8. И да, в xe8 ВСТРОЕННЫЙ МЕРКУРИАЛ ;)
Десятка явно еще сыровата. В версии 10.0 c++ .hpp хэдеры из компонентов vcl подключаются не все, такой кривой среды давненько не было.
Сначала сама генерит эти хедеры, а потом кричит - что это за херня такая, кто такую херню сделал, идите нафиг с таким кодом, я такой кривой почерк разобрать не могу....(С) :shock:
А работать сугубо на дельфи мне не подходит. Вот добавят скоро линукс в FMX, сначала в Delphi, потом в C++. Так через годик-два стабильное что-нибудь и получится. Зато 10.0 самая быстрая по загрузке и закрытию. (сравниваю с bcb6, xe5, xe6, xe7).
Последний раз редактировалось DJ VK 23 июн 2016, 12:11, всего редактировалось 2 раз(а).
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение zed » 23 июн 2016, 12:09

vdemidov писал(а):Мой совет ставить XE2 становится еще более актуальным.

Зачем отговариваешь человека, пускай попробует завести на 10.1. Будет очень ценный опыт.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение vdemidov » 23 июн 2016, 12:12

DJ VK писал(а):Всему свое время. Для начала надо попробовать собрать на стабильных xe6-xe8.

Ну, ждем отчетов о результатах.

DJ VK писал(а):И да, в xe8 ВСТРОЕННЫЙ МЕРКУРИАЛ ;)

Никогда не мог понять ЗАЧЕМ? Все равно диффы перед коммитом лучше просматривать в отдельном окне с возможностью выбирать отдельные изменения для добавления. И тут TortoiseHg вне конкуренции.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение zed » 23 июн 2016, 12:13

По интерфейсам кое-что нагуглилось (были изменения между XE2 и XE3): http://stackoverflow.com/questions/2264 ... e-counting

Там интересный комментарий в примере кода:
Код: Выделить всё
AA := TObjectA.Create;
  // Make sure that the Supports doesn't kill the object.
  // This line of code is necessary in XE2 but not in XE4
  AA._AddRef;
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение vdemidov » 23 июн 2016, 12:32

zed писал(а):По интерфейсам кое-что нагуглилось (были изменения между XE2 и XE3): http://stackoverflow.com/questions/2264 ... e-counting

Там интересный комментарий в примере кода:
Код: Выделить всё
AA := TObjectA.Create;
  // Make sure that the Supports doesn't kill the object.
  // This line of code is necessary in XE2 but not in XE4
  AA._AddRef;

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

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение DJ VK » 23 июн 2016, 13:08

Мега Пул Реквест. 8-)
Пожалуйста обновите libs . ИМХО я дольше ставить все буду и разбираться как меркуриал настроить (все давно позабыто).
Даю ссылки на новые версии. Попробуйте собрать с ними проект. Если нововведения на работе программы не сказались, замените репозитории.
Это не пул реквест обычный даже, а замена репозиториев довольно значительная.
ПОСЛЕ этого я уже скажу, что еще хотят новые версии.

1) https://github.com/SynEdit/SynEdit
+ сразу подменить в нем SynEditJedi.inc (ибо сильно староватый)
https://github.com/project-jedi/jedi/bl ... r/jedi.inc

2) https://github.com/remobjects/pascalscript

3) https://github.com/synopse/mORMot

4) EWB:
подменить в нем EWB_jedi.inc
https://github.com/project-jedi/jedi/bl ... r/jedi.inc

p/s/ alcinoe есть тут
https://sourceforge.net/p/alcinoe/code/HEAD/tree/
работает в новых дельфи, но функционал отличается от используемого в программе.
пропатчим тот что есть(работает - ничего не трогай) или новый - решать не мне.

p/p/s/ Как настроить меркуриал чтобы не было потом вопросов?
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Портирование исходников в Delphi 10.1 Berlin

Сообщение DJ VK » 23 июн 2016, 13:36

zed писал(а):По интерфейсам кое-что нагуглилось (были изменения между XE2 и XE3): http://stackoverflow.com/questions/2264 ... e-counting

Там интересный комментарий в примере кода:
Код: Выделить всё
AA := TObjectA.Create;
  // Make sure that the Supports doesn't kill the object.
  // This line of code is necessary in XE2 but not in XE4
  AA._AddRef;


Под XE8 та же проблема. Значит любой шаг выше XE2 потребует рефакторинг программы.
:roll: Методом проб и ошибок получен первый блин комом.
Главное, что почти все компоненты легко портируются. Значит можно их обновить (дабы продолжать поиски), но собирать пока на xe2.
Когда будут пропатчены компоненты и библиотеки, и добавлен FormatSettings в Compatibility.pas собрать мсожно будет пробовать на любом компиляторе.
Я совсем не пользуюсь интерфейсами, и как они работают, или должны работать - не в курсе. Тут я ничем не помогу, кроме погуглить.
Последний раз редактировалось DJ VK 23 июн 2016, 13:41, всего редактировалось 1 раз.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Пред.След.

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

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

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