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

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

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

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

Сообщение Vlad04 » 14.01.2008 17:43:26

Кто-нибудь может что-нибудь посоветовать?
Есть большой проект на Дельфи (около 150 форм), который постоянно в работе. Есть необходимость перетащить его в Лазаря. Существует ли способ паралельной работы с файлами из обоих сред, хотя бы с кодом (формы правятся редко)?
Аватара пользователя
Vlad04
новенький
 
Сообщения: 79
Зарегистрирован: 11.12.2007 21:11:19
Откуда: Караганда. Казахстан

Сообщение Lisolog » 14.01.2008 20:27:13

Не скажу точно, но у них даже расширения разные для юнитов:
LazarusUnit: lfm lrs o pas pas.bak ppu
delphi: ~dfm ~pas dcu dfm pas
Lisolog
новенький
 
Сообщения: 39
Зарегистрирован: 13.12.2007 14:24:08
Откуда: Russia, SPb

Сообщение alexs » 14.01.2008 20:34:10

Vlad04
Это трудно - одновременно работать с ними в двух средах. В лазарусе у компонент есть свойства, которых нет у аналогичных от дельфи. Вопрос с расширениями файлов не так кретичен, как кажется - решается условными дерективами компиляции.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение NXP » 14.01.2008 20:34:15

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

Я думаю, что это большой гимор
ИМХО лучше попариться и перетянуть все под лазаря, и спокойно работать с кодом :D
Года 2 назад я так тоже хотел. Потом хорошо подумал, и забил на весь Borland, теперь и не вспоминаю про него.
Borland, кстати, давно прогнулась под M$ :x
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Сообщение Vlad04 » 15.01.2008 16:59:12

Ладно, буду пробовать.
Следующий вопрос в Лазаре 9.24 с панели компонент убрали TMaskEdit, а библиотеке LCL он есть. Соответственно создать свой компонент TMaskEdit Лазарь не дает (типа такой компонент уже существует), а в проекте он активно используется (порядка 1500 раз).
Есть ли какой-нибудь способ подменить в библиотеке LCL имеющийся компонент на свой.
Аватара пользователя
Vlad04
новенький
 
Сообщения: 79
Зарегистрирован: 11.12.2007 21:11:19
Откуда: Караганда. Казахстан

Сообщение Attid » 15.01.2008 17:47:19

в зависимоти от того насколько он там сильно испоьзуется
раскоментируй тот есть в LCL и доабатывай его под свои нужды, изменениями можешь поделиться с народом =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Vlad04 » 16.01.2008 19:18:34

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

Сообщение alexs » 16.01.2008 21:16:33

какая-то левая компонента сходит с ума или балуется?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Максим » 17.01.2008 03:15:11

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

Ключи компиляции можно задавать в диалоге параметров компилятора (Проект -> Параметры компилятора) на вкладке "Другое" (поле "Параметры пользователя").
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Vlad04 » 17.01.2008 17:02:14

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

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

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


С каким ключем их указывать?
Аватара пользователя
Vlad04
новенький
 
Сообщения: 79
Зарегистрирован: 11.12.2007 21:11:19
Откуда: Караганда. Казахстан

Сообщение alexs » 18.01.2008 00:43:00

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

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

Сообщение Attid » 18.01.2008 00:56:42

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

Сообщение Максим » 18.01.2008 02:46:14

Vlad04

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

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

Если нужно указать несколько ключей, то -d нужно добавлять перед каждым, а сами ключи отделять пробелами, например, -dTEST1 -dTEST2 -dTEST3.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Vlad04 » 19.01.2008 17:11:16

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


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

Сообщение Vlad04 » 23.01.2008 19:24:41

Чем отличается использование класса TFrame в Delphi и Lazarus. При конвертировании проекта на одну из форм выдает:
Код: Выделить всё
  inline DepFrame: TDepFrame
    Left = 9
    Top = 14
    Width = 513
    Height = 396
    TabOrder = 3
  end

INHERITED expected on line 59
Аватара пользователя
Vlad04
новенький
 
Сообщения: 79
Зарегистрирован: 11.12.2007 21:11:19
Откуда: Караганда. Казахстан

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot] и гости: 31

Рейтинг@Mail.ru