diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/DrawningSPAUchild.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/DrawningSPAUchild.cs
index 4ae1dad..a567363 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/DrawningSPAUchild.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/DrawningSPAUchild.cs
@@ -11,11 +11,11 @@ namespace SelfPropelledArtilleryUnit.DrawningObjects
{
/// Дополнительный цвет
/// Признак наличия залповой установки
- public DrawningSPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, int width, int height) : base(speed, weight, bodyColor, width, height)
+ public DrawningSPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool ballon, int width, int height) : base(speed, weight, bodyColor, width, height)
{
if (EntitySPAU != null)
{
- EntitySPAU = new EntitySPAUchild(speed, weight, bodyColor, additionalColor, bodyKit);
+ EntitySPAU = new EntitySPAUchild(speed, weight, bodyColor, additionalColor, bodyKit, ballon);
}
}
public override void DrawTransport(Graphics g)
@@ -33,6 +33,11 @@ namespace SelfPropelledArtilleryUnit.DrawningObjects
g.FillRectangle(additionalBrush, _startPosX + 15, _startPosY + 20, 20, 40);
g.DrawLine(penBlack, _startPosX + 5, _startPosY + 20, _startPosX + 15, _startPosY + 25);
}
+ if (entitySPAUchild.Ballon)
+ {
+ //баллон
+ g.FillRectangle(additionalBrush, _startPosX + 110, _startPosY + 35, 30, 20);
+ }
base.DrawTransport(g);
}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAU.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAU.cs
index 2ac7543..3259a2c 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAU.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAU.cs
@@ -30,5 +30,9 @@
Weight = weight;
BodyColor = bodyColor;
}
+ public void setBodyColor(Color color)
+ {
+ BodyColor = color;
+ }
}
}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAUchild.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAUchild.cs
index 25dfa58..4dcd6b6 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAUchild.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/EntitySPAUchild.cs
@@ -16,12 +16,22 @@ namespace SelfPropelledArtilleryUnit.Entities
/// Признак (опция) наличия залповой установки
///
public bool BodyKit { get; private set; }
+ ///
+ /// Признак (опция) наличия баллона
+ ///
+ public bool Ballon { get; private set; }
/// Дополнительный цвет
/// Признак наличия залповой установки
- public EntitySPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit) : base(speed, weight, bodyColor)
+ public EntitySPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool ballon) : base(speed, weight, bodyColor)
{
AdditionalColor = additionalColor;
BodyKit = bodyKit;
+ Ballon = ballon;
+
+ }
+ public void setAdditionalColor(Color color)
+ {
+ AdditionalColor = color;
}
}
}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAU.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAU.cs
index e011b97..b46c7b5 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAU.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAU.cs
@@ -67,7 +67,7 @@ namespace SelfPropelledArtilleryUnit
}
_drawningSPAU = new DrawningSPAUchild(random.Next(100, 300),
random.Next(1000, 3000), color,
- dopColor, true,
+ dopColor, true, true,
pictureBoxSPAU.Width, pictureBoxSPAU.Height);
_drawningSPAU.SetPosition(random.Next(10, 100), random.Next(10,
100));
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUCollection.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUCollection.cs
index beac829..d5753a7 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUCollection.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUCollection.cs
@@ -23,7 +23,6 @@ namespace SelfPropelledArtilleryUnit
///
/// Набор объектов
///
- //private readonly SPAUGenericCollection _SPAUs;
private readonly SPAUGenericStorage _storage;
///
/// Конструктор
@@ -106,6 +105,7 @@ namespace SelfPropelledArtilleryUnit
///
private void ButtonAddSPAU_Click(object sender, EventArgs e)
{
+
if (listBoxStorages.SelectedIndex == -1)
{
return;
@@ -115,20 +115,33 @@ namespace SelfPropelledArtilleryUnit
{
return;
}
- FormSPAU form = new();
- if (form.ShowDialog() == DialogResult.OK)
- {
- int addedIndex = obj + form.SelectedSPAU;
- if (addedIndex != -1 && addedIndex <= countPlaces)
- {
- MessageBox.Show("Объект добавлен");
- pictureBoxCollection.Image = obj.ShowSPAUs();
- }
- else
- {
- MessageBox.Show("Не удалось добавить объект");
- }
+ var formSPAUConfig = new FormSPAUConfig();
+ formSPAUConfig.AddEvent(AddSPAU);
+ formSPAUConfig.Show();
+ }
+
+ private void AddSPAU(DrawningSPAU sPAU)
+ {
+ if (listBoxStorages.SelectedIndex == -1)
+ {
+ return;
+ }
+ var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
+ if (obj == null)
+ {
+ return;
+ }
+
+ int addedIndex = obj + sPAU;
+ if (addedIndex != -1 && addedIndex <= countPlaces)
+ {
+ MessageBox.Show("Объект добавлен");
+ pictureBoxCollection.Image = obj.ShowSPAUs();
+ }
+ else
+ {
+ MessageBox.Show("Не удалось добавить объект");
}
}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.Designer.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.Designer.cs
new file mode 100644
index 0000000..2dfe2ff
--- /dev/null
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.Designer.cs
@@ -0,0 +1,366 @@
+namespace SelfPropelledArtilleryUnit
+{
+ partial class FormSPAUConfig
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ groupBox_param = new GroupBox();
+ сheckBox_ballon = new CheckBox();
+ checkBox_zalp = new CheckBox();
+ label_weight = new Label();
+ groupBox_colors = new GroupBox();
+ panelGray = new Panel();
+ panelCian = new Panel();
+ panelPurple = new Panel();
+ panelBlack = new Panel();
+ panelBlue = new Panel();
+ panelGreen = new Panel();
+ panelYellow = new Panel();
+ panelRed = new Panel();
+ numericUpDownWeight = new NumericUpDown();
+ numericUpDownSpeed = new NumericUpDown();
+ label_speed = new Label();
+ labelOriginalObject = new Label();
+ labelModifiedObject = new Label();
+ pictureBox = new PictureBox();
+ Panel = new Panel();
+ button_close = new Button();
+ button_add = new Button();
+ label_color = new Label();
+ panel_color = new Panel();
+ label_addit_color = new Label();
+ groupBox_param.SuspendLayout();
+ groupBox_colors.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
+ Panel.SuspendLayout();
+ panel_color.SuspendLayout();
+ SuspendLayout();
+ //
+ // groupBox_param
+ //
+ groupBox_param.Controls.Add(сheckBox_ballon);
+ groupBox_param.Controls.Add(checkBox_zalp);
+ groupBox_param.Controls.Add(label_weight);
+ groupBox_param.Controls.Add(groupBox_colors);
+ groupBox_param.Controls.Add(numericUpDownWeight);
+ groupBox_param.Controls.Add(numericUpDownSpeed);
+ groupBox_param.Controls.Add(label_speed);
+ groupBox_param.Location = new Point(600, 12);
+ groupBox_param.Name = "groupBox_param";
+ groupBox_param.Size = new Size(188, 401);
+ groupBox_param.TabIndex = 0;
+ groupBox_param.TabStop = false;
+ groupBox_param.Text = "Параметры";
+ //
+ // сheckBox_ballon
+ //
+ сheckBox_ballon.AutoSize = true;
+ сheckBox_ballon.Location = new Point(6, 162);
+ сheckBox_ballon.Name = "сheckBox_ballon";
+ сheckBox_ballon.Size = new Size(82, 24);
+ сheckBox_ballon.TabIndex = 7;
+ сheckBox_ballon.Text = "Баллон";
+ сheckBox_ballon.UseVisualStyleBackColor = true;
+ //
+ // checkBox_zalp
+ //
+ checkBox_zalp.AutoSize = true;
+ checkBox_zalp.Location = new Point(6, 132);
+ checkBox_zalp.Name = "checkBox_zalp";
+ checkBox_zalp.Size = new Size(170, 24);
+ checkBox_zalp.TabIndex = 5;
+ checkBox_zalp.Text = "Залповая установка";
+ checkBox_zalp.UseVisualStyleBackColor = true;
+ //
+ // label_weight
+ //
+ label_weight.AutoSize = true;
+ label_weight.Location = new Point(111, 76);
+ label_weight.Name = "label_weight";
+ label_weight.Size = new Size(33, 20);
+ label_weight.TabIndex = 3;
+ label_weight.Text = "Вес";
+ //
+ // groupBox_colors
+ //
+ groupBox_colors.Controls.Add(panelGray);
+ groupBox_colors.Controls.Add(panelCian);
+ groupBox_colors.Controls.Add(panelPurple);
+ groupBox_colors.Controls.Add(panelBlack);
+ groupBox_colors.Controls.Add(panelBlue);
+ groupBox_colors.Controls.Add(panelGreen);
+ groupBox_colors.Controls.Add(panelYellow);
+ groupBox_colors.Controls.Add(panelRed);
+ groupBox_colors.Location = new Point(10, 184);
+ groupBox_colors.Name = "groupBox_colors";
+ groupBox_colors.Size = new Size(166, 203);
+ groupBox_colors.TabIndex = 1;
+ groupBox_colors.TabStop = false;
+ groupBox_colors.Text = "Цвета";
+ //
+ // panelGray
+ //
+ panelGray.BackColor = Color.Silver;
+ panelGray.Location = new Point(91, 163);
+ panelGray.Name = "panelGray";
+ panelGray.Size = new Size(60, 25);
+ panelGray.TabIndex = 7;
+ //
+ // panelCian
+ //
+ panelCian.BackColor = Color.Cyan;
+ panelCian.Location = new Point(9, 163);
+ panelCian.Name = "panelCian";
+ panelCian.Size = new Size(60, 25);
+ panelCian.TabIndex = 6;
+ //
+ // panelPurple
+ //
+ panelPurple.BackColor = Color.FromArgb(192, 0, 192);
+ panelPurple.Location = new Point(91, 123);
+ panelPurple.Name = "panelPurple";
+ panelPurple.Size = new Size(60, 25);
+ panelPurple.TabIndex = 5;
+ //
+ // panelBlack
+ //
+ panelBlack.BackColor = Color.Black;
+ panelBlack.Location = new Point(9, 123);
+ panelBlack.Name = "panelBlack";
+ panelBlack.Size = new Size(60, 25);
+ panelBlack.TabIndex = 4;
+ //
+ // panelBlue
+ //
+ panelBlue.BackColor = Color.Blue;
+ panelBlue.Location = new Point(91, 79);
+ panelBlue.Name = "panelBlue";
+ panelBlue.Size = new Size(60, 25);
+ panelBlue.TabIndex = 3;
+ //
+ // panelGreen
+ //
+ panelGreen.BackColor = Color.Lime;
+ panelGreen.Location = new Point(9, 79);
+ panelGreen.Name = "panelGreen";
+ panelGreen.Size = new Size(60, 25);
+ panelGreen.TabIndex = 2;
+ //
+ // panelYellow
+ //
+ panelYellow.BackColor = Color.Yellow;
+ panelYellow.Location = new Point(91, 36);
+ panelYellow.Name = "panelYellow";
+ panelYellow.Size = new Size(60, 25);
+ panelYellow.TabIndex = 1;
+ //
+ // panelRed
+ //
+ panelRed.BackColor = Color.Red;
+ panelRed.Location = new Point(8, 38);
+ panelRed.Name = "panelRed";
+ panelRed.Size = new Size(60, 25);
+ panelRed.TabIndex = 0;
+ //
+ // numericUpDownWeight
+ //
+ numericUpDownWeight.Location = new Point(120, 99);
+ numericUpDownWeight.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
+ numericUpDownWeight.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
+ numericUpDownWeight.Name = "numericUpDownWeight";
+ numericUpDownWeight.Size = new Size(52, 27);
+ numericUpDownWeight.TabIndex = 2;
+ numericUpDownWeight.Value = new decimal(new int[] { 100, 0, 0, 0 });
+ //
+ // numericUpDownSpeed
+ //
+ numericUpDownSpeed.Location = new Point(120, 46);
+ numericUpDownSpeed.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
+ numericUpDownSpeed.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
+ numericUpDownSpeed.Name = "numericUpDownSpeed";
+ numericUpDownSpeed.Size = new Size(56, 27);
+ numericUpDownSpeed.TabIndex = 1;
+ numericUpDownSpeed.Value = new decimal(new int[] { 100, 0, 0, 0 });
+ //
+ // label_speed
+ //
+ label_speed.AutoSize = true;
+ label_speed.Location = new Point(109, 23);
+ label_speed.Name = "label_speed";
+ label_speed.Size = new Size(73, 20);
+ label_speed.TabIndex = 0;
+ label_speed.Text = "Скорость";
+ //
+ // labelOriginalObject
+ //
+ labelOriginalObject.BorderStyle = BorderStyle.FixedSingle;
+ labelOriginalObject.Location = new Point(606, 416);
+ labelOriginalObject.Name = "labelOriginalObject";
+ labelOriginalObject.Size = new Size(81, 29);
+ labelOriginalObject.TabIndex = 2;
+ labelOriginalObject.Text = "Простой";
+ labelOriginalObject.MouseDown += Label_MouseDown;
+ //
+ // labelModifiedObject
+ //
+ labelModifiedObject.BorderStyle = BorderStyle.FixedSingle;
+ labelModifiedObject.Location = new Point(711, 416);
+ labelModifiedObject.Name = "labelModifiedObject";
+ labelModifiedObject.Size = new Size(77, 29);
+ labelModifiedObject.TabIndex = 3;
+ labelModifiedObject.Text = "Потомок";
+ labelModifiedObject.MouseDown += Label_MouseDown;
+ //
+ // pictureBox
+ //
+ pictureBox.Location = new Point(3, 22);
+ pictureBox.Name = "pictureBox";
+ pictureBox.Size = new Size(588, 365);
+ pictureBox.TabIndex = 4;
+ pictureBox.TabStop = false;
+ //
+ // Panel
+ //
+ Panel.AllowDrop = true;
+ Panel.Controls.Add(pictureBox);
+ Panel.Location = new Point(0, 58);
+ Panel.Name = "Panel";
+ Panel.Size = new Size(600, 392);
+ Panel.TabIndex = 5;
+ Panel.DragDrop += panel_dragDrop;
+ Panel.DragEnter += panel_dragEnter;
+ //
+ // button_close
+ //
+ button_close.Location = new Point(511, 12);
+ button_close.Name = "button_close";
+ button_close.Size = new Size(80, 29);
+ button_close.TabIndex = 8;
+ button_close.Text = "Отмена";
+ button_close.UseVisualStyleBackColor = true;
+ //
+ // button_add
+ //
+ button_add.Location = new Point(410, 12);
+ button_add.Name = "button_add";
+ button_add.Size = new Size(95, 29);
+ button_add.TabIndex = 7;
+ button_add.Text = "Добавить";
+ button_add.UseVisualStyleBackColor = true;
+ button_add.Click += button_add_Click;
+ //
+ // label_color
+ //
+ label_color.AllowDrop = true;
+ label_color.BorderStyle = BorderStyle.FixedSingle;
+ label_color.Location = new Point(3, 6);
+ label_color.Name = "label_color";
+ label_color.Size = new Size(171, 46);
+ label_color.TabIndex = 5;
+ label_color.Text = "Основной цвет";
+ label_color.DragDrop += labelColor_dragDrop;
+ label_color.DragEnter += labelColor_dragEnter;
+ //
+ // panel_color
+ //
+ panel_color.AllowDrop = true;
+ panel_color.Controls.Add(label_addit_color);
+ panel_color.Controls.Add(label_color);
+ panel_color.Location = new Point(0, 3);
+ panel_color.Name = "panel_color";
+ panel_color.Size = new Size(362, 52);
+ panel_color.TabIndex = 6;
+ //
+ // label_addit_color
+ //
+ label_addit_color.AllowDrop = true;
+ label_addit_color.BorderStyle = BorderStyle.FixedSingle;
+ label_addit_color.Location = new Point(180, 6);
+ label_addit_color.Name = "label_addit_color";
+ label_addit_color.Size = new Size(173, 46);
+ label_addit_color.TabIndex = 6;
+ label_addit_color.Text = "Дополнительный цвет";
+ label_addit_color.DragDrop += labelColor_dragDrop;
+ label_addit_color.DragEnter += labelColor_dragEnter;
+ //
+ // FormSPAUConfig
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(800, 450);
+ Controls.Add(panel_color);
+ Controls.Add(button_close);
+ Controls.Add(Panel);
+ Controls.Add(button_add);
+ Controls.Add(labelModifiedObject);
+ Controls.Add(labelOriginalObject);
+ Controls.Add(groupBox_param);
+ Name = "FormSPAUConfig";
+ Text = "FormSPAUConfig";
+ groupBox_param.ResumeLayout(false);
+ groupBox_param.PerformLayout();
+ groupBox_colors.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).EndInit();
+ ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
+ Panel.ResumeLayout(false);
+ panel_color.ResumeLayout(false);
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private GroupBox groupBox_param;
+ private Label label_weight;
+ private NumericUpDown numericUpDownWeight;
+ private NumericUpDown numericUpDownSpeed;
+ private Label label_speed;
+ private CheckBox checkBox_zalp;
+ private GroupBox groupBox_colors;
+ private Panel panelGreen;
+ private Panel panelYellow;
+ private Panel panelRed;
+ private Panel panelGray;
+ private Panel panelCian;
+ private Panel panelPurple;
+ private Panel panelBlack;
+ private Panel panelBlue;
+ private Label labelOriginalObject;
+ private Label labelModifiedObject;
+ private PictureBox pictureBox;
+ private Panel Panel;
+ private Button button_close;
+ private Button button_add;
+ private Label label_color;
+ private Label label_addit_color;
+ private Panel panel_color;
+ private Label label1;
+ private CheckBox сheckBox_ballon;
+ }
+}
\ No newline at end of file
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.cs
new file mode 100644
index 0000000..bd58e5c
--- /dev/null
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.cs
@@ -0,0 +1,167 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Xml.Linq;
+using SelfPropelledArtilleryUnit.DrawningObjects;
+using SelfPropelledArtilleryUnit.Entities;
+
+namespace SelfPropelledArtilleryUnit
+{
+ public partial class FormSPAUConfig : Form
+ {
+ ///
+ /// Переменная-выбранная машина
+ ///
+ DrawningSPAU? _sPAU = null;
+ ///
+ /// Событие
+ ///
+ public event Action? EventAddSPAU;
+ ///
+ /// Конструктор
+ ///
+ public FormSPAUConfig()
+ {
+
+ InitializeComponent();
+ panelBlack.MouseDown += panelColor_MouseDown;
+ panelPurple.MouseDown += panelColor_MouseDown;
+ panelGray.MouseDown += panelColor_MouseDown;
+ panelGreen.MouseDown += panelColor_MouseDown;
+ panelRed.MouseDown += panelColor_MouseDown;
+ panelCian.MouseDown += panelColor_MouseDown;
+ panelYellow.MouseDown += panelColor_MouseDown;
+ panelBlue.MouseDown += panelColor_MouseDown;
+
+ button_close.Click += (s, e) => Close();
+ }
+
+
+
+ ///
+ /// Отрисовать машину
+ ///
+ private void DrawSPAU()
+ {
+ Bitmap bmp = new(pictureBox.Width, pictureBox.Height);
+ Graphics gr = Graphics.FromImage(bmp);
+ _sPAU?.SetPosition(5, 5);
+ _sPAU?.DrawTransport(gr);
+ pictureBox.Image = bmp;
+ }
+
+ ///
+ /// Добавление события
+ ///
+ /// Привязанный метод
+ public void AddEvent(Action ev)
+ {
+ if (EventAddSPAU == null)
+ {
+ EventAddSPAU = ev;
+ }
+ else
+ {
+ EventAddSPAU += ev;
+ }
+ }
+
+ ///
+ /// Передаем информацию при нажатии на Label
+ ///
+ ///
+ ///
+ private void Label_MouseDown(object sender, MouseEventArgs e)
+ {
+ (sender as Label)?.DoDragDrop((sender as Label)?.Name, DragDropEffects.Move | DragDropEffects.Copy);
+ }
+
+ ///
+ /// Проверка получаемой информации (ее типа на соответствие требуемому)
+ ///
+ ///
+ ///
+ private void panel_dragEnter(object sender, DragEventArgs e)
+ {
+ if (e.Data?.GetDataPresent(DataFormats.Text) ?? false)
+ {
+ e.Effect = DragDropEffects.Copy;
+ }
+ else
+ {
+ e.Effect = DragDropEffects.None;
+ }
+ }
+
+ ///
+ /// Действия при приеме перетаскиваемой информации
+ ///
+ ///
+ ///
+ private void panel_dragDrop(object sender, DragEventArgs e)
+ {
+ switch (e.Data?.GetData(DataFormats.Text).ToString())
+ {
+ case "labelOriginalObject":
+ _sPAU = new DrawningSPAU((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, pictureBox.Width, pictureBox.Height);
+ break;
+ case "labelModifiedObject":
+ _sPAU = new DrawningSPAUchild((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black, checkBox_zalp.Checked, сheckBox_ballon.Checked, pictureBox.Width, pictureBox.Height);
+ break;
+ }
+ DrawSPAU();
+ }
+
+ public void panelColor_MouseDown(object sender, MouseEventArgs e)
+ {
+ (sender as Panel)?.DoDragDrop((sender as Panel)?.BackColor, DragDropEffects.Move | DragDropEffects.Copy);
+ }
+
+ private void labelColor_dragEnter(object sender, DragEventArgs e)
+ {
+ if (e.Data?.GetDataPresent(typeof(Color)) ?? false)
+ {
+ e.Effect = DragDropEffects.Copy;
+ }
+ else
+ {
+ e.Effect = DragDropEffects.None;
+ }
+ }
+ private void labelColor_dragDrop(object sender, DragEventArgs e)
+ {
+ if (_sPAU == null)
+ return;
+ switch (((Label)sender).Name)
+ {
+ case "label_color":
+ _sPAU?.EntitySPAU?.setBodyColor((Color)e.Data.GetData(typeof(Color)));
+ break;
+ case "label_addit_color":
+ if (!(_sPAU is DrawningSPAUchild))
+ return;
+ (_sPAU.EntitySPAU as EntitySPAUchild)?.setAdditionalColor(color: (Color)e.Data.GetData(typeof(Color)));
+ break;
+ }
+ DrawSPAU();
+ }
+
+ ///
+ /// Добавление машины
+ ///
+ ///
+ ///
+
+ private void button_add_Click(object sender, EventArgs e)
+ {
+ EventAddSPAU?.Invoke(_sPAU);
+ Close();
+ }
+ }
+}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.resx b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/FormSPAUConfig.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file