несколько вопросов по созданию компонент

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

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

Ответить
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

несколько вопросов по созданию компонент

Сообщение bloodlines »

1 - как создать собственную иконку для компонента? (Пробовал сделать как в статье - не получилось) Моя иконка в формате png.
2 - как создать свойство компонента, чтобы оно отображалось в "Инспекторе объектов"? Пробовал объявлять свойство в секции published - в инспекторе объектов оно не появляется. Моя компонента - наследник TComponent.
Аватара пользователя
carrots
постоялец
Сообщения: 138
Зарегистрирован: 28.03.2008 01:13:02

Сообщение carrots »

Если вы все правильно описали и создали файл ресурсов (название рисунка должно быть таким-же как название компонента учитывая большие и малые буквы, и файл ресурсов должен быть вложен в пакет) - возможно вы просто еще не откомпилировали свои компоненты.
Ну а если вы где-то допустили ошибку в создании проперти которая не публикуется, то покажите исходник, чтоб можно было увидеть где она.

Добавлено спустя 1 минуту 12 секунд:
Если не жаль - можете прикрепить все исходники с файлом ресурсов и пакетом. :wink:
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Сообщение bloodlines »

Код: Выделить всё

Если не жаль - можете прикрепить все исходники с файлом ресурсов и пакетом.

К сожалению не могу. Но не могли бы вы помочь мне написав небольшой пример относительно создания property для отображения в Object Inspector?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

bloodlines

Код: Выделить всё

TMyClass=class(TComponent)
published
  property MyProp: String read fMyProp write fMyProp;

Класс должен быть потомком TPersistent и свойство должно быть как на запись так и на чтение.
Аватара пользователя
Inferno
новенький
Сообщения: 78
Зарегистрирован: 20.03.2009 13:40:20
Откуда: Тюмень

Сообщение Inferno »

а вот и нет, published свойство ТАКЖЕ может быть только для чтения и лазарус его покажет.
По иконке для компонента я так делаю (особенно если много ресурсов). Да и всамом лазаре так сделано:
1.Нужно создать иконку png размером 24x24, обозвав файл как имя класса(я обычно маленкими буквами обзываю) tmycomponent.png
2. далее ложим файл в подпапку images файл tmycomponent.png
3. создаем файл текстовый с содержимым images/tmycomponent.png и в конец файла нужно нажать добавить пустую строку например tmycomponent_list.txt
4. Взять и выполнить из lazarus/tools/lazres tmycomponent.res @tmycomponent_list.txt (есстественно либо пути полные либо относительные до файлов!!!)
5. В текущей рабочей папке создается tmycomponent.res
6. В своем проекте в inititalization пишем {$I tmycomponent.res}
7. Компиляция лазаря
Ответить