|
|
Отображение различных динамических индикаторов на базе визуальных компонентов TGauge и TProgressBar.
var tmr_Busy=false;
// Главная форма frm=new TForm(); frm.Caption="JS+ - примеры Динамические индикаторы"; frm.Width =525; frm.Height=375;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=' Нажмите кнопку "Старт"';
// Кнопка btn=new TButton(frm); btn.Caption="Старт"; btn.Left=frm.ClientWidth-btn.Width-10; btn.Top =stb.Top-btn.Height-10; btn.OnClick=btn_Click;
// Панель закладок pgc=new TPageControl(frm); pgc.SetBounds(10,10,frm.ClientWidth-20,btn.Top-20);
for (i=0;i<5;i++) { // Закладка tsh=new TTabSheet(pgc);
// Индикатор на закладке gau=tsh.cmpTag=new TGauge(tsh); gau.BorderStyle=bsNone; gau.ShowText=true;
switch (i) { case 0: tsh.Caption="HorizontalBar"; gau.Kind=gkHorizontalBar; gau.Width =tsh.ClientWidth-30; gau.Height=tsh.TextHeight("0")+8; gau.Left=(tsh.ClientWidth -gau.Width )/2; gau.Top =(tsh.ClientHeight-gau.Height)/2; gau.BorderStyle=bsSingle; break;
case 1: tsh.Caption="Needle"; gau.Kind=gkNeedle; gau.Width =tsh.ClientHeight-30; gau.Height=gau.Width/2; gau.Left=(tsh.ClientWidth -gau.Width )/2; gau.Top =(tsh.ClientHeight-gau.Height)/2; break;
case 2: tsh.Caption="Pie"; gau.Kind=gkPie; gau.Width=gau.Height=tsh.ClientHeight-30; gau.Left=(tsh.ClientWidth-gau.Width)/2; gau.Top =15; break;
case 3: tsh.Caption="Text"; gau.Kind=gkText; gau.Width =tsh.TextWidth("100%")*2; gau.Height=tsh.TextHeight("0")+8; gau.Left=(tsh.ClientWidth -gau.Width )/2; gau.Top =(tsh.ClientHeight-gau.Height)/2; gau.BorderStyle=bsSingle; break;
case 4: tsh.Caption="VerticalBar"; gau.Kind=gkVerticalBar; gau.Width =tsh.TextWidth("100%")+8; gau.Height=tsh.ClientHeight-30; gau.Left=(tsh.ClientWidth -gau.Width )/2; gau.Top =(tsh.ClientHeight-gau.Height)/2; gau.BorderStyle=bsSingle; } }
// Таймер tmr=new TTimer(frm); tmr.Interval=50; tmr.OnTimer=tmr_Timer;
frm.ShowModal();
// Обработчик события OnClick function btn_Click(btn) { var stb_Str=' Нажмите кнопку "';
switch (btn.numTag=1-btn.numTag) { case 0: btn.Caption="Старт"; tmr.Enabled=false; break;
case 1: btn.Caption="Стоп"; tmr.Enabled=true; }
stb.SimpleText=stb_Str+btn.Caption+'"'; }
// Обработчик события OnTimer function tmr_Timer(tmr) { if (tmr_Busy) return; tmr_Busy=true;
var gau=pgc.Pages[pgc.ActivePageIndex].cmpTag;
switch (gau.Progress) { case gau.MinValue: gau.numTag= 1; Sleep(200); break; case gau.MaxValue: gau.numTag=-1; Sleep(200); }
gau.Progress+=gau.numTag; tmr_Busy=false; }
|
var VSW=GetSystemMetrics(SM_CXVSCROLL);
// Главная форма frm=new TForm(); frm.Caption="JS+ - примеры Динамические индикаторы"; frm.Width =525; frm.Height=375;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=' Нажмите кнопку "Старт"';
// Кнопка btn=new TButton(frm); btn.Caption="Старт"; btn.Left=frm.ClientWidth-btn.Width-10; btn.Top =stb.Top-btn.Height-10; btn.OnClick=btn_Click;
// Переключатель chb=new TCheckBox(frm); chb.Text="Свойство Smooth"; chb.Width=chb.TextWidth(chb.Text)+VSW; chb.Left=10; chb.Top =btn.Top+(btn.Height-chb.Height)/2; chb.OnClick=chb_Click;
// Панель закладок pgc=new TPageControl(frm); pgc.SetBounds(chb.Left,10,frm.ClientWidth-20,btn.Top-20);
// Закладки for (i=0;i<2;i++) { // Закладка tsh=new TTabSheet(pgc);
// Индикатор на закладке prb=tsh.cmpTag=new TProgressBar(tsh); prb.Step=2;
switch (i) { case 0: tsh.Caption="Горизонтальный"; (pbh=prb).Orientation=pbHorizontal; prb.Width =prb.Max=tsh.ClientWidth-30; prb.Height=25; prb.Left=(tsh.ClientWidth -prb.Width )/2; prb.Top =(tsh.ClientHeight-prb.Height)/2; break;
case 1: tsh.Caption="Вертикальный"; (pbv=prb).Orientation=pbVertical; prb.Width =25; prb.Height=prb.Max=tsh.ClientHeight-30; prb.Left=(tsh.ClientWidth -prb.Width )/2; prb.Top =(tsh.ClientHeight-prb.Height)/2; } }
// Таймер tmr=new TTimer(frm); tmr.Interval=10; tmr.OnTimer=tmr_Timer;
chb_Click(chb); frm.ShowModal();
// Обработчик события OnClick переключателя function chb_Click(chb) { pbh.Smooth= pbv.Smooth=(chb.State==cbChecked) ? true : false; ProcessMessages(); }
// Обработчик события OnClick кнопки function btn_Click(btn) { var stb_Str=' Нажмите кнопку "';
switch (btn.numTag=1-btn.numTag) { case 0: btn.Caption="Старт"; tmr.Enabled=false; break;
case 1: btn.Caption="Стоп"; tmr.Enabled=true; }
stb.SimpleText=stb_Str+btn.Caption+'"'; }
// Обработчик события OnTimer function tmr_Timer(tmr) { var prb=pgc.Pages[pgc.ActivePageIndex].cmpTag,p=prb.Position;
if (p==prb.Max) p=prb.Min; else if ((p+=prb.Step)>prb.Max) p=prb.Max;
prb.Position=p; }
|
|
JS+ | Руководство пользователя
|
|
|
|
|
|