Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

SCADA системы

   ShowWindow(Application.Handle, SW_HIDE);
        ShowWindow(Application.MainForm.Handle, SW_HIDE);
       with nidata do
        begin
         cbSize := SizeOf(TNotifyIconData);
         Wnd := Self.Handle;
         uID := 1;
         uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
         uCallBackMessage := WM_MYICONNOTIFY;
         hIcon := Application.Icon.Handle;
         StrPCopy(szTip,Application.Title);
        end;
        Shell_NotifyIcon(NIM_ADD, @nidata);
        ru:=10;
      end;

В  этой  процедуре  приложение  сворачивается  в  системный  Tray,  а  форма
становится невидимой. Окончание работы DDE-сервера вызывается путём  нажатия
левой или правой кнопкой мыши на  иконке  приложения  в  области  системного
Tray. Обработка этого события выполняется в процедуре TDDEServe.WMICON:

      procedure TDDEServe.WMICON(var msg: TMessage);
      begin
       case msg.LParam of
        WM_RBUTTONDOWN,WM_LBUTTONDOWN: close;
       end;
      end;

При   этом,   при   закрытии   окна    приложения    вызывается    процедура
TDDEServe.FormDestroy, в которой происходит удаление  иконки  из  системного
Tray:

      procedure TDDEServe.FormDestroy(Sender: TObject);
      var nidata : TNotifyIconData;
      begin
       with nidata do
        begin
         cbSize := SizeOf(TNotifyIconData);
         Wnd := Self.Handle;
         uID := 1;
        end;
        Shell_NotifyIcon(NIM_DELETE, @nidata);
      end;

Работа  приложения   в   целом   строится   посредством   вызова   процедуры
TDDEServe.Timer1Timer по прерыванию таймера.

      implementation
      {$R *.DFM}
      uses ComObj, activex, ShellApi, shlobj, registry;
      var
        xsin: integer;
        ru:real;
        boolka:boolean;

      procedure TDDEServe.Timer1Timer(Sender: TObject);
      var LPTbyte: byte;
      begin
      xsin:=xsin+1;
      if xsin>1000 then xsin:=xsin-1000;
      DDEItem100.Text:=inttostr(5*(xsin-20*trunc(xsin/20)));
      //пилообразный сигнал
              asm
              mov     dx,379h
              in      al,dx
              and     al,80h
              mov     LPTbyte,al
              end;
      DDEItem200.Text:=inttostr(LPTbyte*100);  //состояние  линии  LPT-порта

      DDEItem300.Text:=inttostr(round(50+50*sin(xsin/20)));
      if (xsin/5)=trunc(xsin/5) then
        if (ru
Пред.1112
скачать работу

SCADA системы

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ