示例#1
0
        private void Rueckgaengig_Verschieben()
        {
            object[] parameter = (object[])_neuerWert;
            Point    pDiff     = (Point)((object[])_neuerWert)[0];
            Point    pAltW     = (Point)this._alterWert;

            switch (_elementTyp)
            {
            case ElementTyp.Gleis:

                break;

            case ElementTyp.Signal:
            case ElementTyp.Entkuppler:
            case ElementTyp.FSS:
            case ElementTyp.Schalter:
            case ElementTyp.InfoElement:
            case ElementTyp.EingangsSchalter:
                GleisRasterAnlagenElement element = (GleisRasterAnlagenElement)_element;
                element.PositionRaster = new Point(pAltW.X, pAltW.Y);
                element.BearbeitenAktualisierenNeuZeichnen();

                break;

            case ElementTyp.Knoten:
                Knoten k = ((Knoten)_element);
                k.PositionRaster = new Point(pAltW.X, pAltW.Y);
                k.Berechnung();
                foreach (Gleis item in k.Gleise)
                {
                    if (item != null)
                    {
                        item.Berechnung();
                        if (item.Schalter != null)
                        {
                            item.Schalter.Berechnung();
                        }
                        if (item.Fss != null)
                        {
                            item.Fss.Berechnung();
                        }
                        foreach (Entkuppler el in item.Entkuppler)
                        {
                            if (el != null)
                            {
                                el.Berechnung();
                            }
                        }
                        foreach (Signal el in item.Signale)
                        {
                            if (el != null)
                            {
                                el.Berechnung();
                            }
                        }
                    }
                }
                foreach (Weiche item in k.Weichen)
                {
                    if (item != null)
                    {
                        item.Berechnung();
                    }
                }
                break;
            }
        }
示例#2
0
        private bool Ausfuehren_Verschieben()
        {
            try {
                object[] parameter = (object[])_neuerWert;
                Point    pDiff     = (Point)((object[])_neuerWert)[0];
                Point    pAltW     = (Point)this._alterWert;
                switch (_elementTyp)
                {
                case ElementTyp.Gleis:

                    break;

                case ElementTyp.Signal:
                case ElementTyp.Entkuppler:
                case ElementTyp.FSS:
                case ElementTyp.Schalter:
                case ElementTyp.InfoElement:
                case ElementTyp.EingangsSchalter:
                    GleisRasterAnlagenElement element = (GleisRasterAnlagenElement)_element;
                    element.PositionRaster = new Point(pDiff.X + pAltW.X, pDiff.Y + pAltW.Y);
                    element.BearbeitenAktualisierenNeuZeichnen();
                    if (element.AnschlussGleis == null)
                    {
                        return(false);
                    }
                    break;

                case ElementTyp.Knoten:
                    Knoten k = ((Knoten)_element);
                    k.PositionRaster = new Point(pDiff.X + pAltW.X, pDiff.Y + pAltW.Y);
                    k.Berechnung();
                    foreach (Gleis item in k.Gleise)
                    {
                        if (item != null)
                        {
                            item.Berechnung();
                            if (item.Schalter != null)
                            {
                                item.Schalter.Berechnung();
                            }
                            if (item.Fss != null)
                            {
                                item.Fss.Berechnung();
                            }
                            foreach (Entkuppler el in item.Entkuppler)
                            {
                                if (el != null)
                                {
                                    el.Berechnung();
                                }
                            }
                            foreach (Signal el in item.Signale)
                            {
                                if (el != null)
                                {
                                    el.Berechnung();
                                }
                            }
                            foreach (EingangsSchalter el in item.EingSchalter)
                            {
                                if (el != null)
                                {
                                    el.Berechnung();
                                }
                            }
                        }
                    }
                    foreach (Weiche item in k.Weichen)
                    {
                        if (item != null)
                        {
                            item.Berechnung();
                        }
                    }
                    break;
                }
            }
            catch (Exception exception) {
            }
            return(true);
        }