var
 MainMenuOn        : Boolean; { Main menu state                  }
 ToolBarOn         : Boolean; { Toolbar state                    }
 StatusBarOn       : Boolean; { Statusbar state                  }
 DaqSystemOn       : Boolean; { DAQ SYSTEM window state          }
{
Спрятать\показать основное меню
}
procedure DoMainMenu;
var r:Real;
begin
 if MainMenuOn
 then r:=eval('@system @async @view show FormCrw32.MainMenu')
 else r:=eval('@system @async @view hide FormCrw32.MainMenu');
 MainMenuOn:=not MainMenuOn;
 b:=voice(snd_Click);
end;
{
Спрятать\показать панель инструментов
}
procedure DoToolBar;
var r:Real;
begin
 if ToolBarOn
 then r:=eval('@system @async @view show FormCrw32.ToolBar')
 else r:=eval('@system @async @view hide FormCrw32.ToolBar');
 ToolBarOn:=not ToolBarOn;
 b:=voice(snd_Click);
end;
{
Спрятать\показать статусную строку
}
procedure DoStatusBar;
var r:Real;
begin
 if StatusBarOn
 then r:=eval('@system @async @view show FormCrw32.StatusBar')
 else r:=eval('@system @async @view hide FormCrw32.StatusBar');
 StatusBarOn:=not StatusBarOn;
 b:=voice(snd_Click);
end;
{
Спрятать\показать DAQ SYSTEM
}
procedure DoDaqSystem;
var r:Real;
begin
 if DaqSystemOn
 then r:=eval('@system @async @view norm FormDaqControlDialog')
 else r:=eval('@system @async @view min  FormDaqControlDialog');
 DaqSystemOn:=not DaqSystemOn;
 b:=voice(snd_Click);
end;
{
Выход из DAQ
}
procedure DoExitDaq;
var r:Real;
begin
 r:=eval('@system @async SaveGuard=@guard');
 r:=eval('@system @async @guard root');
 r:=eval('@system @async _Daq_Force_Stop_=1');
 r:=eval('@system @async _Daq_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @view norm FormDaqControlDialog');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqStop');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqDone');
 r:=eval('@system @async @guard %SaveGuard');
 r:=eval('@system @async SaveGuard=');
 b:=voice(snd_Click);
end;
{
Выход из CRW
}
procedure DoExitCrw;
var r:Real;
begin
 r:=eval('@system @async SaveGuard=@guard');
 r:=eval('@system @async @guard root');
 r:=eval('@system @async _Daq_Force_Stop_=1');
 r:=eval('@system @async _Daq_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @view norm FormDaqControlDialog');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqStop');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqDone');
 r:=eval('@system @async _Crw_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @menu run FormCrw32.ActionFileExit');
 r:=eval('@system @async @guard %SaveGuard');
 r:=eval('@system @async SaveGuard=');
 b:=voice(snd_Click);
end;
{
Выход из Windows через 15 сек
How = l/s/r = logout/stop/restart
}
procedure DoExitWin(How:Char);
var r:Real;
begin
 r:=eval('@system @async SaveGuard=@guard');
 r:=eval('@system @async @guard root');
 r:=eval('@system @async _Daq_Force_Stop_=1');
 r:=eval('@system @async _Daq_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @view norm FormDaqControlDialog');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqStop');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqDone');
 r:=eval('@system @async @run -hide '+GetComSpec+' /c '
        +AddBackSlash(ExtractFilePath(GetComSpec))+'shutdown.exe -'+How+' -t 15');
 r:=eval('@system @async _Crw_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @menu run FormCrw32.ActionFileExit');
 r:=eval('@system @async @guard %SaveGuard');
 r:=eval('@system @async SaveGuard=');
 b:=voice(snd_Click);
end;
{
Перезагрузка DAQ
Принудительный старт при ForceStart=true
}
procedure DoRestartDaq(cfg:String;ForceStart:Boolean);
var r:Real;
begin
 r:=eval('@system @async SaveGuard=@guard');
 r:=eval('@system @async @guard root');
 r:=eval('@system @async _Daq_Force_Stop_=1');
 r:=eval('@system @async _Daq_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @view norm FormDaqControlDialog');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqStop');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqDone');
 r:=eval('@system @async _Daq_Force_Start_='+str(ord(ForceStart)));
 r:=eval('@system @async @run '+ParamStr('ProgName')+' '+cfg);
 r:=eval('@system @async @sleep 100');
 r:=eval('@system @async @async @guard %SaveGuard');
 r:=eval('@system @async @async SaveGuard=');
 b:=voice(snd_Click);
end;
{
Перезагрузка DAQ, другая версия
Принудительный старт при ForceStart=true
}
procedure DoReloadDaq(cfg:String;ForceStart:Boolean);
var r:Real;
begin
 r:=eval('@system @async SaveGuard=@guard');
 r:=eval('@system @async @guard root');
 r:=eval('@system @async _Daq_Force_Stop_=1');
 r:=eval('@system @async _Daq_Force_Exit_=1');
 r:=eval('@system @async @view max FormCrw32');
 r:=eval('@system @async @view norm FormDaqControlDialog');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqStop');
 r:=eval('@system @async @menu run FormDaqControlDialog.ActionDaqDone');
 if ForceStart then begin
  r:=eval('@system @async @run '+ParamStr('ProgName')+' '+cfg);
  r:=eval('@system @async @sleep 100');
  r:=eval('@system @async @async @view max FormCrw32');
  r:=eval('@system @async @async @view norm FormDaqControlDialog');
  r:=eval('@system @async @async @menu run FormDaqControlDialog.ActionDaqStart');
 end;
 r:=eval('@system @async @async @guard %SaveGuard');
 r:=eval('@system @async @async SaveGuard=');
 b:=voice(snd_Click);
end;
