private void menuLimparEndereco_Click(object sender, EventArgs e) { CodigosInterpretaveis _cI = controleSelecionado.getCI(); if ((!controleSelecionado.IsDisposed) && (_cI != CodigosInterpretaveis.INICIO_DA_LINHA && _cI != CodigosInterpretaveis.PARALELO_INICIAL && _cI != CodigosInterpretaveis.PARALELO_FINAL)) { controleSelecionado.setOperando(0, null); controleSelecionado.Refresh(); } }
public void Simbolo_KeyDown(object sender, KeyEventArgs e) { ControleLivre _cL = (ControleLivre)sender; switch (_cL.getCI()) { case CodigosInterpretaveis.NENHUM: /// Tive que colocar aqui esta opcao de NENHUM para evitar que /// a execucao passasse duas vezes em apagar break; case CodigosInterpretaveis.INICIO_DA_LINHA: break; default: if (e.KeyCode == Keys.Delete) { if (_cL != null && linhaSelecionada != null) { if (!_cL.IsDisposed) { switch (_cL.getCI()) { case CodigosInterpretaveis.PARALELO_INICIAL: break; case CodigosInterpretaveis.PARALELO_PROXIMO: break; case CodigosInterpretaveis.PARALELO_FINAL: break; default: break; } this.SuspendLayout(); this.SelectNextControl(_cL, false, true, false, false); linhaSelecionada.ApagaSimbolos(_cL); this.ReorganizandoLinhas(); this.ResumeLayout(); linhaSelecionada.simboloDesenhoFundo.Invalidate(); } } } break; } }
void simboloInicioLinha_Click(object sender, MouseEventArgs e) { ControleLivre _cL = (ControleLivre)sender; CodigosInterpretaveis _cI = _cL.getCI(); DiagramaLadder _frmDL; _frmDL = (DiagramaLadder)_cL.Parent; if (e.Button == MouseButtons.Right) { if (_cI == CodigosInterpretaveis.INICIO_DA_LINHA) { _frmDL.menuEnderecamento.Enabled = false; _frmDL.menuInsereLinha.Enabled = true; /// Extensao de paralelo - acima/abaixo /// somente sobre simbolos de paralelo _frmDL.menuEstenderParaleloAcima.Enabled = false; _frmDL.menuEstenderParaleloAcima.Visible = false; _frmDL.menuEstenderParaleloAbaixo.Enabled = false; _frmDL.menuEstenderParaleloAbaixo.Visible = false; _frmDL.menuControle.Show(_cL.PointToScreen(e.Location)); } } }
public List <SimboloBasico> VariosSelecionados(ControleLivre _cL, LinhaCompletaVisual _lCL) { CodigosInterpretaveis _cI = _cL.getCI(); List <SimboloBasico> _lstSB = new List <SimboloBasico>(); List <ControleLivre> _lstCL = null; switch (_cI) { case CodigosInterpretaveis.PARALELO_INICIAL: case CodigosInterpretaveis.PARALELO_PROXIMO: case CodigosInterpretaveis.PARALELO_FINAL: int _indicePosInicial = 0; int _indicePosFinal = 0; /// verifica em qual lista o controle esta presente (simbolos/saida) if (LinhaSelecionada.simbolos.Contains(_cL)) { _lstCL = LinhaSelecionada.simbolos; } else if (LinhaSelecionada.saida.Contains(_cL)) { _lstCL = LinhaSelecionada.saida; } else { return(_lstSB); } /// define a posicao inicial a partir da posicao /// do controle na lista _indicePosInicial = _lstCL.IndexOf(_cL); if (_cI == CodigosInterpretaveis.PARALELO_FINAL) { /// se for paralelo final, inverte a posicial inicial/final _indicePosFinal = _indicePosInicial; /// se for paralelo final, a posicao inicial e /// o paralelo inical _indicePosInicial = _lstCL.IndexOf(_cL.Aponta2PI); } else { /// senao for final aponta para o proximo item de paralelo _indicePosFinal = _lstCL.IndexOf(_cL.Aponta2proxPP); } /// pega todos os controles dentro da faixa inicial / final for (int i = _indicePosInicial; i <= _indicePosFinal; i++) { _lstSB.Add(_lstCL[i].SimboloBasico); } break; default: _lstSB.Add(_cL.SimboloBasico); break; } return(_lstSB); }
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(); } }
public bool ApagaSimbolos(ControleLivre _aSerApagado) { int _indicePosInicial = 0; int _indicePosFinal = 0; int _auxSaida = 0; List <ControleLivre> _lstCLDeletar = new List <ControleLivre>(); List <ControleLivre> _lstCL = null; List <SimboloBasico> _lstSB = null; ControleLivre _cLAMudarCI = null; if (!simbolos.Contains(_aSerApagado)) { if (!saida.Contains(_aSerApagado)) { return(false); } else { _lstCL = this.saida; _lstSB = linhaBase.saida; /// caso haja um paralelo na saida /// deleta a linha do paralelo switch (_aSerApagado.getCI()) { case CodigosInterpretaveis.PARALELO_INICIAL: case CodigosInterpretaveis.PARALELO_FINAL: case CodigosInterpretaveis.PARALELO_PROXIMO: break; default: if (this.saida.Count > 1) { _auxSaida = this.saida.IndexOf(_aSerApagado); _aSerApagado = this.saida[_auxSaida - 1]; } break; } } } else { _lstCL = this.simbolos; _lstSB = linhaBase.simbolos; } switch (_aSerApagado.getCI()) { case CodigosInterpretaveis.PARALELO_INICIAL: case CodigosInterpretaveis.PARALELO_PROXIMO: _indicePosInicial = _lstCL.IndexOf(_aSerApagado); _indicePosFinal = _lstCL.IndexOf(_aSerApagado.Aponta2proxPP); _indicePosFinal--; switch (_aSerApagado.getCI()) { case CodigosInterpretaveis.PARALELO_INICIAL: if (_aSerApagado.Aponta2proxPP.Aponta2proxPP.Aponta2PI != null) { _lstCLDeletar.Add(_aSerApagado.Aponta2proxPP.Aponta2proxPP); _indicePosFinal++; } else { _cLAMudarCI = _aSerApagado.Aponta2proxPP; } break; case CodigosInterpretaveis.PARALELO_PROXIMO: if (_aSerApagado.Aponta2proxPP.Aponta2PI != null) { if (_aSerApagado.Aponta2proxPP.Aponta2PI.Aponta2proxPP.Equals(_aSerApagado)) { _lstCLDeletar.Add(_aSerApagado.Aponta2proxPP.Aponta2PI); _indicePosFinal++; } //else //_aSerApagado.Aponta2proxPP.setCI(CodigosInterpretaveis.PARALELO_FINAL); } break; } break; case CodigosInterpretaveis.PARALELO_FINAL: _indicePosFinal = _lstCL.IndexOf(_aSerApagado); _indicePosInicial = _lstCL.IndexOf(_aSerApagado.Aponta2PI); break; default: _indicePosInicial = _lstCL.IndexOf(_aSerApagado); _indicePosFinal = _indicePosInicial; break; } /// levanta os controles a serem deletados for (int i = _indicePosInicial; i <= _indicePosFinal; i++) { _lstCLDeletar.Add(_lstCL[i]); } /// deleta um a um foreach (ControleLivre _cLADeletar in _lstCLDeletar) { ApagaSimbolo(_lstCL, _lstSB, _cLADeletar); } if (_cLAMudarCI != null) { _cLAMudarCI.setCI(CodigosInterpretaveis.PARALELO_INICIAL); } return(true); }
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)); } }