Свойства компонента ListBox




 

Создание элементов (пунктов) списка компонента программно может быть выполнено с помощью методов его свойства Items – Add, Append, Insert или LoadFromFile.

ComboBox – комбинированный список, раскрывающийся список. Данный компонент является комбинацией списка ListBox и текстового поля Edit, поэтому большая часть его свойств и методов заимствованы у этих компонентов. Однако, существуют пять модификаций компонента, определяемые его свойством Style:

· csSimple – в этой модификации для смены элемента списка, отображаемого в его окне, следует активизировать компонент и использовать клавиши–стрелки ↑ и ↓.

· csDropDown – список можно открыть и выбрать элемент мышью, ввести в список первые символы элемента, использовать клавиши–стрелки ↑ и ↓. Данный вариант в Инспекторе объектов задаѐтся по умолчанию.

· csDropDownList – в этой модификации поле списка работает в режиме отображения выбранного элемента, но в это поле нельзя ввести новый элемент.

· Модификации csOwnerDrawFixed и csOwnerDrawVariable используются для программной прорисовки списка.

 

Для ввода и/или отображения даты и времени используется компонент DateTimePicker.

MonthCalendar – компонент для выбора или отображения даты. Он очень похож на календарь, который появляется в компоненте DateTimePicker, но в отличие от последнего может отображать одновременно несколько смежных месяцев – в зависимости от своих размеров.

Практическая часть.

1. Создать новый проект.

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

· Размер формы: ширина – 800 пикселей, высота – 600 пикселей.

· Заголовок формы – Лабораторная работа № 18.

· Для предотвращения изменения размера окна указанные размеры задать в свойстве Constraints формы.

3. С использованием компонентов сконструировать интерфейс программы.

В интерфейсе использовать:

· Для отображения списка цветов текста в поле – список ListBox

· Для отображения списка с размерами текста в поле – ComboBox

· Для отображения текста в текстовом поле – Memo

· Для дат использовать DateTimePicker и MonthCalendar

· Для календаря MonthCalendar настроить свойства CalColors

4. Логика работы программы.

При выборе элемента в списке Цвет текста в Текстовом поле должен измениться цвет самого текста.

Это можно сделать следующим образом:

procedure TForm1.ListBox1Click(Sender: TObject);

begin

case ListBox1.ItemIndex of

0: Memo1.Font.Color:= $0000FF; //красный

1: Memo1.Font.Color:= $005AFF; //оранжевый

2: Memo1.Font.Color:= $00FFFF; //жѐлтый

3: Memo1.Font.Color:= $008000; //зелѐный

4: Memo1.Font.Color:= $FFFF00; //голубой

5: Memo1.Font.Color:= $FF0000; //синий

6: Memo1.Font.Color:= $800080; //фиолетовый

end;

end;

В данном примере цвет, который необходимо выбрать, можно указать не в виде названия (соответствующего обозначения просто может не быть совсем), а в виде шестнадцатеричного кода.

Всякий цвет, используемый в стандартной палитре, имеет три основных цвета – красный, зелѐный, голубой – RGB. Все остальные цвета являются производными от этих трѐх основных. Каждый из этих трѐх цветов имеет 256 градаций цвета – оттенков. Значения цвета могут быть в диапазоне от 0 до 255. Значению 0 соответствует минимум этого цвета (он отсутствует), 255 – максимум. Для обозначения объѐма цвета используется шестнадцатеричное представление числа: соответственно 0(10) = 00(16) и 255(10) = FF(16).

Соответственно, шестнадцатеричный код цвета будет обозначаться в виде последовательности из трѐх шестнадцатеричных чисел.

Для большинства систем программирования порядок цветов задаѐтся в виде RGB, т.е. на первом месте (старший байт) стоит компонент красного цвета, на втором – зелѐного, на третьем – голубого. В Delphi этот порядок – обратный, т.е. BGR. Следовательно, там, где в обычной ситуации, например в HTML, красный цвет обозначается как $FF0000, то в Delphi – $0000FF.

Для изменения цвет текста в текстовом поле Memo используется список с перечнем размеров шрифта – ряд чисел от 8 до 24 с интервалом 2.

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

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

case Combobox1.ItemIndex of

0: Memo1.Font.Size:= 8;

1: Memo1.Font.Size:= 10;

2: Memo1.Font.Size:= 12;

3: Memo1.Font.Size:= 14;

4: Memo1.Font.Size:= 16;

5: Memo1.Font.Size:= 18;

6: Memo1.Font.Size:= 20;

7: Memo1.Font.Size:= 22;

8: Memo1.Font.Size:= 24;

end;

end;

Для расчѐта количества дней между выбранными датами в списке с датами и календаре используются процедуры с одинаковым содержимым. Для списка дат – процедура на событие OnChange, а для календаря создаѐтся процедура на событие – OnClick.

Содержимое этих процедур может быть одинаковым и иметь следующий вид:

var z: integer; //Объявим переменную для расчѐта числа дней

begin

//Используем функцию расчѐта количества дней межу двумя датами из разных календарей

z:= DaysBetween(DateTimePicker1.Date, MonthCalendar1.Date);

//Полученное числовое значение отображаем в текстовой метке.

Label9.Caption:= IntToStr(z);

end;

Очень важное замечание по работе с датами!

При использовании данных, имеющих тип данных и применении компонентов, работающих с датами, при компиляции приложения вначале возникает ошибка. В окне сообщений указано на то, что использован неопределѐнный идентификатор – в роли неопределѐнного идентификатора выступает имя одной из функций, выполняющей обработку данных в формате даты. Это происходит по той причине, что при использовании функций работы с датами необходимо в заголовочную часть проекта дополнительно добавить имя модуля DateUtils. Данный модуль из библиотеки модулей Delphi содержит функции и процедуры работы с датами, однако автоматически он не добавляется в блок uses! Необходимо дописать в этот блок имя модуля! После дополнения этого модуля блок uses может иметь следующий вид:

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, DateUtils;

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: