Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

doc:visscada:visscada_sidebar_zdvatm_pas [2021/11/05 18:17]
denis создано
doc:visscada:visscada_sidebar_zdvatm_pas [2021/11/05 18:20] (текущий)
denis
Строка 1: Строка 1:
-====== ​_prjprocs.pas ======+====== ​SidebarZdvaTm.pas ====== 
 + 
 +<file pascal SidebarZdvaTm.pas>​ 
 +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.
  
-<file pascal _prjprocs.pas>​ 
 </​file>​ </​file>​
doc/visscada/visscada_sidebar_zdvatm_pas.1636125436.txt.gz · Последние изменения: 2021/11/05 18:17 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0