В том случае, если выполняется задание по проектированию конкретных компонентов, проектировать экраны и связи между ними не надо, а необходимо выполнить следующее (с учетом того, что функциональность компонента и требования к его внешнему виду уже определены):
· определить базовые компоненты (компоненты, от которых будет производиться наследование);
· определить доступные для изменения свойства компонента (какие средства будут предоставлены программисту, какие свойства будут доступны конечному пользователю);
· определить методы (перекрываемые и вновь создаваемые).
Пример
Определяем те визуальные части компонентов, вид которых можно изменять с помощью используемых файлов ресурсов; цвет некоторых из них также можно менять из окна инспектора объектов.
Для компонента TMyCheckBox:
- CB_BORDER – вид рамки, возникающей при наведении мыши на компонент;
- CB_DISFLAG – вид флага компонента в том случае, если последний неактивен и возможны только два его состояния;
- CB_DISGRAYED – вид флага компонента в том случае, если последний неактивен и возможны все три его состояния;
|
|
- CB_FLAG – вид флага активного компонента в состоянии Checked;
- CB_GRAYED – вид флага активного компонента в состоянии Grayed;
- CB_PRESS – вид самой флаговой кнопки в то время, когда пользователь нажимает на нее, чтобы ее выбрать;
- CB_UNPRESS – вид самой флаговой кнопки в течение всего того времени, когда пользователь на нее не нажимает.
Для компонента TMyRadioButton:
- RD_BORDER – вид рамки, возникающей при наведении мыши на компонент;
- RD_DISABLED – вид переключателя в том случае, если он неактивен, т.е. свойство Enabled имеет значение False;
- RD_DISFLAG – вид флага переключателя в том случае, если последний неактивен;
- RD_FLAG – вид флага активного переключателя;
- RD_PRESS – вид самого переключателя в то время, когда пользователь нажимает на него, чтобы его выбрать;
- RD_UNPRESS – вид самого переключателя в течение всего того времени, когда пользователь на него не нажимает.
Определяем необходимые свойства компонентов, с помощью которых можно изменять их внешний вид. Для компонента TMyCheckBox такими свойствами являются:
- BackgroundColor – определяет цвет фона флаговой кнопки;
- GrayedColor – определяет цвет флаговой кнопки в состоянии Grayed (не уверен);
- BorderColor – определяет цвет рамки, возникающей вокруг флаговой кнопки при наведении на нее мыши;
- ApplyColor – определяет, требуется ли применять вышеупомянутые настройки цвета к компоненту.
Для компонента TMyRadioButton имеются следующие аналогичные свойства:
- BackgroundColor – определяет цвет фона переключателя;
- FlagColor – определяет цвет флага переключателя;
- BorderColor – определяет цвет рамки, возникающей вокруг переключателя при наведении на него мыши;
|
|
- ApplyColor – определяет, требуется ли применять вышеупомянутые настройки цвета к компоненту.
Определяем методы, применяющиеся при использовании данных компонентов для изменения их внешнего вида. Для TmyCheckBox – это следующие процедуры, изменяющие указанные свойства:
- SetBackgroundColor;
- SetGrayedColor;
- SetBorderColor;
- SetApplyColor.
Для TMyRadioButton:
- SetBackgroundColor;
- SetFlagColor;
- SetBorderColor;
- SetApplyColor.