public static Schaftlaenge getSchaftlaenge(Schraube schraube) { //AB HIER SCHAFTLÄNGE Boolean gueltig; Boolean gueltigInnen = true; //Für die inneren Schleife Schaftlaenge s = new Schaftlaenge(schraube.metrischeGewindegroesse); //Neues Objekt Schaftlänge wird erstellt, mit der Gewindegröße als eingangsparameter um die minSchaftlänge aus der mutterhöhe berechnen zu können. do { gueltig = true; Console.WriteLine("Ist die Schaftlänge bekannt? (j/n)"); //Abfrage ob Schaftlänge bekannt string input = Console.ReadLine(); if (input.Equals("n")) //Wenn nein { do { try //Erneut try und catch zum fehler abfangen { gueltigInnen = true; Console.WriteLine("Wie lang ist die Klemmlaenge (in mm)?"); float input2 = (float)Convert.ToDouble(Console.ReadLine()); s.schaftlaenge = Schaftlaenge.berechneSchaftlaenge(schraube.metrischeGewindegroesse.mutterhoehe, input2); //Unterprogramm Schaftlänge in Schaftlaenge.cs aufrufen if (s.schaftlaenge == -1) //WEnn schaftlänge zu groß/klein kommt dieser Fehlercode wieder { gueltigInnen = false; } } catch (Exception) //Fehler werden abgefangen { Console.WriteLine("Bitte eine Zahl eingeben"); gueltigInnen = false; } } while (!gueltigInnen); return(s); } else if (input.Equals("j")) //Wenn Schaftläenge bekannt soll diese einfach eingegeben werden { do { try { Console.WriteLine("Welche Schaftlänge wird benötigt? (in mm)"); float input2 = (float)Convert.ToDouble(Console.ReadLine()); gueltigInnen = s.setSchaftlaenge(input2); //setSchaftlaenge überprüft ob die Eingabe im gültigen Bereich liegt. Berechnungen finden in Schaftlaenge.cs statt } catch (Exception) { Console.WriteLine("Bitte eine Zahl eingeben"); gueltigInnen = false; } } while (!gueltigInnen); } else //Falls falsche Eingabe { Console.WriteLine("Ungültige Eingabe!"); gueltig = false; } } while (!gueltig); return(s); }
private void txB_Klemmlaenge_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = (TextBox)sender; string g = tb.Text; if (slGuelitg == true) { if (slGuelitg == true) { Schaftlaenge objSl = new Schaftlaenge(s.metrischeGewindegroesse); try //Erneut try und catch zum fehler abfangen { float kl = Convert.ToSingle(txB_Klemmlaenge.Text); objSl.schaftlaenge = Schaftlaenge.berechneSchaftlaenge(s.metrischeGewindegroesse.mutterhoehe, kl); //Unterprogramm Schaftlänge in Schaftlaenge.cs aufrufen if (objSl.schaftlaenge == -1) //WEnn schaftlänge zu groß/klein kommt dieser Fehlercode wieder { double minsl = objSl.minSchaftlaenge - 1.25 * s.metrischeGewindegroesse.mutterhoehe; minsl = Math.Round(objSl.minSchaftlaenge, 2); double maxsl = (objSl.maxSchaftlaenge - 1.25 * s.metrischeGewindegroesse.mutterhoehe); maxsl = Math.Round(maxsl, 2); lab_SchaftlaengeHinweis.Content = "Die Klemmlänge der Schraube muss zwischen " + minsl + " mm und " + maxsl + " mm liegen"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Klemmlaenge.Background = Brushes.Red; txB_Klemmlaenge.Text = ""; FinishSchaftlaenge = false; } else { lab_SchaftlaengeHinweis.Content = "Die berechnete Schaftlänge beträtgt: " + objSl.schaftlaenge + " mm"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Klemmlaenge.Background = Brushes.Green; float sl = objSl.schaftlaenge; s.schaftLaenge = objSl; //Schaftlänge der Schraube zuweisen FinishSchaftlaenge = true; hatWertSchaftlaenge = true; lab_Gewindelaenge.Visibility = Visibility.Visible; rBtn_gesamte_Schaftlaenge.Visibility = Visibility.Visible; rBtn_benutzerdefiniert.Visibility = Visibility.Visible; txB_Gewindelaenge.Background = Brushes.White; //Freigeben der Schaftlängenbox txB_Gewindelaenge.IsReadOnly = false; } } catch (Exception) //Fehler werden abgefangen { lab_SchaftlaengeHinweis.Content = "Bitte eine Zahl eingeben"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.Red; FinishSchaftlaenge = false; } } } }