Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
New_Metod Builder.doc
Скачиваний:
2
Добавлен:
10.11.2019
Размер:
652.8 Кб
Скачать

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 = "";

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]