コード例 #1
0
ファイル: FormTabelle.cs プロジェクト: pbrimmers/BFEasier
        /// <summary>
        /// Zeigt ausführlich die Schritte zur Vereinfachung in einem extra Form
        /// </summary>
        private void ErweitereAusgabe()
        {
            var            vereinfachteTerme = new List <Term[]>();
            QuineMcCluskey qmc;
            var            list = new List <List <Term[]> > [fTabelle.AnzahlAusgabevariablen];

            // TODO: Run background TASK with cancellation token
            //var thread = new System.Threading.Thread(Waiting.Wait);
            //thread.Start();

            // Für jede Ausgangsvariable den Term vereinfachen
            for (var i = 0; i < fTabelle.AnzahlAusgabevariablen; i++)
            {
                // Terme auslesen und vereinfachen
                qmc     = new QuineMcCluskey(fTabelle.GibMinterme(i));
                list[i] = new List <List <Term[]> >();
                vereinfachteTerme.Add(qmc.Vereinfache(ref list[i]));
            }

            //System.Threading.Thread.Sleep(100);
            //thread.Abort();

            // Ausgabe im Form
            var errorIndizes = new List <Int32>();
            var form         = new AusgabeForm(list, vereinfachteTerme);
            var just_error   = true;

            while (just_error)
            {
                try
                {
                    form.ShowDialog();
                    just_error = false;
                }
                catch
                {
                    MessageBox.Show("Leider ist die Darstellung zu groß!", "Darstellung nicht möglich", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    errorIndizes.Add(form.SelectedIndex);
                    form = new AusgabeForm(list, vereinfachteTerme, errorIndizes.ToArray(), form.LastIndex);
                }
            }
        }