Почему лазарь не дает создавать модули с точкой в названии

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

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

Почему лазарь не дает создавать модули с точкой в названии

Сообщение .wOvAN » 21.06.2011 17:48:13

Вопрос наверно глупый, но почему лазарь не дает создавать модули с точкой в названии (н-р: "Core.Datamodule.pas") ? :roll: Дельфи вполне позволяет это делать.
.wOvAN
постоялец
 
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12

Re: неуловимые баги

Сообщение Odyssey » 21.06.2011 18:20:34

Потому что имя модуля должно быть валидным идентификатором. Иначе возникает такая проблема:
Код: Выделить всё
unit Core.Datamodule;
...
var
  ModuleName: String;
Код: Выделить всё
unit Core;
...
type
  TDataModule = class(TCustomDataModule)
  public
    property ModuleName: String;
  end

var
  DataModule: TDataModule;
Код: Выделить всё
unit Main;
...
Core.DataModule.ModuleName := 0;
// к чему мы сейчас обращаемся - к переменной ModuleName или к полю ModuleName класса TDataModule?

Подробности есть в багтрекере и в вики.

P.S. Эти два поста бы в отдельную тему, в этой они - оффтоп.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: неуловимые баги

Сообщение .wOvAN » 21.06.2011 18:42:43

// к чему мы сейчас обращаемся - к переменной ModuleName или к полю ModuleName класса TDataModule?


Ну это просто решается, то что ближе объявлено у того и приоритет. Тоже самое что

Код: Выделить всё
TForm1.Create();
begin
  with Button1 do
  begin
     Height:=10;
  end;
end;


Не возникает вопросов к чьему Height мы обращаемся?
Области видимости и действия разные.
.wOvAN
постоялец
 
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12

Re: неуловимые баги

Сообщение kipar » 03.07.2011 13:56:34

.wOvAN писал(а):Ну это просто решается, то что ближе объявлено у того и приоритет.

Тогда будет несовместимо с дельфи - там приоритет у Core.Datamodule независимо от порядка модулей в uses.
kipar
новенький
 
Сообщения: 78
Зарегистрирован: 04.03.2010 12:15:54

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Yar_Underoaker » 03.11.2011 13:22:15

Очень нужна данная фича для совместимости с Делфи
Вот сдесь прочитал что есть уже вроде http://wiki.lazarus.freepascal.org/FPC_ ... aces_units
Пробовал последний снепшот FPC 2.7.1, но неполучается создать модули с точкой.
Кто в курсе, подскажите где взять нужный компилятор?
Yar_Underoaker
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.01.2011 21:50:58
Откуда: Украина, г.Черкассы

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение AlexVinS » 03.11.2011 15:23:24

A 2.7.1 из svn пробовали и что именно "неполучается"?
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Yar_Underoaker » 03.11.2011 21:07:46

2.7.1 из svn пробую, но спотыкается о CodeTools, тоесть Лазарус не пересобирается.
Возможно надо Лазарус из svn, а может я просто смешал не те версии.
Буду еще пробовать.

Добавлено спустя 2 часа 59 минут 2 секунды:
Re: Почему лазарь не дает создавать модули с точкой в названии
Для обычного проекта работает, но пакет из таких файлов собрать нельзя, ругается "Некорректное имя модуля".
Пришлось вручную составлять lpk.
Увы, откомпилировать не получается
ПРЕДУПРЕЖДЕНИЕ: некорректное имя модуля E:\GLScene SVN\glscene\branches\GLScene_1_2_0\Lazarus\..\Source\GLScene.Archive.Manager.pas, пакет GLScene_Runtime 0.0
ПРЕДУПРЕЖДЕНИЕ: некорректное имя модуля E:\GLScene SVN\glscene\branches\GLScene_1_2_0\Lazarus\..\Source\GLScene.AsyncTimer.pas, пакет GLScene_Runtime 0.0
ПРЕДУПРЕЖДЕНИЕ: некорректное имя модуля E:\GLScene SVN\glscene\branches\GLScene_1_2_0\Lazarus\..\Source\GLScene.AVIRecorder.pas, пакет GLScene_Runtime 0.0
ПРЕДУПРЕЖДЕНИЕ: некорректное имя модуля E:\GLScene SVN\glscene\branches\GLScene_1_2_0\Lazarus\..\Source\GLScene.Base.Classes.pas, пакет GLScene_Runtime 0.0
...

Модули просто игнорируются.
Yar_Underoaker
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.01.2011 21:50:58
Откуда: Украина, г.Черкассы

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение AlexVinS » 04.11.2011 15:18:21

Лазарус тоже надо из SVN, причем собирать сам лазарус лучше стабильной версией FPC а уже ваш проект потом собирать svn версией компиятора.
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Yar_Underoaker » 04.11.2011 16:23:54

А если снепшот за вчерашнее число, то в репозитории что-то может быть новое? (просто неохота качать)
На оффоруме рекомендуют писать в багтрекер :(

Добавлено спустя 6 часов 34 минуты 42 секунды:
Re: Почему лазарь не дает создавать модули с точкой в названии
У Лазаруса из svn теже проблемы :(
Yar_Underoaker
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.01.2011 21:50:58
Откуда: Украина, г.Черкассы

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Павел Ишенин » 06.11.2011 16:34:40

1. Сделайте небольшой пример (один файл пакета, один модуль)
2. Вылодите в баг-трекер лазаруса

Я поправлю.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Yar_Underoaker » 06.11.2011 18:55:04

1. Для примера достаточно создать модуль с именем AnotherFramework.Core.pas, создать пакет и попробовать добавить этот модуль.
2. Уже создан и принят http://bugs.freepascal.org/view.php?id=20624

Спасибо.
Yar_Underoaker
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.01.2011 21:50:58
Откуда: Украина, г.Черкассы

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Павел Ишенин » 07.11.2011 15:44:37

Возможно я поправил это сегодня в r33384,r33385
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Yar_Underoaker » 07.11.2011 22:54:16

Спасибо, работает.
Yar_Underoaker
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.01.2011 21:50:58
Откуда: Украина, г.Черкассы

Re: Почему лазарь не дает создавать модули с точкой в назван

Сообщение Brainenjii » 09.11.2011 10:56:26

оффтопну - в новых "namespace"ах FPC будет область видимости с доступом только из этого namespace'a?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru