コード例 #1
0
 private void menuToggleBit_Click(object sender, EventArgs e)
 {
     ((EnderecamentoLadder)controleSelecionado.getOperandos(0)).Valor = ((EnderecamentoLadder)controleSelecionado.getOperandos(0)).Valor == true ? false : true;
     linkProjeto.programa.ExecutaLadderSimulado();
     this.Invalidate(true);
 }
コード例 #2
0
        public void ControleSelecionado_SolicitaMudarEndereco(ControleLivre sender, Rectangle rect, Type tipo, int valorMax, int valorMin, params object[] faixa)
        {
            AlteraTemporizadorContador Altera = new AlteraTemporizadorContador(sender.getCI());

            if (sender.getOperandos(0) == null)
            {
                MessageBox.Show("Favor selecionar um endereço primeiro", "Alterar configuração", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            switch (sender.getCI())
            {
            case CodigosInterpretaveis.TEMPORIZADOR:
                Altera.Tipo      = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Tipo;
                Altera.Preset    = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Preset;
                Altera.Acumulado = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Acumulado;
                Altera.BaseTempo = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.BaseTempo;
                break;

            case CodigosInterpretaveis.CONTADOR:
                Altera.Tipo      = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Contador.Tipo;
                Altera.Preset    = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Contador.Preset;
                Altera.Acumulado = (Int32)((EnderecamentoLadder)sender.getOperandos(0)).Contador.Acumulado;
                break;

            default:
                break;
            }

            DialogResult _result = Altera.ShowDialog();

            if (_result == DialogResult.OK)
            {
                /// mantem os parametros do ci atualizados
                sender.setOperando(1, Altera.Tipo);
                sender.setOperando(2, Altera.Preset);
                sender.setOperando(3, Altera.Acumulado);
                switch (sender.getCI())
                {
                case CodigosInterpretaveis.TEMPORIZADOR:
                    /// mantem os parametros do ci atualizados
                    sender.setOperando(4, Altera.BaseTempo);

                    ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Tipo      = Altera.Tipo;
                    ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Preset    = Altera.Preset;
                    ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Acumulado = Altera.Acumulado;
                    ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.BaseTempo = Altera.BaseTempo;

                    sender.setOperando(1, ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Tipo);
                    sender.setOperando(2, ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Preset);
                    sender.setOperando(3, ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.Acumulado);
                    sender.setOperando(4, ((EnderecamentoLadder)sender.getOperandos(0)).Temporizador.BaseTempo);

                    break;

                case CodigosInterpretaveis.CONTADOR:
                    ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Tipo      = Altera.Tipo;
                    ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Preset    = Altera.Preset;
                    ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Acumulado = Altera.Acumulado;

                    sender.setOperando(1, ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Tipo);
                    sender.setOperando(2, ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Preset);
                    sender.setOperando(3, ((EnderecamentoLadder)sender.getOperandos(0)).Contador.Acumulado);
                    break;

                default:
                    break;
                }

                sender.Invalidate();
            }
        }
コード例 #3
0
        void Simbolo_Click(object sender, MouseEventArgs e)
        {
            ControleLivre         _cL = (ControleLivre)sender;
            CodigosInterpretaveis _cI = _cL.getCI();

            ProjetoLadder _frmPL;

            _frmPL = frmDiag.linkProjeto;

            if (e.Button == MouseButtons.Right)
            {
                if (_cI != CodigosInterpretaveis.INICIO_DA_LINHA)
                {
                    frmDiag.menuInsereLinha.Enabled = false;

                    frmDiag.menuToggleBit.Enabled = false;
                    if (_cI == CodigosInterpretaveis.PARALELO_INICIAL ||
                        _cI == CodigosInterpretaveis.PARALELO_FINAL ||
                        _cI == CodigosInterpretaveis.PARALELO_PROXIMO)
                    {
                        frmDiag.menuEnderecamento.Enabled = false;
                        frmDiag.menuEnderecamento.Visible = false;

                        /// Extensao de paralelo - acima/abaixo
                        ///    somente sobre simbolos de paralelo
                        frmDiag.menuEstenderParaleloAcima.Enabled  = true;
                        frmDiag.menuEstenderParaleloAcima.Visible  = true;
                        frmDiag.menuEstenderParaleloAbaixo.Enabled = true;
                        frmDiag.menuEstenderParaleloAbaixo.Visible = true;
                    }
                    else
                    {
                        frmDiag.menuEnderecamento.Enabled = true;
                        frmDiag.menuEnderecamento.Visible = true;

                        if (_cL.getOperandos(0) != null)
                        {
                            frmDiag.menuToggleBit.Enabled = true;
                        }
                        else
                        {
                            frmDiag.menuToggleBit.Enabled = false;
                        }

                        TreeNode _NoEnderecamento = _frmPL.ArvoreProjeto.Nodes["NoProjeto"].Nodes["NoEnderecamento"];

                        ToolStripMenuItem _mnu = null;
                        //ToolStripMenuItem _mnuSub = null;

                        foreach (TreeNode _NoEnd in _NoEnderecamento.Nodes)
                        {
                            //_mnu = new ToolStripMenuItem(_end.Nome);
                            switch (_NoEnd.Text)
                            {
                            case "Memoria":
                                _mnu = frmDiag.menuMemoria;
                                break;

                            case "Temporizadores":
                                _mnu = frmDiag.menuTemporizador;
                                break;

                            case "Contadores":
                                _mnu = frmDiag.menuContador;
                                break;

                            case "Entradas":
                                _mnu = frmDiag.menuEntrada;
                                break;

                            case "Saidas":
                                _mnu = frmDiag.menuSaida;
                                break;
                            }

                            EnderecamentoLadder _end = null;
                            if (_cL.getOperandos(0) != null)
                            {
                                Object obj = _cL.getOperandos(0);
                                if (obj.GetType().ToString() == "LadderApp1.EnderecamentoLadder")
                                {
                                    _end = (LadderApp.EnderecamentoLadder)obj;
                                }
                            }

                            _mnu.DropDownItems.Clear();
                            foreach (TreeNode _NoEndSub in _NoEnd.Nodes)
                            {
                                _mnu.DropDownItems.Add(_NoEndSub.Text);

                                if (_end != null)
                                {
                                    if (_end.Nome == _NoEndSub.Text)
                                    {
                                        _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Select();
                                    }
                                }

                                _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Name   = _NoEndSub.Text;
                                _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Tag    = _NoEndSub.Tag;
                                _mnu.DropDownItems[_mnu.DropDownItems.Count - 1].Click += new EventHandler(LinhaCompletaLivre_Click);
                            }
                        }
                    }
                }
                frmDiag.menuControle.Show(_cL.PointToScreen(e.Location));
            }
        }