Пакетирование
fs7.dpk
contains
fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas',
fs_iformsrtti in 'fs_iformsrtti.pas',
fs_igraphicsrtti in 'fs_igraphicsrtti.pas',
fs_iilparser in 'fs_iilparser.pas',
fs_iinterpreter in 'fs_iinterpreter.pas',
fs_iparser in 'fs_iparser.pas',
fs_isysrtti in 'fs_isysrtti.pas',
fs_itools in 'fs_itools.pas',
fs_xml in 'fs_xml.pas',
fs_synmemo in 'fs_synmemo.pas',
fs_tree in 'fs_tree.pas';
Проблема в следующем. Если я строю проєкт на основе bpl, то подключение fs7.bpl
атоматически ЗАСТАВЛЯЕТ меня поставлять с продуктом файлы которых я не использую.
Например: TeeChart который мне в проэкте не нужен.
И вообще ИМХО навязывать свои интеграции не есть правильно.
Фактически мне нужена только реализация движка. Какие *RTTI мне включать
это уже мое дело, потому как они могуть отличаться от поставляемых, пример тому тот же TeeChart.
Врбщем предлагаю движек завернуть в ожну bpl, а интеграции в другую. ТОесть идея в том чтобы каждый мог себе создать произвольный пакет интеграция, независимо от движка.
Перепакетировать fs7.dpk не представляеться возможным, так как его пользует отчетер( FastReport )
contains
fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas',
fs_iformsrtti in 'fs_iformsrtti.pas',
fs_igraphicsrtti in 'fs_igraphicsrtti.pas',
fs_iilparser in 'fs_iilparser.pas',
fs_iinterpreter in 'fs_iinterpreter.pas',
fs_iparser in 'fs_iparser.pas',
fs_isysrtti in 'fs_isysrtti.pas',
fs_itools in 'fs_itools.pas',
fs_xml in 'fs_xml.pas',
fs_synmemo in 'fs_synmemo.pas',
fs_tree in 'fs_tree.pas';
Проблема в следующем. Если я строю проєкт на основе bpl, то подключение fs7.bpl
атоматически ЗАСТАВЛЯЕТ меня поставлять с продуктом файлы которых я не использую.
Например: TeeChart который мне в проэкте не нужен.
И вообще ИМХО навязывать свои интеграции не есть правильно.
Фактически мне нужена только реализация движка. Какие *RTTI мне включать
это уже мое дело, потому как они могуть отличаться от поставляемых, пример тому тот же TeeChart.
Врбщем предлагаю движек завернуть в ожну bpl, а интеграции в другую. ТОесть идея в том чтобы каждый мог себе создать произвольный пакет интеграция, независимо от движка.
Перепакетировать fs7.dpk не представляеться возможным, так как его пользует отчетер( FastReport )
Комментарии
Совет: востановите оргигинальный fs7.dpk и перекомпилируйте его.
я получаю в тако м же виде как раньше, fs7.bpl используеться в FastReport, тоесть закоментарив ненужное я автоматом теряю его в отчетере. Служить за єтим єто не рационально. В чем проблема создать отдельній пакет для движка и "стандартных" компонент ? Для ADO, BDE, FIB веть имеем отдельные пакеты!!! Получая отдельный пакет который включает Classes, Forms, Controls, Chart ... и тд мЫ получаем гибкость: отчетер пользует "стандартные" интеграции. А сторонние продукты могут пользовать движек, но использовать пользовательские пакеты для Classes, Chart ... улучненные и расширенные. Постарайтесь понять и оценить мой подход. Наблюдая и учавствуя в тестированни SQLHammer я имел практику работы по такой схеме. Есть IDE которое дает возможность добавлять компоненты, но не ДОЛЖНО НАВЯЗЫВАТЬ нам их КОНКРЕТНУЮ реализацию. Реализация поставляемая в дистрибутиве безусловно хороша, но не полная, ее надо развивать и дополнять. Делая это вручную, тоесть равя исходники я обрекаю себя на вечную синхронизацию с обновлениями, а это уже почти участие в разработке.
Извините за краткость
Совет разработчикам : установите файлам *.bpk и *.dpk атрибут ReadOnly. Тогда никто ничего случайно не перезатрет.
А хочеться иметь голый движек. Чтобы имень возможность заменять "стандарные" реализаци, а так же дополнять их.
Вот скажем ка мне расширить TForm? Ответ: Поправить рукати fs_iformsrtti.pas.
Но как я потом буду обнявления ставить ? Заново носить все их версиис в верси?
Уважаемые разработчики прислушайтесб пожалуйста к моему мнению.
Если мне не хватает какогото метода от TForm, то я должен его добавить в реализации TForm, а не его наследника.
От разработчиков я хочу гибкого продукта, который бы отвечал моим нуждам.
Если єе я в чем то не прав в своих притязаниях, так хотябы приведите аргументы.
И хоть какого то комьюнити!!!!
MyClass:=fsGlobalUnit.Find('TApplication') as TfsClassVariable;
if MyClass<>nil then
begin
MyClass.AddProperty('MainForm','TForm',GetDelphiProp);
MyClass.AddProperty('Icon','TIcon',GetDelphiProp,SetDelphiProp);
MyClass.AddProperty('Title','string',GetDelphiProp,SetDelphiProp);
MyClass.AddMethod('function FindForm(FormName: string): TForm;', CallDelphiMethod);
MyClass.AddMethod('procedure Run;', CallDelphiMethod);
end;
Это я к тому, как добавить новые методы и свойства к стандартной реализации классов в fs7.bpl ничего в самом пакете не правя. Если вы сделаете над собой небольшое усилие, то по аналогии, легко можете догадаться, как удалить из fsGlobalUnit реализацию класса который вас не устраивает и заменить на свою.
Но вообще я не об этом говорил... а о самой идеологии... комоновки продукта.
Сам движек есть независимая по сути сущность и не нуждающаяся в дополнения х .. поэтому логично было его вынести в отдельный пакет.
Почемуто для компонентов доступа и прочих расширений такие пакеты есть, а вот отдельно для VCL пожадничали. Дельфи кстати имеет отдельный пакет для VCL компонентов, а не компилит их в экзешник.