| 
|  |  | 
| 
|  |  | Отображение различных динамических индикаторов на базе визуальных компонентов 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+ | Руководство пользователя |  |  |  |  |  |  |