- •Объектно-ориентированное программирование
- •Оглавление
- •Лабораторная работа №1 Простой диалог Цель работы
- •Методические указания
- •1. Добавление нового компонента
- •2. Метка Label (страница Standard)
- •3. Окно редактирования Edit (страница Standard)
- •4. Кнопки Button, BitBtn (страницы Standard, Additional)
- •5. Компонент CheckBox (страница Standard)
- •6. Компоненты GroupBox, RadioButton (страница Standard)
- •7. Компонент ComboBox (страница Standard)
- •Пример выполнения задания
- •Int a, b, c; //стороны
- •Задания
- •Лабораторная работа №2 Управляющие компоненты Цель работы
- •Методические указания
- •1 . Компонент Timer (страница System)
- •If (!Str.IsEmpty()) // Если строка не пуста
- •2. Компонент PageControl (страница Win32)
- •3 . Компонент DateTimePicker (страница Win32)
- •4 . Компонент TrackBar (страница Win32)
- •5 . Компонент UpDown (страница Win32)
- •Задания
- •Лабораторная работа №3 Проектирование меню Цель работы
- •Методические указания
- •1 . Многострочные окна редактирования Memo (страница Standart) и RichEdit (страница Win32)
- •2. Создание меню с помощью мастера
- •3. Компоненты MainMenu и РоpupMenu (панель Standart)
- •4. Проектирование меню с помощью Конструктора Меню
- •5. Организация отклика на вызов пункта меню
- •6. Диалоги как модальные формы
- •7. Создание диалогового окна с помощью шаблона
- •8. Вызов диалогового окна пунктом меню
- •9. Прием введенных значений из диалогового окна в основное окно приложения
- •Задания
- •Лабораторная работа №4 Компоненты отображения данных. Вызов стандартных диалогов Цель работы
- •Методические указания
- •1. Компонент ImageList (страница Win32)
- •2. Компонент TreeView (страница Win32)
- •Int NomZach; // номер зачетной книжки
- •Int Shit; //номер читательского билета
- •3. Компонент ListView (страница Win32)
- •4. Компонент OpenDialog (страница Dialogs)
- •5. Компонент FontDialog (страница Dialogs)
- •6. Компонент ColorDialog (страница Dialogs)
- •Задания
- •Лабораторная работа №5 Подготовка справочной системы Цель работы
- •Методические указания
- •1. Создание текстового файла разделов (*.Rtf)
- •Сноска #
- •Сноска к (заглавная латинская буква)
- •2. Создание файла содержания (*.Cnt)
- •3. Создание файла проекта
- •4. Подключение справочной системы к приложению
- •Задание
- •Библиографический список
5 . Компонент UpDown (страница Win32)
UpDown - кнопка-счетчик в сочетании с компонентами Edit и другими позволяющая вводить цифровую информацию. Компонент UpDown превращает окно редактирования Edit в компонент, в котором пользователь может выбирать целое число, изменяя его кнопками со стрелками.
Если установить в true свойство Readonly окна Edit, то пользователь просто не сможет ввести в окно какой-либо свой текст и вынужден будет ограничиться выбором числа.
Основные свойства:
Associate - связывает кнопки со стрелками с одним из оконных компонентов, обычно с Edit.
AlignButton – расположение кнопок
UdLeft – слева от окна
UdRight - справа от окна
Orientation – ориентация кнопок
UdHorizontal - по вертикали (одна под другой)
UdVertical - по горизонтали (одна рядом с другой)
ArrowKeys – управление компонентом с клавиатуры
true - с помощью клавиш со стрелками
false – не управляются с клавиатуры
Min - минимальное значение чисел
Мах - максимальное значение чисел
Increment - приращение числа при каждом нажатии на кнопку
Position - текущее значение числа (в диапазоне Min — Мах)
Wrap - определяет, как ведет себя компонент при достижении максимального или минимального значений
false - при увеличении или уменьшении числа до максимального или минимального значения это число фиксируется на предельном значении и нажатие кнопки, пытающейся увеличить максимальное число или уменьшить минимальное, ни к чему не приводит;
true - попытка превысить максимальное число приводит к его сбросу на минимальное значение. Аналогично, попытка уменьшить минимальное число приводит к его сбросу на максимальное значение, т.е. изменение чисел «закольцовывается»
Основное событие:
OnChanging – возникает при изменении значения UpDown. В обработчике этого события можно читать значения свойства Position, чтобы узнать, какое число задал пользователь
В нашем примере будем менять размер шрифта. Для этого на страницу «Размер шрифта» добавьте компоненты Edit2 и UpDown. Установите свойства компонента UpDown:
Associate = Edit2 (выбрать значение этого из выпадающего списка этого свойства)
Max = 30
Min = 10
Position = 20 (текущее значение)
Increment = 2 (шаг изменения при нажатии стрелок)
В функции UpDown1Changing - обработчике события OnChanging компонента UpDown1 нужно менять размер шрифта в окне редактирования, где расположена бегущая строка:
{ Edit1->Font->Size = UpDown1->Position; }
6 . ProgressBar (Win32)
ProgressBar - индикатор процесса выполнения длительной процедуры.
Properties
Min - минимальное значение
Мах - максимальное значение
Position - текущая позиция (в диапазоне Min — Мах)
Orientation – ориентация компонента
рdHorizontal - вертикально
рdVertical - горизонтально
Step – шаг перемещения индикатора при изменения позиции на 1
Smooth – тип индикатора
true - сплошной
false – разделенный на блоки (1 блок соответствует изменению на 1 позицию, т.е. на величину, указанную в свойстве Step)
Пример программы «Таймер-секундомер»
Поместим на форму MyForm компоненты
MyTimer
EditTimer
UpDownTime - связанный с компонентом EditTimer
LabelTime
Label1 - Caption = «Установка таймера», расположите его рядом с EditTimer
Label2 - Caption = «Текущее время», расположите его рядом с LableTime
MyProgressBar - отображает ход таймера
ButtonStart - для запуска таймера после его установки.
По истечению заданного времени появляется сообщение «Время вышло!».
TMyForm *MyForm;
TProgressBar *MyProgressBar;
void__fastcall TMyForm::TMyForm(TComponent* Owner): Form(Owner)
{
MyProgressBar->Visible = false //до запуска таймера индикатор невидим
MyTimer->Enabled = false; //таймер еще не запущен
}
void __fastcall TMyForm::ButtonStartClick(TObject *Sender)
{ MyTimer->Enabled = true; //запуск таймера
MyProgressBar->Position = 0; //текущая позиция индикатора обнуляется
MyProgressBar->Max = UpDownTime->Position; //макс. граница индикатора
//соответствует заданному пользователем числу в EditTimer
MyProgressBar->Visible = true; //индикатор становится видимым
}
void __fastcall TMyForm::MyTimerTimer(TObject *Sender)
{ //отображение текущего времени в период работы таймера
LabelTime->Caption = Time().FormatString("tt");
//если текущая позиция индикатора меньше максимального значения
if(MyProgressBar->Position < MyProgressBar->Max)
{
MyProgressBar->Position++; //увеличиваем текущую позицию
if ((MyTimer->Enabled) & (StrToInt(EditTimer->Text)!=0))
//если таймер запущен и установлено его значение
EditTimer->Text=IntToStr(StrToInt(EditTimer->Text)-1);
} //уменьшение времени
else //если время истекло
{
MyProgressBar->Visible =false;
MyTimer->Enabled = false;
ShowMessage("Время вышло!"); // вывод сообщения
LabelTime->Caption = "";
}
}