Общий проект Delphi и Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Общий проект Delphi и Lazarus

Сообщение Vlad04 »

Кто-нибудь может что-нибудь посоветовать?
Есть большой проект на Дельфи (около 150 форм), который постоянно в работе. Есть необходимость перетащить его в Лазаря. Существует ли способ паралельной работы с файлами из обоих сред, хотя бы с кодом (формы правятся редко)?
Lisolog
новенький
Сообщения: 39
Зарегистрирован: 13.12.2007 13:24:08
Откуда: Russia, SPb

Сообщение Lisolog »

Не скажу точно, но у них даже расширения разные для юнитов:
LazarusUnit: lfm lrs o pas pas.bak ppu
delphi: ~dfm ~pas dcu dfm pas
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Vlad04
Это трудно - одновременно работать с ними в двух средах. В лазарусе у компонент есть свойства, которых нет у аналогичных от дельфи. Вопрос с расширениями файлов не так кретичен, как кажется - решается условными дерективами компиляции.
Аватара пользователя
NXP
постоялец
Сообщения: 187
Зарегистрирован: 02.01.2008 15:11:56
Откуда: Воронеж
Контактная информация:

Сообщение NXP »

Vlad04 писал(а):Существует ли способ паралельной работы с файлами из обоих сред, хотя бы с кодом (формы правятся редко)?

Я думаю, что это большой гимор
ИМХО лучше попариться и перетянуть все под лазаря, и спокойно работать с кодом :D
Года 2 назад я так тоже хотел. Потом хорошо подумал, и забил на весь Borland, теперь и не вспоминаю про него.
Borland, кстати, давно прогнулась под M$ :x
Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Сообщение Vlad04 »

Ладно, буду пробовать.
Следующий вопрос в Лазаре 9.24 с панели компонент убрали TMaskEdit, а библиотеке LCL он есть. Соответственно создать свой компонент TMaskEdit Лазарь не дает (типа такой компонент уже существует), а в проекте он активно используется (порядка 1500 раз).
Есть ли какой-нибудь способ подменить в библиотеке LCL имеющийся компонент на свой.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

в зависимоти от того насколько он там сильно испоьзуется
раскоментируй тот есть в LCL и доабатывай его под свои нужды, изменениями можешь поделиться с народом =)
Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Сообщение Vlad04 »

Attid, спасибо. Спас от огромного гимора.
Я уж думал сдублировать в Дельфи компонент TMaskEdit c именем, например, TVCLMaskEdit и поменять в проекте все включения во всех формах (повторяю около 1500 раз).
Есть еще вопрос. В Дельфи активно используется условная компиляция и необходимый вариант проекта собирается путем задания в опциях проекта спец ключей. В Лазаре в настройках проекта возможности задания таких ключей не нашел?
Также при пересборке ИДЕ (при включении компонент) периодически начинает требовать winspool32.drv и не грузит среду. Помогает запуск резервной копии Лазаря и пересборка в режиме Cleanup All+Build. Чего ему надо?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

какая-то левая компонента сходит с ума или балуется?
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Vlad04
Есть еще вопрос. В Дельфи активно используется условная компиляция и необходимый вариант проекта собирается путем задания в опциях проекта спец ключей. В Лазаре в настройках проекта возможности задания таких ключей не нашел?

Ключи компиляции можно задавать в диалоге параметров компилятора (Проект -> Параметры компилятора) на вкладке "Другое" (поле "Параметры пользователя").
Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Сообщение Vlad04 »

alexs писал(а):какая-то левая компонента сходит с ума или балуется?

Так в том то и дело, что при пересборки среды из окна компонента переодически выдает этот прикол. Запускаешь резервную копию, выбираешь Инструменты -> Настройка сборки сборки -> CleanUp and Build. Пересобирает и работает без внесения каких-либо изменений. Очевидно настройки сборки разные.
Сегодня столкнулся с такими чудесами: взял TMaskEdit из Дельфи, вставил в Лазаря как TVCLMaskEdit - все работает замечательно. Подменяю им TMaskEdit в LCL, компилируется, вставляется, запускается и даже помещается на форму, однако при попытке изменить свойство EditMask выдает Неизвестная ошибка Runtime error 202 и убивает среду.

Максим писал(а):Ключи компиляции можно задавать в диалоге параметров компилятора (Проект -> Параметры компилятора) на вкладке "Другое" (поле "Параметры пользователя").


С каким ключем их указывать?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Vlad04 писал(а): взял TMaskEdit из Дельфи

Скорее всего отличается реализация какихто функци в дельфине и в лазаре - поэтому и глюк - смотри то что использует этот компонент и ищи отличия.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

а еще этот юнит можно взять из лазаря 9,20 или раньше, он там был вроде рабочий и перенесен из дельфи копипастом, за что и был удален как только об этом узнали.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Vlad04

С каким ключем их указывать?

С ключом -d
Например, для ключа компиляции TEST нужно указать -dTEST.

Если нужно указать несколько ключей, то -d нужно добавлять перед каждым, а сами ключи отделять пробелами, например, -dTEST1 -dTEST2 -dTEST3.
Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Сообщение Vlad04 »

alexs писал(а):Скорее всего отличается реализация какихто функци в дельфине и в лазаре - поэтому и глюк - смотри то что использует этот компонент и ищи отличия.


Непохоже, потому что переименовал предка, взятого из дельфи, в TVCLCustomMaskEdit и вставил в файл старый (кастрированный) TCustomMaskEdit. Соответственно TMaskEdit стал наследником TVCLMaskEdit, а имеющиеся в LCL компоненты по прежнему ссылались на TCustomMaskEdit. И все работает на ура. Очевидно проблема с ресурсным файлом LCL.
Аватара пользователя
Vlad04
новенький
Сообщения: 80
Зарегистрирован: 11.12.2007 20:11:19
Откуда: Караганда. Казахстан

Сообщение Vlad04 »

Чем отличается использование класса TFrame в Delphi и Lazarus. При конвертировании проекта на одну из форм выдает:

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

  inline DepFrame: TDepFrame
    Left = 9
    Top = 14
    Width = 513
    Height = 396
    TabOrder = 3
  end

INHERITED expected on line 59
Ответить