- •Задание 1.2. Исследуем компонент RadioGroup1
- •Задание 1.3 Изучим полезный оператор With … do.
- •Задание 1.4 Используя данные свойства, запрограммируем щелчок на Button3 так, чтобы отменить выбор всех кнопок с зависимой фиксацией в RadioGroup1.
- •Задание 2.3 Изменим вид отображения компонента DateTimePicker1, при щелчке на CheckBox1.
- •Задание 2.6 Пусть при щелчке на UpDown1 в CheckListBox1 напротив текстовых значений (строк) ставится галочка, а во всех остальных её не будет.
- •Задание 2.8 Рассмотрим компонент генерирующий стандартную анимацию при копировании файлов, поиске файлов, очистки корзины и т.Д.
- •Задание 2.9 Кратко рассмотрим компонент OleContainer1
Задание 1.4 Используя данные свойства, запрограммируем щелчок на Button3 так, чтобы отменить выбор всех кнопок с зависимой фиксацией в RadioGroup1.
Здесь же сбросьте Button3 на форму.
Рис. 4 Окно отмены выбора всех кнопок с зависимой фиксацией
А в обработчике Button3 напишите следующее:
var i:integer;
begin
with RadioGroup1 do
for i:=0 to ComponentCount-1 do
TRadiobutton(Components[i]).Checked:=False;
end;
Здесь мы пробегаем по массиву Components[i] компонента radioGroup1, начиная с нулевого индекса массива, а инструкция TRadiobutton(Components[i]).Checked:=False;
говорит о том, что любой объект компонента RadioGroup1 содержащийся в массиве должен рассматриваться, как объект класса TRadiobutton и к этому объекту мы применяем конкретное действие, в частности изменяем значение его свойства Checked на False.
Запомните конструкцию: TRadiobutton(Components[i]).Checked:=False;
Подобные вещи в Delphi встречаются очень часто при программировании свойств объектов и др. В приведенном примере таится некоторая опасность, а вдруг объект из массива не принадлежит классу TRadiobutton? В этом случае появится сообщение об ошибке. Эта опасность исключается некоторыми приемами мы их рассмотрим в следующем цикле лабораторных работ.
Запустите программу. Программа должна работать правильно. Вернитесь в режим программирования.
Задание 2.1. Изучим Компоненты PageControl1, ListBox1 и ComboBox1
Создайте новый проект. Поместите PageControl1 из палитры win32 на форму.
Назначение компонента PageControl1 – это упрощение создания многостраничных диалоговых окон с отдельным набором элементов управления на каждой странице.
Щелкните правой кнопкой мыши на PageControl1 и выберите New Page, появится вкладка TabSheet1, аналогично создайте ещё 2 вкладки TabSheet2 и TabSheet3.
Теперь удалите TabSheet3 выбрав Delete Page.
Сделаем, так чтобы PageControl1 заполнял всю клиентскую область формы.
Компонент |
Свойство |
Значение свойства |
PageControl1 |
Align |
alClient |
Поместите ListBox1 и ComboBox1 из палитры Standard на форму. Эти компоненты имеют такие же свойства Items, ItemIndex, что и RadioGroup1.
Компонент |
Свойство |
Значение свойства |
ComboBox1 |
Text |
Элементарные частицы |
У компонента ListBox1 выберите свойство Items, и чуть справа щелкните на надписи TSrings, затем наберите там следующее:
Материя - философская категория для обозначения
объективной реальности, которая дана человеку в ощущениях его,
которая копируется, фотографируется, отображается
нашими ощущениями, существуя независимо от них
В. И. Л е н и н (том 18, стр. 131)
Всё должно выглядеть примерно так же как на рисунке:
Рис. 5 Компонент TPageControl это набор окон–компонентов TTabSheet на которых можно размещать компоненты обычным образом
Аналогично у компонента ComboBox1 выберите свойство Items, и чуть справа щелкнув на надписи TSrings, наберите там следующее:
Молекула
Атом
Протон
Нейтрон
Электрон
Пи-мезон
Альфа-частица
Гиперон
мюон
тахион
позитрон
бозон
Запрограммируем, так чтобы при выборе строки в ListBox1 она отображалась в заголовке TabSheet1, а при выборе из выпадающего списка ComboBox1 она отображалась в заголовке TabSheet2.
Для этого в обработчике щелчка (click) на ListBox1 напишите следующее:
TabSheet1.Caption:=ListBox1.Items[ListBox1.ItemIndex];
А в обработчике щелчка(click) на ComboBox1 напишите следующее:
TabSheet2.Caption:=ComboBox1.Items[ComboBox1.ItemIndex];
//TabSheet2.Caption:=ComboBox1.Text; //альтернативный вариант
Запустите программу. Выбирайте произвольно значения в ListBox1 и ComboBox1. Программа должна работать правильно. Вернитесь в режим программирования.
Задание 2.2 Изучим ещё несколько полезных компонентов
Поместите на TabSheet2 следующие компоненты.
Компонент |
Палитра |
StringGrid1 |
Additional |
CheckListBox1 |
Additional |
ColorBox1 |
Additional |
DateTimePicker1 |
Win32 |
MonthCalendar1 |
Win32 |
6 компонентов Animate |
Win32 |
UpDown1 |
Win32 |
OleContainer1 |
System |
А также ещё кнопку BitBtn1, изменив значение её свойства Kind на bkClose, и компонент CheckBox1 напротив DateTimePicker1.
Компонент |
Свойство |
Значение свойства |
CheckBox1 |
Caption |
Изменять DateTimePicker |
Разместите все компоненты так как показано на рисунке 6.
Рис. 6 Набор некоторых полезных компонентов