Мне надо портировать мою программу с Delphi на Lazarus, и это весьма сложная задача, я уже столкнулся с подводными камнями и проблемами, ответы на которые толком не гуглятся, также я задаю вопросы на форумах и не всегда мне дают ответ. Купил книгу "Основы программирования в среде Lazarus" Мансурова, начал читать, и по моему там нет ничего из того что мне нужно. Как вы находите для себя информацию про программированию в Lazarus?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> Мне надо портировать мою программу с Delphi на Lazarus, и это весьма сложная задача, я уже столкнулся с подводными камнями и проблемами, ответы на которые толком не гуглятся, также я задаю вопросы на форумах и не всегда мне дают ответ. Купил книгу "Основы программирования в среде Lazarus" Мансурова, начал читать, и по моему там нет ничего из того что мне нужно. Как вы находите для себя информацию про программированию в Lazarus?
Здравствуйте, Khimik, Вы писали:
K>Мне надо портировать мою программу с Delphi на Lazarus, и это весьма сложная задача, я уже столкнулся с подводными камнями и проблемами, ответы на которые толком не гуглятся, также я задаю вопросы на форумах и не всегда мне дают ответ. Купил книгу "Основы программирования в среде Lazarus" Мансурова, начал читать, и по моему там нет ничего из того что мне нужно. Как вы находите для себя информацию про программированию в Lazarus?
А твои проблемы с портированием лежат именно в плоскости Лазаруса, или в плоскости Free Pascal и его библиотек?
Здравствуйте, Khimik, Вы писали:
K>Мне надо портировать мою программу с Delphi на Lazarus, и это весьма сложная задача, я уже столкнулся с подводными камнями и проблемами, ответы на которые толком не гуглятся, также я задаю вопросы на форумах и не всегда мне дают ответ. Купил книгу "Основы программирования в среде Lazarus" Мансурова, начал читать, и по моему там нет ничего из того что мне нужно. Как вы находите для себя информацию про программированию в Lazarus?
Google, просмотр сорцов и чтение документации. Ну и опыт какой-никакой.
Здравствуйте, BlackEric, Вы писали:
BE>Google, просмотр сорцов и чтение документации. Ну и опыт какой-никакой.
Каких сорцов и какой документации?
BE>Вы все еще не перевели проект? В чем у вас затык?
У меня например такая проблема: возникает странная ошибка circular unit reference на модулях, входящих в VCL. Я обнаружил что она пропадает, если все модули проекта перенести в один каталог. Но мне хочется держать модули в разных каталогах, т.к. у меня есть библиотеки для разных проектов, ещё компоненты, для них нужны отдельные каталоги.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
R>У лазаря >открытый код. Это все.
Его реально запустить из-под отладчика, чтобы показал call stack на ошибке >circular unit reference на модулях, входящих в VCL
?
Здравствуйте, Khimik, Вы писали:
BE>>Вы все еще не перевели проект? В чем у вас затык?
K>У меня например такая проблема: возникает странная ошибка circular unit reference на модулях, входящих в VCL. Я обнаружил что она пропадает, если все модули проекта перенести в один каталог. Но мне хочется держать модули в разных каталогах, т.к. у меня есть библиотеки для разных проектов, ещё компоненты, для них нужны отдельные каталоги.
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, BlackEric, Вы писали:
BE>>Google, просмотр сорцов и чтение документации. Ну и опыт какой-никакой.
K>Каких сорцов и какой документации?
По нему даже книга есть, хоть и устарела: Free Pascal и Lazarus: Учебник по программированию
BE>>Вы все еще не перевели проект? В чем у вас затык?
K>У меня например такая проблема: возникает странная ошибка circular unit reference на модулях, входящих в VCL. Я обнаружил что она пропадает, если все модули проекта перенести в один каталог. Но мне хочется держать модули в разных каталогах, т.к. у меня есть библиотеки для разных проектов, ещё компоненты, для них нужны отдельные каталоги.
Если после Рождества будет актуально, то напишите в личку. Возможно возьмусь за перевод. До НГ загрузка 100%.
Здравствуйте, rudzuk, Вы писали:
O>> >circular unit reference на модулях, входящих в VCL
O>> ?
R>Ему ранее уже предлагали код показать, но это, видимо, не очень интересно. Интереснее всякую дурь в непрофильных топиках на кывте обсуждать.
Я же не могу показать весь свой код. А когда я убрал эту ошибку в своём коде (переместил uses Forms из inteface в implementation), возникла ещё более странная ошибка:
dialogs.pp(10,66) Fatal: Circular unit reference between Dialogs and Forms
Dialogs и Forms — это не мой код, а VCL. Похоже на баг в Lazarus.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> R>Ему ранее уже предлагали код показать, но это, видимо, не очень интересно. Интереснее всякую дурь в непрофильных топиках на кывте обсуждать.
K> Я же не могу показать весь свой код.
Можно было попытаться воспроизвести проблему на другом проекте. Можно было начать новый проект и постепенно подключать к нему свои модули. Блин, за пять месяцев можно было найти массу вариантов...
Здравствуйте, rudzuk, Вы писали:
K>> R>Ему ранее уже предлагали код показать, но это, видимо, не очень интересно. Интереснее всякую дурь в непрофильных топиках на кывте обсуждать.
K>> Я же не могу показать весь свой код.
R>Можно было попытаться воспроизвести проблему на другом проекте. Можно было начать новый проект и постепенно подключать к нему свои модули. Блин, за пять месяцев можно было найти массу вариантов...
Мне казалось, я могу найти программиста, который за деньги на пальцах мне всё разжуёт, так что не придётся тратить на это нервную энергию. А так приходится копаться самостоятельно.
Я создал проект helloword, который использует один модуль из моей библиотеки, и автопортировал его на Lazarus. Он не запускался, всё та же ошибка. Потом я понял, что если убрать из каталога с модулями (моя библиотека) все модули кроме этого который используется, то проект компилируется. Копирую в каталог модули обратно — снова не компилируется. Я очень не понимаю саму эту идеологию — такое ощущение что Lazarus компилирует все модули, прописанные в Проект/Параметры компилятора/Пути/Другие модули. Зачем он это делает, если эти модули в конкретном проекте не используются?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> R>Можно было попытаться воспроизвести проблему на другом проекте. Можно было начать новый проект и постепенно подключать к нему свои модули. Блин, за пять месяцев можно было найти массу вариантов...
K> Мне казалось, я могу найти программиста, который за деньги на пальцах мне всё разжуёт, так что не придётся тратить на это нервную энергию.
Тебе, помнится, человек помощь предлагал, чего ты с ним не связался?
K> Я создал проект helloword, который использует один модуль из моей библиотеки, и автопортировал его на Lazarus. Он не запускался, всё та же ошибка.
Сделал бы руками, без автопортирования.
K> Я очень не понимаю саму эту идеологию — такое ощущение что Lazarus компилирует все модули, прописанные в Проект/Параметры компилятора/Пути/Другие модули.
Здравствуйте, rudzuk, Вы писали:
R>Тебе, помнится, человек помощь предлагал, чего ты с ним не связался?
Он куда-то пропал.
K>> Я очень не понимаю саму эту идеологию — такое ощущение что Lazarus компилирует все модули, прописанные в Проект/Параметры компилятора/Пути/Другие модули.
R>Он этого не делает.
Вы серьёзно? Я проверил ещё раз: нажимаю F9 или Ctrl-F9 — всё нормально. Перехожу в Far, копирую один модуль в каталог библиотеки, возвращаюсь в Lazarus, нажимаю Ctrl+F9, появляется вкладка с этим модулем и сообщение об ошибке, что не хватает другого модуля, который используется в этом скопированном модуле. Иду в Far, удаляю этот модуль, в Lazarus закрываю его вкладку и нажимаю Ctrl+F9 — снова всё ок.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> R>Тебе, помнится, человек помощь предлагал, чего ты с ним не связался?
K> Он куда-то пропал.
ЛюциферНоворос, ты куда пропадал?
K> K>> Я очень не понимаю саму эту идеологию — такое ощущение что Lazarus компилирует все модули, прописанные в Проект/Параметры компилятора/Пути/Другие модули.
K> R>Он этого не делает.
K> Вы серьёзно? Я проверил ещё раз: нажимаю F9 или Ctrl-F9 — всё нормально. Перехожу в Far, копирую один модуль в каталог библиотеки, возвращаюсь в Lazarus, нажимаю Ctrl+F9, появляется вкладка с этим модулем и сообщение об ошибке, что не хватает другого модуля, который используется в этом скопированном модуле. Иду в Far, удаляю этот модуль, в Lazarus закрываю его вкладку и нажимаю Ctrl+F9 — снова всё ок.
Такое может быть только в том случае, если новый модуль имеет конфликт имени с уже используемым модулем.
Здравствуйте, rudzuk, Вы писали:
K>> Вы серьёзно? Я проверил ещё раз: нажимаю F9 или Ctrl-F9 — всё нормально. Перехожу в Far, копирую один модуль в каталог библиотеки, возвращаюсь в Lazarus, нажимаю Ctrl+F9, появляется вкладка с этим модулем и сообщение об ошибке, что не хватает другого модуля, который используется в этом скопированном модуле. Иду в Far, удаляю этот модуль, в Lazarus закрываю его вкладку и нажимаю Ctrl+F9 — снова всё ок.
R>Такое может быть только в том случае, если новый модуль имеет конфликт имени с уже используемым модулем.
Проверил ещё раз. Создаю проект helloworld — он компилируется. Добавляю через Проект/Параметры компилятора/Пути/Другие модули каталог с моей библиотекой, и при компиляции всплывает ошибка, при этом открывается вкладка с одним из модулей в этом каталоге. Видимо там компилируются все модули из этого каталога.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> R>Такое может быть только в том случае, если новый модуль имеет конфликт имени с уже используемым модулем.
K> Проверил ещё раз. Создаю проект helloworld — он компилируется. Добавляю через Проект/Параметры компилятора/Пути/Другие модули каталог с моей библиотекой, и при компиляции всплывает ошибка, при этом открывается вкладка с одним из модулей в этом каталоге. Видимо там компилируются все модули из этого каталога.
Здравствуйте, Khimik, Вы писали:
K>Мне надо портировать мою программу с Delphi на Lazarus, и это весьма сложная задача, я уже столкнулся с подводными камнями и проблемами, ответы на которые толком не гуглятся, также я задаю вопросы на форумах и не всегда мне дают ответ.
А недаром говорят умные люди: не связывайтесь с фреймворками, у которых комьюнити — 3 с половиной человека. Любая технология прежде всего сильна своим комьюнити, где можно спросить, уточнить, узнать ценные сведения.
Здравствуйте, magnum2005, Вы писали:
m> А недаром говорят умные люди: не связывайтесь с фреймворками, у которых комьюнити — 3 с половиной человека. Любая технология прежде всего сильна своим комьюнити, где можно спросить, уточнить, узнать ценные сведения.