Подписка

Проекты

Сборник идей для разработок в Delphi и использования их в Интернет. Участвуй в работе коллективного разума!

Google API в Delphi - проект с открытым исходным кодом.


А тут я коплю на лицензию Delphi 2011. Сумма пожертвования не фиксирована.

Друзья блога

Блоги и сообщества

DelphiFeeds.ru - Все Delphi-блоги Рунета О раскрутке блога по программированию Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Статьи по Delphi

Счётчики


Анализ веб сайтов

Рейтинг блогов




Система Orphus

  • 01Oct

     Вопрос о шкурахПривлекательный и необычный интерфейс, играет не самую последнюю роль в популярности и востребованности любого программного продукта. И хотя, все же, в некоторых случаях использование средств, стандартной VCL является наиболее верным решением, речь сейчас не о них.

    Большинство разработчиков стараются обходить вопрос, использования шкур, стороной. Причины разные, самая распространенная – нежелание вникать в “сложности” работы со шкурами. А есть ли они, те самые сложности, которых многие опасаются? Посидев над обрисовавшейся задачкой часик – другой, я выяснил главное – все предельно просто. Представляю на ваш суд, результат своих изысканий.  ' '

    Принцип работы компонента TSkinControl

    MainMap
    Базовым классом для компонента является TWinControl, что позволяет без труда использовать его, как элемент интерфейса, либо как оболочку для всей формы в целом (для этого достаточно присвоить свойствам формы BorderStyle и AutoSize значения “bsNone” и “True” соответственно).

    Для работы компонент использует два изображения. Первое (свойство SkinImage) – для отображения пользователю, в качестве самого интерфейса. Второе (свойство MaskImage) – для распознавания элементов интерфейса, в данном случае это кнопки и надписи. При этом на второе изображение накладываются некоторые ограничения. Каждый элемент должен иметь уникальный цвет и прямоугольную, непрерывную форму. Размеры MaskImage должны полностью соответствовать размерам SkinImage.

    Свойства и события компонента

    Для обработки событий любого элемента, в шкуре, используются события OnClick, OnMouseDown, OnMouseUp и OnMouseMove самого компонента, т.к. для компонента нет никакой разницы, с каким элементом работать, в его представлении элемент – всего лишь набор точек одного цвета. Для определения конкретного элемента, с которым происходит взаимодействие, используется параметр ColorControl, который содержит его уникальный идентификатор – цвет.

    Событие OnMouseMove имеет изменяемый параметр Cursor, с помощью него можно менять внешний вид курсора при наведении на различные элементы шкуры.

    Для вывода текста в области элементов используется процедура SetTextOfControl. Размер шрифта, в случае если элемент малых размеров, выбирается автоматически.

    Напоследок

    Компонент создавался, как наглядный пример реализации работы со шкурами и поэтому, пока он не предназначен для использования в серьезных проектах. В данном компоненте реализована работа, только с двумя основными возможностями:
    1. Работа с кнопками.
    2. Работа с надписями, в том числе многострочными.
    Для более-менее полноценной работы, как минимум, необходимо реализовать возможность использования списков, текстовых полей и анимации состояния (наведение мыши, нажатие кнопки мыши и др.) Все это не намного сложнее уже сделанного. Если кого-то заинтересует использование, этого компонента, обращайтесь, доведу его до ума с учетом ваших пожеланий.
    Если есть другие предложения или дополнения по данному вопросу, пишите. Лучшая благодарность для автора – интерес к его работе :), а дополнительный интерес со стороны пользователей можно получить, если развить (раскрутить ресурс со статьей, а вот и биржа статей, которая пригодиться Вам при продвижении своих веб-проектов.

    Компонент TSkinControl(678.22 KB)

    Мой блог находят по следующим фразам

    Related posts:

    1. Компонент Delphi 2010 для работы с Опциями
    2. Определение тИЦ Яндекс. Компонент Delphi 2010.
    3. Компонент Delphi 2010 для проверки наличия сайта в Яндекс.Каталог, DMOZ и Yahoo Directory
    4. Сбор статистики поисковых систем. Компонент Delphi 2010.
    5. “Тонкости” работы с Ribbon Controls в Delphi 2010.

    Автор SeregaAltmer в 9:44 pm

    Метки: , , ,

Ваш ответ

Внимание: Все комментарии модерируются, и это может вызвать задержку их публикации. Отправлять комментарий заново не требуется.

Пожалуйста, заключайте исходный код в тэги [code][/code].