На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / kaCtrls — библиотека компонент и классов Сделать домашней страницей Добавить в избранное Написать писмо

kaCtrls — библиотека компонент и классов


Автор: Кузнецов Алексей

Общая концепция
Компоненты из этой библиотеки являются расширенными аналогами стандартных компонент. Практически у всех компонент есть свойства Style и StyleController, которые собственно и задают как будет выглядеть компонент на экране.

Color
определяет цвет заднего фона у компонента
Font
каким шрифтом будет выводится текст в области компонента причем стандартные свойства Color и Font объявленные в классе TControl перекрыты таким образом, что теперь они являются синонима для Style.Color и Style.Font соответственно
BorderStyle
определяет как будет выглядеть рамка вокруг компонента
  • AssignedProperties - какие настройки BorderStyle будут сохранены в dfm и будут использованы при заданном StyleController-е
  • Style - стиль рамки, например, приподнятая, вдавленная, плоская, и т.д.
  • Edges - наличие / отсутствие граней у рамки
  • Pen - каким пером рисовать рамку при стиле fsCustom
  • Color3dLight - какой цвет использовать для отрисовки рамки в качестве светлого
  • Color3dSpace - -//- в качестве промежуточного
  • Color3dShadow - -//- в качестве теневого
HotTrackStyle
определяет как будет выглядеть компонент при наведении на него мышкой
  • AssignedProperties - см. аналогичное свойство у BorderStyle
  • IsHotTrack - реагировать на мышь или нет
  • HotColor - цвет заднего фона в Hot режиме
  • HotFont - шрифт используемый для вывода текста в Hot режиме
  • HotBorderStyle - как выглядит рамка в Hot режиме, см. BorderStyle
ShadowStyle
определяет как будет выглядеть тень
  • AssignedProperties - см. аналогичное свойство у BorderStyle
  • Color - цвет тени
  • Visible - выводить тень или нет
  • Width - ширина тени
TextStyle
настройки для вывода текста
  • AssignedProperties - см. аналогичное свойство у BorderStyle
  • AlignmentH - выравнивание текста по горизонтали
  • AlignmentV - выравнивание текста по вертикали
  • WordWrap - перенос текста на следующую строку, если он не вошел в область вывода
  • ShowAccelChar - использовать символ & в тексте как указание, что следующий за ним надо подчеркнуть
  • EndEllipsis - вывод многоточия в конце текста, если он не входит в область вывода
  • Orientation - как выводить текст: горизонтально или вертикально
  • OutputOffset - отступы от всех граней рамки

Эта библиотека содержит следующие компоненты:

Компонент TkaBevel
Визуальный компонент, по своей сути являющийся аналогом стандартного компонента TBevel. Представляет собой прямоугольную рамку, с широким спектром настроек внешнего вида. Можно подключать внешний контролер стиля.
Компонент TkaLabel
Визуальный компонент для отображения текста. В отличие от стандартной метки может выводить текст вертикально. Широкие возможности настройки внешнего вида. Имеет специальное свойство: LinkageInfo - позволяет "пристыковать" к метке какой-либо контрол и он будет перемещаться вслед за меткой по форме как в Design, так и в Runtime. В настройках текста реализовано свойство EndEllipsis (вывод многоточия в конце текста, если он не входит в область вывода). Можно подключать внешний контролер стиля.
Компонент TkaPanel
Визуальный компонент, контейнер для других компонент. Аналог стандартного компонента TPanel. Широкие возможности настройки внешнего вида. Имеет собственный DocManager, который в отличие от стандартного может показывать заголовки docked форм. Можно подключать контролер стиля.
Компонент TkaGroupBox
Визуальный компонент, контейнер для других компонент. Аналог стандартного TGroupBox. Так же как и TkaPanel имеет собственный DocManager. Кроме того, имеет свойство Title, которое позволяет гибко настраивать вид заголовка (на какой грани выводить, с каким отступом) и помимо стандартного вида заголовка, он может выглядеть как "оконный" заголовок. Можно подключать контролер стиля.
Компонент TkaCheckBox
Визуальный компонент, сочетающий в себе два стандартных контрола: TCheckBox и TRadioButton. То есть теперь можно обойтись одним компонентом вместо двух. Кроме того, реализованы такие полезные свойства как AutoSize, Align, GroupIndex и многострочный текст. Специальное свойство Marker позволяет гибко настраивать внешний вид маркера (тип, цвет, стиль, положение). Широкие настройки внешнего вида. Можно подключать контролер стиля.
Компонент TkaCheckGroupBox
Визуальный компонент, наследник от TkaGroupBox. Контейнер для массива TkaCheckBox. Аналог TRadioGroup и TCheckListBox. Наследует все свойства TkaGroupBox, но уже не является контейнером для других компонент и DocSite для форм. Свойство Items позволяет гибко управлять массивом элементов. Реализовано такое свойство как Item.Offset, позволяющее смещать элементы от края на необходимое расстояние. Событие OnChange позволяет определит, какой элемент был изменен. Можно подключать два разных контролера стиля: первый для элементов, второй для TkaCheckGroupBox.
Компонент TkaRouteMap
Визуальный компонент, отражающий некоторый процесс прохождения мастера по этапам, так называемая "Карта пути".
Все вышеперечисленные компоненты могут изменять свой внешний вид при наведении на них указателя мыши, свойство Style.HotTrackStyle
Компонент TkaStyleController
Не визуальный компонент, контролер стиля, позволяет в одном месте менять настройки для нескольких компонент

Более подробное описание компонент

Установка библиотеки

1. Delphi 5:
Удалите предыдущую версию библиотеки kaCtrls из Delphi 5 IDE. Удалите или перенесите в другую папку старые версии файлов, во избежания пересечения с новой версией kaCtrls. Распакуйте и скопируйте все файлы из архива с библиотекой в папку отведенную для kaCtrls. Используя Delphi IDE выберите пункты меню: "File -> Open ->" выберите файл "kaCtrlsSWD5.dpk". Затем, откомпилируйте и установите пакет "kaCtrlsSWD5.dpk". Если необходимо, добавьте папку с библиотекой в список путей выбрав пункты меню "Tools -> Environment Options -> Library -> Library Path". Таким же образом необходимо добавить в список путей папку содержащую файл "QStrings.pas".

2. Delphi 6:
Выполните все действия описанные для Delphi 5 для файла "kaCtrlsSWD6.dpk".

3. Файл помощи:
Используя Delphi IDE выберите пункты меню: "Help -> Cusomize" и добавте файл kaCtrls.hlp в справочную систему Delphi.

Лицензионное соглашение

Демонстрационные примеры

Прилагается демонстрационный пример: kaCtrlsDemo.dpr в котором я постарался показать как можно использовать компоненты из библиотеки.

Другая информация

Для того чтобы избежать проблем при инсталляции и работе с библиотекой проверьте версию Delphi. Библиотека была скомпилирована с использованием:
Delphi 5 Update Pack 1
Delphi 6 Update Pack 2

Благодарности

Что дальше?

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

В дальнейшем планируется расширение библиотеки и выпуск ее следующих версий, в которые войдут такие компоненты как: TkaButton, TkaEdit, TkaListBox, TkaComboBox, TkaPageControll, TkaMemo, TkaProgressBar, TkaDateTimePicker, TkaCalendar, TkaTreeView, TkaListView, TkaStatusBar...

История изменений

Условные обозначения:

[+] - новая функциональность
[*] - исправлена ошибка
[!] - изменилось поведение
[-] - что-либо удалено

Что нового в версии от 22 мая:

[!] - полностью переделан способ вывода вертикального текста

[!] - изменился тип данных TkaOrientation:
      было:  TkaOrientation = (kaHorizontal, kaVertical);
      стало: TkaOrientation = (kaHorizontal, kaVerticalCW, kaVerticalCCW);
      kaVerticalCW  - вертикальный текст повернутый на 90 градусов по
часовой стрелке (CW)
      kaVerticalCCW - против часовой (CCW)

[!] - изменились все компоненты использующие тип TkaOrientation, что бы
корректно отображать
      вертикальный текст

[+] - поддержка Delphi6

[!] - в связи с поддержкой Delphi6 изменены имена пакетов, теперь это два
пакета:
      kaCtrlsSWD5.dpk - для Delphi5
      kaCtrlsSWD6.dpk - для Delphi6

[-][+] - вместо dcu файлов с константами и типами данных в архив помещены
соответствующие pas файлы

[-][+] - вместо dcu файлов с редакторами свойств в архив помещены
соответствующие pas файлы

[-][+] - вместо dcu файлов регистрирующих компоненты и редакторы свойств в
архиве - pas файлы

[-] - из архива удален bpl файл

[!] - изменена инструкция по установке

[!] - немного изменился демонстрационный пример

[+] - в архив добавлен оригинальный файл QStrings.pas и лицензия на его
использование

[+] - альфа версия файла справки

Тестирование и обсуждение

Если у вас есть вопросы, замечания, сообщения о замеченных ошибках, пожелания, предложения по улучшению или доработке - пишите на мой e-mail.

Наиболее активные тестеры по выходу официального релиза получат лицензию на использование библиотеки и ее исходные код бесплатно.


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz