private void btn_Save_Click(object sender, RoutedEventArgs e) { if (element.G >= 0) { MessageBox.Show("Прискорення вільного падіння має бути від'ємним.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information); } else { double distance = Math.Sqrt(Math.Pow(element.FirstBall.Coord.X - element.SecondBall.Coord.X, 2) + Math.Pow(element.FirstBall.Coord.Y - element.SecondBall.Coord.Y, 2)); if (distance <= element.FirstBall.Radius + element.SecondBall.Radius) { MessageBox.Show("Кулі не можуть перетинатись.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information); } else if (!element.checkBorder()) { MessageBox.Show("Кулі виходять за допустимі межі.", "Некоректні дані", MessageBoxButton.OK, MessageBoxImage.Information); } else { element.Canvas.Children.Remove(fieldsBorder); element.Canvas.ClipToBounds = true; if (elementIndex == -1) { Data.addElement(element); } else { Data.replaceElement(element, elementIndex); } this.Hide(); } } }
public static void createElements(DataTable table) { int i = 0; try { for (; i < table.Rows.Count; i++) { //Загальні Element element = getNewElement(); element.Canvas.Width = double.Parse(table.Rows[i].ItemArray[0].ToString()) * Data.dataScale; element.Canvas.Height = double.Parse(table.Rows[i].ItemArray[1].ToString()) * Data.dataScale; element.FPS = int.Parse(table.Rows[i].ItemArray[2].ToString()); element.SpeedAnimation = double.Parse(table.Rows[i].ItemArray[3].ToString()); element.Fields = double.Parse(table.Rows[i].ItemArray[4].ToString()) * Data.dataScale; element.FontSize = double.Parse(table.Rows[i].ItemArray[5].ToString()) * Data.dataScale; element.InfoVisibility = bool.Parse(table.Rows[i].ItemArray[6].ToString()); element.G = double.Parse(table.Rows[i].ItemArray[7].ToString()) * Data.dataScale; //Перша куля element.FirstBall.Radius = double.Parse(table.Rows[i].ItemArray[8].ToString()) * Data.dataScale; element.FirstBall.Mass = double.Parse(table.Rows[i].ItemArray[9].ToString()); string[] temp = table.Rows[i].ItemArray[10].ToString().Split(Data.splitSymbol); element.FirstBall.FillBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3]))); temp = table.Rows[i].ItemArray[11].ToString().Split(Data.splitSymbol); element.FirstBall.StrokeBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3]))); element.FirstBall.Coord = new Point(double.Parse(table.Rows[i].ItemArray[12].ToString()) * Data.dataScale, 0); element.FirstBall.Speed = double.Parse(table.Rows[i].ItemArray[13].ToString()) * Data.dataScale; if (element.FirstBall.Speed < 0) { element.FirstBall.Speed *= -1; element.FirstBall.SpeedAngle = Math.PI; } //Друга куля element.SecondBall.Radius = double.Parse(table.Rows[i].ItemArray[14].ToString()) * Data.dataScale; element.SecondBall.Mass = double.Parse(table.Rows[i].ItemArray[15].ToString()); temp = table.Rows[i].ItemArray[16].ToString().Split(Data.splitSymbol); element.SecondBall.FillBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3]))); temp = table.Rows[i].ItemArray[17].ToString().Split(Data.splitSymbol); element.SecondBall.StrokeBrush = new SolidColorBrush(Color.FromArgb(byte.Parse(temp[0]), byte.Parse(temp[1]), byte.Parse(temp[2]), byte.Parse(temp[3]))); element.SecondBall.Coord = new Point(double.Parse(table.Rows[i].ItemArray[18].ToString()) * Data.dataScale, 0); element.SecondBall.Speed = double.Parse(table.Rows[i].ItemArray[19].ToString()) * Data.dataScale; if (element.SecondBall.Speed < 0) { element.SecondBall.Speed *= -1; element.SecondBall.SpeedAngle = Math.PI; } element.positionBalls(); element.updateInfo(); Data.addElement(element); } }catch { MessageBox.Show("Не вірний формат елементу: " + i + ". Дані не були коректно завантажені", "Помилка", MessageBoxButton.OK, MessageBoxImage.Exclamation); } }