уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Продолжаем разбор темы “Органайзер в Delphi”. Рассмотрим свойства визуального компонента из библиотеки JVCL – TjvTFDays, а свойств, как оказалось довольно-таки много.

Первая вводная статья на эту тему касалась краткого обзора компонентов для разработчиков, которые доступны сегодня в Сети.

Во-первых, что предоставляет нам компонент.

TjvTFDays используется для отображения списка событий на день, либо пользовательской сетки событий. Для работы с компонентом необходим минимум один невизуальный компонент – TJvTFScheduleManager свойства и события которого мы рассмотрим несколько позднее.

После того как компонент TjvTFDays окажется на форме Вашего приложения он примет следующий вид:

TjvTFDays

В таком виде мы не можем добавить на сетку новое событие, т.к. не настроены необходимые свойства компонента. Именно этим (настройкой свойств TjvTFDays) мы и займемся.

Начнем с самых простых свойств компонента.

Свойство Color – задает цвет прорисовки области, в которой будут в дальнейшем располагаться все запланированные события.

Демонстрация свойства представлена на рисунке ниже. Цвет выбран – красный.

TjvTFDays_color

Свойство TJvTFDaysCols – коллекция колонок сетки событий. Каждый элемент коллекции содержит следующие свойства:

GroupTitle: string – заголовок группы (игнорируется если заданы другие свойства элемента)

SchedDate: TDate – дата расписания

SchedName: string – название расписания

Width: integer – ширина колонки (если задана 1 колонка, то ширина автоматически становится максимально возможной)

На рисунке ниже представлен вид компонента с одной и двумя колонками:

TjvTFDays_cols

Свойство ColTitleStyle – задаёт стиль отображения заголовков колонок. Может принимать одно из следующих значений (внешний вд загововков в зависимости от значения свойства смотрите на рисунках:

ctsSingleClip – простое отсечение текста по обоим краям

SingleClip

ctsSingleEllipsis – замена “лишнего” текста справа на “…”

SingleElipsis

ctsMultiClip – перенос части текста на новую строку и отсечение “лишнего” справа

MultiClip

ctsMultiEllipsis – перенос части теста на новую строку и замена “лишнего” на “…”

MultiElipsis

ctsHide – скрытие всего текста колонки в случае, если он не умещается в 1 строку

Hide2

Hide

ctsRotated – аналогично свойству ctsSingleClip, в случае, если не задано свойство TitleRotate (см. ниже) иначе разворачивает заголовки на заданный угол

Rotate

Свойство DateFormat – задает формат отображения даты. Значение по умолчанию ddddd. Может принимать следующие значения:

dd – отображение только дня недели, например, 20

dddотображение сокращенного названия дня недели, например, Чт

dddd – отображение полного названия дня недели, например, четверг

ddddd – отображение даты в формате dd.mm.yyyy, например, 12.01.2010

dddddd – отображение даты в формате dd MM yyyy, например 12 Январь 2010 г.

Свойство DefColWidth – ширина колонки по умолчанию. Ширина колонок автоматически изменяется по мере добавления/удаления колонок.

Свойство DitheredBackground – указывает будет ли фон компонента сглаживаться или нет. На рисунке ниже представлены два компонента: у левого свойство содержит True, у правого – False.

Dithered

Свойство DotNetHighlighting – указывает будет ли подсвечиваться рамка компонента. На рисунке ниже представлен компонент со свойством равным True (обратите внимание на прорисовку рамки компонента):

DotNet

Свойства FancyRowHdrAttr –набор свойств, отвечающих за прорисовку боковых строк списка (со временем). Можно настроить следующие свойства:

Color: TColor – задний фон

Hr2400: boolean – если True, то время будет отображаться в 24-х часовом формате.

MajorFont: TFont – настройки шрифта для отображения часов.

MinorFont: TFont – настройки шрифта для отображения минут.

OnlyShow00Minutes: boolean – если True, то в минутах отображаются только 00, если False, то минуты отображаются в зависимости от настроенной градуировки (по умолчанию 00 и 30 минут)

TickColor: TColor – цвет разделителей времени.

На рисунке ниже представлен компонент с измененными свойствами FancyRowHdrAttr:

FancyRowHdrAttr

Свойство Granularity – градуировка графика. По умолчанию равно 30 минутам. На рисунке ниже представлена градуировка по 15 минут

Granularity

Свойство GridEndTime – время на котором заканчивается прорисовка сетки. Задается в формате hh:mm:ss. На рисунке ниже представлена сетка, заканчивающаяся в 02:00:00

GridEndTime

Свойство GridLineColor – цвет отрисовки линий сетки.

Свойство GridStartTime – по аналогии со свойством GridEndTime, задает время с которого начинается сетка, также задается в формате hh:mm:ss

Свойство Grouping – определяет способ группировки столбцов. Может принимать одно из следующих значений:

grNone – без группировки

grNone

grDate – группировка по дате. Здесь важно отметить, что колонки в случае группировки по дате должны следовать в коллекции по порядку, т.е. как на рисунке – сначала две колонки на 20-е число, затем на 19 или наоборот. Если колонки расположены не по порядку – группировка не происходит.

grDate

grResource – группировка по заголовку (первые две колонки имеют одно и тоже название)

grResource

grCustom – смешанная группировка

grCustom

Свойства HdrAttr – группа свойств заголовка компонента. В этой группе определяются свойства для заголовков не выделенных столбцов. Значение свойств не распространяются на заголовки групп.

Для заголовка можно определить следующие свойства:

Color:TColor — цвет заголовка

Font:TFont – настройки шрифта

Frame3D: boolean – определяет будет ли рамка заголовков рельефной

FrameColor: TColor – цвет рамки

ParentColor: boolean – определяет будет ли использоваться настройка шрифта родительского компонента

TitleRotation: integer – поворот заголовка. Используется, если свойство ColTitleStyle имеет значение ctsRotated.

Демонстрация вышеперечисленных свойств представлена на рисунке ниже.

HdrAttr

Как видно по рисунку – первые два столбца неактивны, следовательно на них распространяются свойства из HdrAttr, также видно, что заголовок группы остается неизменным. Для настройки активных столбцов сетки следует использовать свойство SelHdrAttr.

Свойства MinColWidth и MinRowHeight – определяют минимальную ширину и высоту столбца и строки сетки.

Свойства PrimeTime – группа свойств для настройки рабочего времени (прайм-тайма). Определяются следующие свойства:

Color: TColor – цвет сетки для прайм-тайма

EndTime: TTime – время окончания прайм-тайма (по умолчанию 17:00:00)

StartTime: TTime – время начала прайм-тайма (по умолчанию 08:00:00)

Вид сетки с настройками прайм-тайма по умолчанию представлен на рисунке ниже:

primetime

Свойство RowHdrType – задает внешний вид шкалы времени. Может принимать следующие значения:

rhFancy – “модный” вид. Установка по-умолчанию

rgGrid – табличная форма (см. рисунок)

rhGrid

Свойства RowHdrWidth, RowHdrHeight – определяет ширину и высоту столбца времени.

Свойство ScheduleManager – определяет менеджер расписания по которому будет выстраиваться сетка.

Свойство SelCellAttr – определяет внешний вид выделенной ячейки в сетке расписания. Используются следующие свойства:

Color: TColor – цвет выделенной ячейки

FrameWidth: integer – толщина рамки выделения

Style – стиль выделения. Может принимать следующие значения:

scsSolid – сплошная рамка (по умолчанию)

scsCombo – комбинированное выделение (scsSolid+scsFrame)

scsFrame – выделение рамкой

Свойства SelFancyRowHdrAttr аналогично свойствам из FancyRowHdrAttr (см. выше), но применяются к заголовкам выделенной строки

Свойства GroupHdr и SelGroupHdr – свойства для отрисовки заголовка группы в невыбранном и выбранном состояниях соответственно. Определяются следующие свойства:

Color: TColor – цвет заголовка

Font: TFont – настройки шрифта заголовка

Frame3D: boolean – определяет будет ли рамка заголовка рельефной (True) или нет (False)

FrameColor: TColor – цвет рамки

ParentColor: boolean – определяет будет ли использоваться настройка шрифта родительского компонента

TitleRotation: integer – поворот заголовка

Вид заголовка группы с настроенными свойствами представлен на рисунке:

GroupHdr

Свойство TimeBlocks – коллекция блоков времени. Смысл этих блоков примерно тот же, что и у колонок, о за одним исключением – если определяется блок времени, то остальные строки, идущие за ним в сетке становятся неактивными. Например, на рисунке ниже компонент TjvTFDays содержит три временных блока – все строки ниже блоков не выделяются кликом мышки:

TimeBlocks

Для каждого блока можно определить следующие свойства:

AllowAppts: boolean – разрешить размещение новых событий в рамках блока.

Length: integer – количество строк сетки, охватываемых одним блоком (по умолчанию 1)

Name: string – имя блока

Title: string – заголовок блока

Для настройки внешнего вида блоков времени необходимо использовать группу свойств TimeBlockProps.

Свойство TimeFormat – определяет отображение времени. Может принимать следующие значения:

t – отображение времени в формате hh:mm, например, 12:10

tt – отображение времени с секундами в формате hh:mm:ss, например 12:10:00

Свойство Weekend – определяет дни недели, которые будут считаться выходными (по умолчанию это суббота и воскресенье)

Свойство WeekendColor – определяет цвет всей сетки, когда дата соответствует выходному дню.

Вот, пожалуй, тот набор свойств компонента TjvTFDays, которые мы можем использовать без предварительного разбора методов и событий компонента. Как можно заметить, в этой статье я не рассказал о свойствах, которые определяют вид событий на сетке. К этим свойствам мы ещё вернемся, когда будем разбирать пример использования компонента. Вообще, когда речь заходит о свойствах, определяющих внешний вид компонента (как в этой статье) то у меня в последнее время возникает мысль о том, что не помешала бы небольшая видеосъемка того как работают те или иные свойства в запущенном приложении, но, как это часто бывает — лень снимать :) Может когда и найду подходящую программку для записи видео и чего-нибудь наснимаю.

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
2 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Procliser
Procliser
23/03/2019 12:45

Сердечное приветствие всем. У меня проблема, если у кого-то есть идея, что делать в следующем случае. Компонент JvTFDays библиотеки JEDI (JVCL). он ведет себя по-разному, когда компилируется в Delphi 7 и когда он компилируется в Delphi XE Мне нужно, чтобы он выглядел так, как он ведет себя с Delphi 7, я не могу найти параметр.

Delhi7:

Приложение 2019-03-23 at 00-20-06.png 117.26KB 0 скачиваний

 

Мне нужны встречи, чтобы быть полным, а не вырезать.

 

Спасибо за вашу помощь.

Procliser
Procliser
23/03/2019 13:06

Сердечное приветствие всем. У меня проблема, если у кого-то есть идея, что делать в следующем случае. Компонент JvTFDays библиотеки JEDI (JVCL). он ведет себя по-разному, когда компилируется в Delphi 7 и когда он компилируется в Delphi XE Мне нужно, чтобы он выглядел так, как он ведет себя с Delphi 7, я не могу найти параметр.

Мне нужны встречи, чтобы быть полным, а не вырезать.

Спасибо за вашу помощь.