Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование Delphi.doc
Скачиваний:
86
Добавлен:
05.06.2015
Размер:
603.65 Кб
Скачать

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 и использовать его для управления каким-то компонентом.

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

  • Min:=0

  • Max:=10

  • Position := 5

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

procedure TForm1.TrackBar1Change(Sender: TObject)

begin

Timer1.Interval := 200-(TrackBar1.Position)*20;

end;

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 - для запуска таймера после его установки.

По истечению заданного времени появляется сообщение «Время вышло!».

MyForm : TMyForm;

MyProgressBar : TProgressBar;

constructor TMyForm.Create(Owner: TComponent);

begin

MyProgressBar.Visible := false //до запуска таймера индикатор невидим

MyTimer.Enabled := false; //таймер еще не запущен

end;

procedure TMyForm.ButtonStartClick(Sender : TObject);

begin

MyTimer.Enabled := true; //запуск таймера

MyProgressBar.Position := 0; //текущая позиция индикатора обнуляется

MyProgressBar.Max: = UpDownTime.Position; //макс. граница индикатора

//соответствует заданному пользователем числу в EditTimer

MyProgressBar.Visible: = true; //индикатор становится видимым

}

procedure TMyForm.MyTimerTimer(Sender : TObject);

begin //отображение текущего времени в период работы таймера

LabelTime.Caption := Time.FormatString(‘tt’);

//если текущая позиция индикатора меньше максимального значения

if(MyProgressBar.Position < MyProgressBar.Max)

then

begin

inc(MyProgressBar.Position); //увеличиваем текущую позицию

if ((MyTimer.Enabled) and (StrToInt(EditTimer.Text)<>0))

then //если таймер запущен и установлено его значение

EditTimer.Text:=IntToStr(StrToInt(EditTimer.Text)-1);

end //уменьшение времени

else //если время истекло

begin

MyProgressBar.Visible :=false;

MyTimer.Enabled := false;

ShowMessage('Время вышло!’); // вывод сообщения

LabelTime.Caption =’’;

end;

end;