Чтобы компонент было легко найти в палитре, у него должен быть свой собственный значок. Сейчас созданный компонент наследует все, включая значок, от своего предка — компонента ComboBox. Теперь поменяем значок компонентаPrinterList на палитре.
Для создания и изменения значков предназначен встроенный в систему Delphi Редактор изображений Image Editor. Откройте редактор Image Editor командой Tools/Image Editor. В окне редактора выполните команду File/New/Component Resource File (*.dcr). Программа создаст новое окно Untitled1.dcr, содержащее дерево, в котором имеется пока только один элемент Contents. Для создания нового элемента откройте контекстное меню в окне Untitled1.dcr и в нем выполните команду New/Bitmap. Откроется окно свойств Bitmap Properties создаваемой картинки (рис. 8).
Рис. 8
Параметры размера картинки (Width и Height), задаваемые по умолчанию (32 пиксела), следует изменить на 24х24 – такой размер обязаны иметь значки всех компонентов. Для параметра Colors (Цветовой режим) можно оставить значение VGA, потому что для значка 16 цветов достаточно. Далее нажмите кнопку ОК в окне Bitmap Properties. В результате в окне Untitled1.dcr в структуре дерева элементов ресурсов появится раздел Bitmap и в нем новая картинка Bitmap1. Откройте контекстное меню на элементе Bitmap1 и в нем выполните команду Rename. Переименуйте картинку, дав ей имя класса нового компонента TPINTERLIST (прописными буквами - рис. 9). Примечание. Картинка обязательно должна иметь то же имя, что и класс, которому принадлежит компонент. Это связано с тем, что в исходном коде приложения может быть несколько компонентов. Delphi по имени картинки будет определять, к какому компоненту (и, следовательно, классу) она относится.
Рис. 9
Далее выполните двойной щелчок по элементу TPINTERLIST. Откроется окно графического редактора, в котором будут доступны стандартные инструменты, похожие на инструменты редактора Paint. Подобрав удобный масштаб, нарисуйте какое-либо изображение, которое и будет значком компонента.
После этого закройте окно Untitled1.dcr. На запрос системы о сохранении файла ресурсов откройте папку с исходным кодом модуля компонента и задайте имя, совпадающее с именем модуля компонента, но с расширением *.dcr - PrinterList.dcr.
Всех выполненных действий, однако, недостаточно для замены значка компонента на новый значок. Если посмотреть на палитру компонентов, то можно увидеть, что на вкладке New по-прежнему сохраняется прежний значок компонента. Если перезапустить Delphi или даже перезагрузить операционную систему, старый значок по-прежнему останется на палитре. Для того чтобы поменять значок, требуется повторная регистрация компонента. Для этого необходимо выполнить следующие действия:
1) командой меню File/Open… или File/Open Project… открыть окно с пакетом MyPackage.dpk, содержащим данный компонент (рис. 10).
Рис. 10
2) в окне пакета нажать кнопку Remove. В возникающем диалоговом окне Remove From Project отметить исходный модуль компонента, который необходимо удалить, в нашем случае – PrinterList.pas. После этого следует нажать кнопку OK и подтвердить удаление в появляющемся окне;
3) перекомпилировать пакет компонентов, нажав кнопку Compile. Это действие заставит систему удалить из оболочки прежний компонент. Если все было выполнено правильно, то появится сообщение об обновлении палитры компонентов;
4) нажать кнопку Add и в диалоге инсталляции нового компонента с помощью кнопки Browse задать путь к модулю компонента PrinterList.pas. После нажатия кнопки OK в окне пакета появятся как модуль *.pas, так и ссылка на файл *.dcr (рис. 11);
Рис. 11
5) снова нажать кнопку Compile. После компиляции пакета появится сообщение, что компонент PrinterList был инсталлирован в палитре компонентов и теперь его значок соответствует нарисованному.
Опубликовал Kest
January 07 2010 09:36:37 ·
0 Комментариев ·
13183 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.