Язык программирования Delphi. Delphi6 в действии.:
В этой статье я раскажу про некоторые новые компоненты и как ими пользоваться. Я буду рассматривать только простые компоненты не связанные с интернетом и базами данных, потому что эти вопросы за одну статью не опишешь. Тем более, что работа с базой данных изменилась очень сильно.
Рис. 1 Рабочая форма.
На рисунку 1 показана рабочая форма проги, с которой мы будем сегодня играть. На форме у меня находяться основные компоненты:
TValueListEditor c палитры Additional
TColorBox c палитры Additional
TLabeledEdit c палитры Additional
TComboBoxEx c палитры Win32
Установи их на форму, можешь это сделать так же, как и я. Давай рассмотрим эти компоненты в отдельности.
ТValueListEditor - очень удобный компонент для редактирования различных свойств. В моём примере я в качестве свойств задал "человеческие" параметры, такие как ФИО, адрес, телефон ... Они теперь очень удобно располагаются и для пользователя их удобно редактировать.
Рассмотрим основные свойства. В дезайнере тебе доступны несколько интересных вещей:
TitleCaptions - имена заголовков. Щёлкни дважды по этому свойтству и ты увидешь простой текстовый редактор, в котором можешь изменять, добавлять и удалять имена заголовков. Я ввёл там только два заголовка - "свойство" и "значение".
FixedColor - Цвет фиксированной колонки.
FixedCols - Индекс фиксирванной колонки. По умолчанию стоит 0, т.е. фиксированной колонки нет. Измени это значение на 1, чтобы сделать первую колонку фиксированной.
Strings - Имена свойств. Здесь я уже забил кучу значений:
Фамилия
Имя
Отчество
Ник
Год рождения
Место рождения
Адрес
Телефон
Больше в дезайнере пока нет ничего особо заслуживающего нашего внимания.
Теперь давай немного поШкодим. Создай обработчик события для формы OnShow. В нём мы напишем следующее:
procedure TForm1.FormShow(Sender: TObject);
begin
ValueListEditor1.ItemProps[6].EditStyle:=esPickList;
ValueListEditor1.ItemProps[6].PickList.Add('Москва');
ValueListEditor1.ItemProps[6].PickList.Add('Питер');
ValueListEditor1.ItemProps[6].PickList.Add('Ростов-на-Дону');
end;
У компонента ТValueListEditor есть свойство ItemProps, в котором можно указывать свойство любой строки. Я изменяю свойство шестой строки (это у меня адрес) с помощью ValueListEditor1.ItemProps[6]. У ItemProps есть свойство EditStyle, которое указывает, как будет выглядить строка в режиме редактирования. В первой строке моего кода я изменяю режим редактирования шестой строки на esPickList. Это означает, что у меня свойство будет редактироватся в виде выпадающего списка (когда пользователь щёлкнет по строке, появится Combobox). Ты такое уже должен был видеть в объектном инспекторе Delphi.
Остальные строки заполняют выпадающий список.
Отлично, маленький редактор свойств почти готов. Теперь выдели его и создай для него обработчик события OnGetEditMask. Тут я написал:
procedure TForm1.ValueListEditor1GetEditMask(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
if ARow=5 then Value:='99/99/9999';
end;
Это событие вызывается каждый раз, когда какой-нибудь строке нужна масска ввода. Я проверяю, если это пятая строка (год рождения), то я задаю маску присваивая её переменной Value, передаваемой мне в качестве параметра функцией обработчиком события.
Параметры задания маски такие же, как и для компонента TMaskEdit. Если ты ни разу не работал с массками, то '99/99/9999' означает, что на месте цифры 9 может быть любое число, а разделитель "/" будет ставится автоматически. "/" - разделитель даты, и в Windows по умолчанию он меняется на точку.
Теперь посмотрим на TTColorBox. В принципе, это простейший ComboBox, который отображает цвета. Давай создадим для него обработчик события OnChange, чтобы прочитать знечение выделенного цвета:
procedure TForm1.ColorBox1Change(Sender: TObject);
begin
ValueListEditor1.Font.Color:=ColorBox1.Selected;
end;
По событию OnChange (выделенный цвет изменился) я присваиваю выделенный цвет ColorBox1.Selected в значение цвета шрифта компонента ValueListEditor1. Это значит, что цвет текста в ValueListEditor1 изменится на выделенный.
В принцепе с цветным ComboBox больше нечего мусолить. Он прост как три копейки. Давай перейдём в ComboBoxEx1. У этого компонента есть свойство ItemsEx. щёлкни дважды по нему и перед тобой появится окно для создания элементов ComboBoxEx1. В этом окне нажми клавишу на клавиатуре "Ins" и создастся новый элемент. В объектном инспекторе ты можешь указать его заголовок (Caption), картинку (ImageIndex) и ещё несколько параметров, которыми ты будешь пользоватся очень редко.
Вот и всё. Остался только LabeledEdit. У него все свойства похожи на TEdit. Все свойства относящиеся к заголовку находятся в свойстве EditLabel. Щёлкни по нему дважды и ты увидешь свойства схожие с TLabel.