Почему лазарь не дает создавать модули с точкой в названии
Модератор: Модераторы
Почему лазарь не дает создавать модули с точкой в названии
Вопрос наверно глупый, но почему лазарь не дает создавать модули с точкой в названии (н-р: "Core.Datamodule.pas") ?
Дельфи вполне позволяет это делать.
Потому что имя модуля должно быть валидным идентификатором. Иначе возникает такая проблема:
Подробности есть в багтрекере и в вики.
P.S. Эти два поста бы в отдельную тему, в этой они - оффтоп.
Код: Выделить всё
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. Эти два поста бы в отдельную тему, в этой они - оффтоп.
// к чему мы сейчас обращаемся - к переменной ModuleName или к полю ModuleName класса TDataModule?
Ну это просто решается, то что ближе объявлено у того и приоритет. Тоже самое что
Код: Выделить всё
TForm1.Create();
begin
with Button1 do
begin
Height:=10;
end;
end;
Не возникает вопросов к чьему Height мы обращаемся?
Области видимости и действия разные.
.wOvAN писал(а):Ну это просто решается, то что ближе объявлено у того и приоритет.
Тогда будет несовместимо с дельфи - там приоритет у Core.Datamodule независимо от порядка модулей в uses.
-
Yar_Underoaker
- незнакомец
- Сообщения: 7
- Зарегистрирован: 29.01.2011 20:50:58
- Откуда: Украина, г.Черкассы
- Контактная информация:
Очень нужна данная фича для совместимости с Делфи
Вот сдесь прочитал что есть уже вроде http://wiki.lazarus.freepascal.org/FPC_ ... aces_units
Пробовал последний снепшот FPC 2.7.1, но неполучается создать модули с точкой.
Кто в курсе, подскажите где взять нужный компилятор?
Вот сдесь прочитал что есть уже вроде http://wiki.lazarus.freepascal.org/FPC_ ... aces_units
Пробовал последний снепшот FPC 2.7.1, но неполучается создать модули с точкой.
Кто в курсе, подскажите где взять нужный компилятор?
A 2.7.1 из svn пробовали и что именно "неполучается"?
-
Yar_Underoaker
- незнакомец
- Сообщения: 7
- Зарегистрирован: 29.01.2011 20:50:58
- Откуда: Украина, г.Черкассы
- Контактная информация:
2.7.1 из svn пробую, но спотыкается о CodeTools, тоесть Лазарус не пересобирается.
Возможно надо Лазарус из svn, а может я просто смешал не те версии.
Буду еще пробовать.
Добавлено спустя 2 часа 59 минут 2 секунды:
Re: Почему лазарь не дает создавать модули с точкой в названии
Для обычного проекта работает, но пакет из таких файлов собрать нельзя, ругается "Некорректное имя модуля".
Пришлось вручную составлять lpk.
Увы, откомпилировать не получается
Модули просто игнорируются.
Возможно надо Лазарус из 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
...
Модули просто игнорируются.
Лазарус тоже надо из SVN, причем собирать сам лазарус лучше стабильной версией FPC а уже ваш проект потом собирать svn версией компиятора.
-
Yar_Underoaker
- незнакомец
- Сообщения: 7
- Зарегистрирован: 29.01.2011 20:50:58
- Откуда: Украина, г.Черкассы
- Контактная информация:
А если снепшот за вчерашнее число, то в репозитории что-то может быть новое? (просто неохота качать)
На оффоруме рекомендуют писать в багтрекер
Добавлено спустя 6 часов 34 минуты 42 секунды:
Re: Почему лазарь не дает создавать модули с точкой в названии
У Лазаруса из svn теже проблемы
На оффоруме рекомендуют писать в багтрекер
Добавлено спустя 6 часов 34 минуты 42 секунды:
Re: Почему лазарь не дает создавать модули с точкой в названии
У Лазаруса из svn теже проблемы
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
1. Сделайте небольшой пример (один файл пакета, один модуль)
2. Вылодите в баг-трекер лазаруса
Я поправлю.
2. Вылодите в баг-трекер лазаруса
Я поправлю.
-
Yar_Underoaker
- незнакомец
- Сообщения: 7
- Зарегистрирован: 29.01.2011 20:50:58
- Откуда: Украина, г.Черкассы
- Контактная информация:
1. Для примера достаточно создать модуль с именем AnotherFramework.Core.pas, создать пакет и попробовать добавить этот модуль.
2. Уже создан и принят http://bugs.freepascal.org/view.php?id=20624
Спасибо.
2. Уже создан и принят http://bugs.freepascal.org/view.php?id=20624
Спасибо.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Возможно я поправил это сегодня в r33384,r33385
-
Yar_Underoaker
- незнакомец
- Сообщения: 7
- Зарегистрирован: 29.01.2011 20:50:58
- Откуда: Украина, г.Черкассы
- Контактная информация:
Спасибо, работает.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
оффтопну - в новых "namespace"ах FPC будет область видимости с доступом только из этого namespace'a?
