Индикаторы – это диаграммы простейшего вида. Предназначаются они для отображения в текстовом и графическом виде, например, хода выполнения длительных операций. Индикаторы представлены в Delphi двумя компоенентами ProgressBar и Gauge. Компонент ProgressBar был рассмотрен в предыдущем пособии.
Компоннт Gauge расположен на закладке Палитры компонентов Sample. Предназначен он для отображения простейших диаграмм. Gauge представляет собой индикатор, показывающий значение какого-либо параметра в процентном отношении.
Вид диаграммы определяет свойство Kind, которое может принимать следующие значения:
· gkHorizontalBar – горизональный прямоугольник;
· gkVerticalBar– вертикальный прямоугольник;
· gkPie – сектор;
· gkNeedle – спидометр;
· gkText – только текст.
Также компонент Gauge имеет следующие важные свойства:
· BorderStyle типа TBorderStyle определяет вид рамки и может принимать два значения: bsSingle — рамка имеет вид тонкой линии; bsNone – рамка отсутствует.
· ForeColor типа TColor задает цвет индикатора. По умолчанию используется черный цвет clBlack.
|
|
· BackColor типа TColor задает цвет для прорисовки части диаграммы, свободной от индикатора. По умолчанию используется белый цвет clWhite
· MinValue типа Integer определяет минимальное значение отображаемого параметра. На диаграмме принимается за 0%.
· MaxValue типа Integer определяет максимальное значение отображаемого параметра. На диаграмме принимается за 100%.
· Progress типа Integer задает в процентах текущее значение отображаемого параметра.
· ShowText типа Boolean управляет отображением текста на диаграмме. Если свойство ShowText имеет значение True, то вместе с графиком отображается текст. Если свойство имеет значение False, то текст на диаграмме не виден.
Пример:
В этом приложении показано применение различных индикаторов. Вид индикатора выбирается включением соответствующей кнопки RadioButton. Если щелкнуть на кнопке Stop (Button2), прекращает работу таймер. И поскольку индикаторы работают при??????
Парметр n задает направление изменения индикаторов.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Gauge2.Progress:=Gauge2.Progress+1;
if Gauge2.Progress=400 then auge2.Progress:=0;
Gauge3.Progress:=Gauge2.Progress+1;
if Gauge3.Progress=400 then Gauge3.Progress:=0;
Gauge4.Progress:=Gauge2.Progress+1;
if Gauge4.Progress=400 then Gauge4.Progress:=0;
if n=2 then begin
Gauge1.progress:=Gauge1.Progress-1;
if Gauge1.progress=0 then Gauge1.Progress:=200;
end;
Gauge5.Progress:=Gauge5.Progress+1;
if Gauge5.Progress=400 then Gauge5.Progress:=0;
Gauge6.Progress:=Gauge6.Progress+1;
if Gauge6.Progress=400 then Gauge6.Progress:=0;
if n=1 then begin
Gauge1.progress:=Gauge1.Progress+1;
if Gauge1.progress=200 then Gauge1.Progress:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
n:=1;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Gauge1.Kind:=gkPie;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Gauge1.Kind:=gkneedle;
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
Gauge1.Kind:=gkhorizontalbar;
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
Gauge1.Kind:=gkverticalbar;
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
Gauge1.Kind:=gktext;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.Enabled:=false;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
n:=2;
timer1.Enabled:=true;
end;