посмотрите пожалуйста статью (ссылка в первом посте) я делал абсолютно как показано там, причем тот пример из статьи тоже не компилится с похожей проблемой, вероятно механизм изменился, как правильно внедрять компоненты?
xtabcontrol.pas(199,54) Error: Can't take the address of constant expressions
в чем проблема?
А вы не учли, то что свойство ComponentStyle только для чтения! Об этом вам косвенно хочет сообщить и компилятор. Изменить данное свойство можно только в потомке от TComponent обратившись к защищённой переменной FComponentStyle!
Изменения в версии 2.4.0 alaken Посмотри, какой из параметров передаётся как const/var, определи переменную соответствующего типа, задай ей нужное значение и засунь в процедуру. Должно сработать.
Vadim писал(а):alaken Насколько я понял, свойство FCloseButton.ComponentStyle - только для чтения, а Вы пытаетесь изменить значение. Попробуйте сделать так:
xtabcontrol.pas(209,24) Error: identifier idents no member "FComponentStyle"
Добавлено спустя 42 секунды:
FeodoR писал(а):Изменения в версии 2.4.0 alaken Посмотри, какой из параметров передаётся как const/var, определи переменную соответствующего типа, задай ей нужное значение и засунь в процедуру. Должно сработать.
не срабатывает...
Добавлено спустя 2 минуты 8 секунд: для теста, похожий проект из статьи
Vadim писал(а):alaken Насколько я понял, свойство FCloseButton.ComponentStyle - только для чтения, а Вы пытаетесь изменить значение. Попробуйте сделать так:
xtabcontrol.pas(209,24) Error: identifier idents no member "FComponentStyle"
А другое он и не должен писать т.к. данная переменная является protected и доступна только в потомках класса. Для того чтобы установить значение переменной необходимо с начало унаследовать...
type THackButton = class(TButton) // Зависит от того к какому классу относится ваша переменная FCloseButton end; ... Include(THackButton(FCloseButton).FComponentStyle, csSubComponent); ...
Добавлено спустя 1 минуту 32 секунды: з.ы. Всё должно быть объявлено в пределах одного модуля
посмотрел кучу исходников компонентов, нигде подобной конструкции нет... может это уже не актуально или правильным будет делать как написано в статье?
отрывок статьи:
Далее создадим сам ProgressBar и укажем, что он является встроенным компонентом. Это позволит сохранять его свойства вместе со свойствами основного компонента в файле определения формы.
alaken писал(а):посмотрел кучу исходников компонентов, нигде подобной конструкции нет... может это уже не актуально или правильным будет делать как написано в статье?
Почему не актуально? Это обычная конструкция ООП. Если вы не встретили данный трюк в исходниках компонетов, это не означает, что так делать нельзя.
Добавлено спустя 3 минуты 28 секунд: В данной статье есть ошибка, на которую вы как раз и наткнулись.
Mr.Smart писал(а):...В данной статье есть ошибка, на которую вы как раз и наткнулись.
это уже вторая статья с ошибкой, первая статья была о TProcess это очень плохо...
к тому же не радостная новость: "...в отчете Корус Кнсалтинг по развитию и внедрению свободного ПО в госструктуры Лазарус не рекомендован к использованию как не достаточно зрелый проект..."