unit SidebarZdvaTm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScadaBase, VisMachine, VisMchb, ExtCtrls,jpeg, SimpleLine, VisButton, Buttons, VisNumericPanel, VisZdva, VisMcha, VisDataboard, VisLabel, VisControl; type TSidebarZdvaTmForm = class(TForm) numTime: TVisNumericPanel; VisButton1: TVisButton; VisButton2: TVisButton; VisButton3: TVisButton; VisButton4: TVisButton; VisButton5: TVisButton; DatPanel: TPanel; Panel1: TPanel; btAuto: TVisButton; btOff: TVisButton; btDir1: TVisButton; btDir2: TVisButton; pnlName: TPanel; btBlok: TVisButton; SostPanel1: TPanel; brdSost: TVisDataboard; btParams: TBitBtn; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; procedure FormActivate(Sender: TObject); procedure brdSostProcess(Sender: TObject); procedure btBlokClick(Sender: TObject); procedure btControlClick(Sender: TObject); procedure pnlNameClick(Sender: TObject); procedure btParamsClick(Sender: TObject); procedure TimeControlClick(Sender: TObject); procedure numTimeClick(Sender: TObject); procedure VisButton3Click(Sender: TObject); private public zdva: TVisZdva; end; implementation uses TrendWindow, MesLogging, Numbers, MesConst, Sidebar, TagStorage, RpVisualGlobal, RpVisualLegacyPanels, RpVisualUtils, RpVisualMain; {$R *.dfm} procedure TSidebarZdvaTmForm.FormActivate(Sender: TObject); begin zdva := TVisZDVA(getSidebarObject); pnlName.Caption := zdva.DeviceName; brdSost.Caption := zdva.DeviceName; brdSost.Process; end; procedure TSidebarZdvaTmForm.brdSostProcess(Sender: TObject); var sost: Integer; s: string; begin s := ''; case brdSost.Tags[0].value of 0: s := zdva.StateMid + ' (жду '+zdva.StateClose+')'; 4: s := zdva.StateMid + ' (жду '+zdva.StateOpen+')'; 1: s := zdva.StateClose; 6: s := zdva.StateOpen; 5: s := zdva.StateClose + ' (жду '+zdva.StateOpen+')'; 2: s := zdva.StateOpen + ' (жду '+zdva.StateClose+')'; 3,7: s := 'Ошибка'; 8: s := 'Адрес'; end; brdSost.objLabel.Caption := s end; procedure TSidebarZdvaTmForm.btBlokClick(Sender: TObject); begin with Sender as TVisButton do SaveMessageText(mcBlok_text, zdva.DeviceName, Hint + ' = ' + iif(objButton.Down, 'Выкл', 'Вкл'), mcBlok_bc, mcBlok_fc); end; procedure TSidebarZdvaTmForm.btControlClick(Sender: TObject); begin with sender as TVisButton do SaveMessageText('Изменение положения задвижки', zdva.DeviceName, Hint + ' = ' + CaptionDown, mcMode_bc, mcMode_fc); end; procedure TSidebarZdvaTmForm.TimeControlClick(Sender: TObject); begin with sender as TVisButton do SaveMessageText('Изменение положения задвижки', zdva.DeviceName, Hint, mcMode_bc, mcMode_fc); end; procedure TSidebarZdvaTmForm.pnlNameClick(Sender: TObject); begin ShowTrendWindow( zdva.DeviceName, GetTagName( brdSost.tags[0].idx), '', 'zdva_', '', 'Состояние: '#13+ '0 - '+zdva.StateMid+' (жду '+zdva.StateClose+')'#13+ '1 - '+zdva.StateClose+' '#13+ '2 - '+zdva.StateOpen+' (жду '+zdva.StateClose+')'#13+ '3 - ошибка '#13+ '4 - '+zdva.StateMid+' (жду '+zdva.StateOpen+')'#13+ '5 - '+zdva.StateClose+' (жду '+zdva.StateOpen+')'#13+ '6 - '+zdva.StateOpen+' '#13+ '7 - ошибка '#13+ '8 - неправильный адрес' ); end; procedure TSidebarZdvaTmForm.btParamsClick(Sender: TObject); begin brdSost.OnControlClick(sender); end; procedure TSidebarZdvaTmForm.numTimeClick(Sender: TObject); begin with sender as TVisNumericPanel do SaveMessageText(mcParam_text, zdva.DeviceName, Hint + ' = ' + objPanel.Caption, mcParam_bc, mcParam_fc); end; procedure TSidebarZdvaTmForm.VisButton3Click(Sender: TObject); begin with Sender as TVisButton do SaveMessageText(mcParam_text, zdva.DeviceName, Hint + ' = ' + iif(objButton.Down, 'Выкл', 'Вкл'), mcParam_bc, mcParam_fc); end; end.