Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Методические указания. 1. Компонент Timer (страница System)




1. Компонент Timer (страница System)

Таймер - это невизуальный компонент, который используется для запуска процедур, функций и событий в указанные интервалы времени.

Основные свойства:

¨ Interval – интервал временив миллисекундах.

¨ Enabled – управление работой таймера (используется для запуска/остановки таймера)

ú true таймер запущен

ú false таймер остановлен

Эти свойства можно менять в процессе проектирования в окне Инспектора Объектов и в процессе выполнения программы.

Основное событие:

¨ OnTimer – выполняется при истечение времени, указанного в свойстве Interval

 

v Пример. В качестве примера создадим бегущую строку.

Определим строку, которую будем использовать в качестве бегущей, как глобальную переменную типа AnsiString. Описать глобальную переменную нужно в заголовочном модуле формы (с расширением «. h»), а определить – в основном модуле формы (имеющим расширение «.cpp »). Чтобы быстро открыть заголовочный модуль можно использовать сочетание клавиш <Ctrl>+F6.

Если программа называется Name:

1. Для описания глобальной переменной типа AnsiString нужно в заголовочный модуль (файл Name.h) дописать:

extern AnsiString Str;

2. Для определения - в основном модуле (файл Name.cpp) вне функций написать:

AnsiString Str=”Это пример бегущей строки……….”;

Строка будет располагаться в окне редактирования Edit. Чтобы сделать строку бегущей, надо использовать таймер. Для этого на форме надо разместить компонент Timer и задать его свойства

Þ Interval = 100

Þ Enabled = true

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

void __fastcall TForm1::Timer1Timer (TObject *Sender)

{ Edit1->Clear();

if (!Str.IsEmpty()) // Если строка не пуста

{ Edit1->Text = Str;
char first = Str[1];

for (int i=1; i < Str.Length(); i++) //Циклический сдвиг строки

Str[i] = Str[i+1]; //на один символ влево

Str[Str.Length()] = first;} }

Теперь каждый раз по истечении 100 миллисекунд (0,1 сек) строка в окне редактирования Edit будет циклически сдвигаться влево, т.е. это будет бегущая строка.

2. Компонент PageControl (страница Win32)

PageControl - многостраничная панель, которая позволяет экономить пространство окна приложения, размещая на од­ном и том же месте страницы разное содержание.

Properties

¨ ActivePage - содержит указатель типа TTabSheet на активную страницу

¨ PageCount -число страниц, помещенных на панели (доступно только программно)

Чтобы задавать и редактировать страницы этого ком­понента, надо щелкнуть на нем правой кнопкой мыши. Во всплывшем меню вы можете видеть коман­ды:

ú New Page — создать новую страницу

ú Next Page — переключиться на следующую страницу

ú Previous Page — переключиться на предыдущую страницу

ú Delete Page —удалить страницу

Каждая страница является объектом типа TTabSheet. Это панель, на которой можно размещать любые компоненты. Кроме того каждая страница обладает своими свойствами:

¨ Caption - надпись для страницы

¨ TabVisible - отвечает за видимость вкладки

v Для рассматриваемого примера можно использовать многостраничную панель для экономии места на форме. Например, на этом компоненте можно создать 3 страницы, называющихся (надписанных) так: «Текст», «Скорость», «Размер шрифта». На каждой странице будем помещать управляющие элементы, отвечающие за соответствующие параметры бегущей строки.

 

3. Компонент DateTimePicker (страница Win32)

DateTimePicker визуальный компонент для задания даты или времени.

Основные свойства:

¨ Kind – тип отображаемой информации

ú dtkDate отображение даты.

ú dtkTime отображение времени

¨ Date – значение даты

¨ Time – значение времени

¨ DateFormat – формат отображения даты

ú dfShort дд. мм. гггг (15.03.2004)

ú dfLong дд месяц гггг г. (15 марта 2004 г.)

Время всегда отображается в формате чч:мм:сс (15:45:25)

¨ DateMode – способ изменения даты (в процессе выполнения программы)

ú dmComboBox с помощьювыпадающего календаря

ú dmUpDown с помощью кнопки-счетчика (отдельно по каждому полю)

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

¨ MaxDate – максимальное возможное значение даты

¨ MinDate – минимальное возможное значение даты

Основное событие:

¨ OnChange – выполняется при изменении данных.

Во время выполнения программы наиболее важными является свойство Date или Time (в зависимости от значения, установленного в свойстве Kind). Для изменения их значений в процессе выполнения программы можно использовать следующие методы:

¨ DecodeDate (year, month, day) – разбивает дату на 3 составляющие – год, месяц, день.

¨ DecodeTime (hour, min, sec, msec) - разбивает время на 4 составляющие – часы, минуты, секунды, милисекунды.

¨ FormatString (format) – форматированный вывод даты или времени.
format – символьная строка, например:

ú “ddddd” – дата в формате дд. мм. гггг (15.03.2004)

ú “dddddd” – дата в формате дд месяц гггг г. (15 марта 2004 г.)

ú “tt” – время в формате чч:мм:сс (15:45:25)

 

v Пример. Изменим текст бегущей строки так, чтобы она сообщала о дате, выбранной по календарю. Добавим на страницу “Текст” компонент DateTimePicker и установим его свойства:

Þ Kind = dtkDate

Þ DateFormat = dfLong

Þ DateMode = dmComboBox

В обработчик события OnChange (вызвать ее можно двойным щелчком рядом с названием события на закладке Events Инспектора Объектов) вставить операторы, осуществляющие изменение текста строки:

void __fastcall TForm1::DateTimePicker1Change(TObject *Sender)

{ Str = DateTimePicker1->Date.FormatString("dddddd") + " "; }

 

Теперь каждый раз при нажатии стрелки компонента DateTimePickerпользователь сможет выбрать дату в календаре и соответственно изменится текст бегущей строки.

 

4. Компонент TrackBar (страница Win32)

Компонент TrackBar представляет собой элемент управления в виде ползунка, который пользователь может перемещать курсором мыши или клавишами во время выполнения. Таким образом, пользо­ватель может управлять какими-то процессами: громкостью звука, размером изображения и т.п.

Ползунок может располагаться горизонтально, вертикально, иметь шкалу с различных сторон, иметь какой-то выделенный диапазон шкалы.

Properties

¨ Position – текущее положение. Это свойство можно задавать во время проектирования или программно во время выполнения. При перемещении пользователем ползунка можно прочитать значение Position, характеризующее позицию, в которую пользователь переместил ползунок.

¨ Min, Мах - границы изменения свойства Position

За внешний вид ползунка отвечают свойства:

¨ Orientation - ориентация ползунка:

ú trHorizontal — горизонтальная

ú trVertical — вертикальная

¨ TickMarks - указывает размещение шкалы относительно компонента

ú tmBottomRight - снизу или справа

ú tmTopLeft - сверху или слева

¨ TickStyle - способ изображения шкалы

ú tsAuto - автоматическая прорисовка шкалы

ú tsNone - отсутствие шкалы

¨ Frequency - частота нанесения меток

¨ Cursor -вид курсора, который будет появляться при наведении на компонент

¨ SelStart и SelEnd - позволяют визуально выделить на шкале некоторый диапазон, который о чем-то говорит пользователю, например, рекомендуемый диа­пазон значений. При этом ничто не мешает пользователю выйти за пределы этого диапазона

¨ LineSize - определяют, насколько смещается ползунок, если пользователь управляет им с помощью клавиш со стрелками

¨ PageSize - определяют, насколько смещается ползунок, если пользователь управляет им с помощью клавиш PageUp и PageDown

Основное событие:

¨ OnChange – возникает при перемещении пользователем ползунка. В обработчике этого события можно прочитать значение Position и использовать его для управления каким-то компонентом.

 

v В нашем примере пользователь будет управлять скоростью движения бегущей строки. Для этого на страницу «Скорость» перенесите компонент TrackBar. Поэкспериментируйте с его свойствами TickMarks, TickStyle, Orientation. Установите свойства:

Þ Min=0

Þ Max=10

Þ Position = 5

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

void __fastcall TForm1::TrackBar1Change(TObject *Sender)

{ Timer1->Interval = 200-(TrackBar1->Position)*20; }

 

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, чтобы узнать, какое число задал пользователь

v В нашем примере будем менять размер шрифта. Для этого на страницу «Размер шрифта» добавьте компоненты 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)

 

v Пример программы «Таймер-секундомер»

Поместим на форму 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 = "";

}

}





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 669 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2307 - | 2155 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.