示例#1
0
 } // SS_Update
 void SS_Report(object sender, ReportEventArgs e)
 {
     if (!e.EventActive)
     {
         return;
     }
     ReView();
     if (e.Message != null)
     {
         lblAction.Text = e.Message;
     }
     MakeSound(e.Voice);
     if (e.ForeColor != Color.Empty)
     {
         lblAction.ForeColor = e.ForeColor;
     }
     else
     {
         lblAction.ForeColor = Color.Blue;   //Цвет по умолчанию
     }
     Refresh();
 } // SS_Report
示例#2
0
        } // FillNewStructList

        private void Reaction(string Barcode, Keys Key)
        {
            Mode      OldMode = FCurrentMode;
            ABaseMode oldMM   = MM;

            try
            {
                if (Barcode != null)
                {
                    MM = MM.ReactionBarcodeBase(Barcode);
                }
                else
                {
                    MM = MM.ReactionKeyBase(Key);
                }
            }
            catch (Exception e)
            {
                //Накрылось пиздой по связи. Будем ругаться и выходить,
                //в будущем нужно наверное переход в режим waiting замутить при таком раскладе, я хз или что-то еще в этом духе
                //MM = oldMM;
                try
                {
                    MyReader.Close();
                }
                catch (Exception eInside) { }
                Init(new Waiting(this, null));  //Эта функция, по логике упасть не может никогда и выкинет нас в режим Waiting
                OnChangeMode(new ChangeModeEventArgs(FCurrentMode));
                OnReport(new ReportEventArgs(e.Message, Voice.Bad, Color.Red));
                return;
            }
            FEmployer = MM.Employer;    //Временно
            Const     = MM.Const;       //Временно, рефрешим константы
            if (oldMM.CurrentMode != MM.CurrentMode)
            {
                if (MM.Result != MMResult.Positive)
                {
                    //Что-то полшо не так в методе Init нового режима!
                    ReportEventArgs tmpREA = new ReportEventArgs(MM);   //Создадим с результирующим сфейлившим режимом сообщение, а потом заменим его
                    MM = oldMM;
                    OnReport(tmpREA);
                    return;
                }
                //Произошла смена режима, дальше идет говнокод, который обеспечивает совместимость режимов
                if (FCurrentMode != OldMode)
                {
                    //Код курильщика
                    //ТРЕШАК! РЕЖИМ ЭТОГО ОБЪЕКТА ПОМЕНЯЛСЯ ВНУТРИ НОВОЙ АРХИТИКТУРЫ
                    OnChangeMode(new ChangeModeEventArgs(FCurrentMode));
                }
                else
                {
                    //Код здорового человека
                    OnChangeMode(new ChangeModeEventArgs(MM));
                }
            }
            else if (MM.Result != MMResult.None)
            {
                //Если хоть что-то было, то сообщаем
                OnReport(new ReportEventArgs(MM));
            }
        } // Reaction