From d4ccb9c74aafe82bb2c1ec6e3a30126856b9fbb0 Mon Sep 17 00:00:00 2001
From: sqdselo <147947144+sqdselo@users.noreply.github.com>
Date: Sun, 14 Apr 2024 13:50:37 +0400
Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
HoistingCrane/HoistingCrane/CarDelegate.cs | 12 +
.../Entities/EntityHoistingCrane.cs | 4 +
.../Entities/EntityTrackedVehicle.cs | 6 +-
.../FormCarCollection.Designer.cs | 222 +++++------
.../HoistingCrane/FormCarCollection.cs | 34 +-
.../HoistingCrane/FormCarConfig.Designer.cs | 355 ++++++++++++++++++
HoistingCrane/HoistingCrane/FormCarConfig.cs | 122 ++++++
.../HoistingCrane/FormCarConfig.resx | 120 ++++++
8 files changed, 747 insertions(+), 128 deletions(-)
create mode 100644 HoistingCrane/HoistingCrane/CarDelegate.cs
create mode 100644 HoistingCrane/HoistingCrane/FormCarConfig.Designer.cs
create mode 100644 HoistingCrane/HoistingCrane/FormCarConfig.cs
create mode 100644 HoistingCrane/HoistingCrane/FormCarConfig.resx
diff --git a/HoistingCrane/HoistingCrane/CarDelegate.cs b/HoistingCrane/HoistingCrane/CarDelegate.cs
new file mode 100644
index 0000000..d33d144
--- /dev/null
+++ b/HoistingCrane/HoistingCrane/CarDelegate.cs
@@ -0,0 +1,12 @@
+using HoistingCrane.Drawning;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HoistingCrane
+{
+ public delegate void CarDelegate(DrawningTrackedVehicle car);
+
+}
diff --git a/HoistingCrane/HoistingCrane/Entities/EntityHoistingCrane.cs b/HoistingCrane/HoistingCrane/Entities/EntityHoistingCrane.cs
index 809ac3f..674c373 100644
--- a/HoistingCrane/HoistingCrane/Entities/EntityHoistingCrane.cs
+++ b/HoistingCrane/HoistingCrane/Entities/EntityHoistingCrane.cs
@@ -38,4 +38,8 @@ public class EntityHoistingCrane : EntityTrackedVehicle
}
+ public void SetAdditionalColor(Color newColor)
+ {
+ AdditionalColor = newColor;
+ }
}
\ No newline at end of file
diff --git a/HoistingCrane/HoistingCrane/Entities/EntityTrackedVehicle.cs b/HoistingCrane/HoistingCrane/Entities/EntityTrackedVehicle.cs
index 555320a..0a479d7 100644
--- a/HoistingCrane/HoistingCrane/Entities/EntityTrackedVehicle.cs
+++ b/HoistingCrane/HoistingCrane/Entities/EntityTrackedVehicle.cs
@@ -43,7 +43,11 @@
this.Weight = Weight;
this.BodyColor = BodyColor;
}
-
+
+ public void SetBodyColor(Color newBodyColor)
+ {
+ BodyColor = newBodyColor;
+ }
}
}
diff --git a/HoistingCrane/HoistingCrane/FormCarCollection.Designer.cs b/HoistingCrane/HoistingCrane/FormCarCollection.Designer.cs
index d56e52d..4bb03f2 100644
--- a/HoistingCrane/HoistingCrane/FormCarCollection.Designer.cs
+++ b/HoistingCrane/HoistingCrane/FormCarCollection.Designer.cs
@@ -29,26 +29,25 @@
private void InitializeComponent()
{
groupBoxTools = new GroupBox();
+ buttonCreateCompany = new Button();
+ panelStorage = new Panel();
+ buttonDeleteCollection = new Button();
+ listBoxCollection = new ListBox();
+ buttonCollectionAdd = new Button();
+ radioButtonList = new RadioButton();
+ radioButtonMassive = new RadioButton();
+ textBoxCollectionName = new TextBox();
+ labelCollectionName = new Label();
buttonGoToChek = new Button();
buttonRefresh = new Button();
buttonDeleteCar = new Button();
maskedTextBox = new MaskedTextBox();
comboBoxSelectorCompany = new ComboBox();
- buttonCreateTrackedVehicle = new Button();
buttonCreateHoistingCrane = new Button();
pictureBox = new PictureBox();
- panelStorage = new Panel();
- labelCollectionName = new Label();
- textBoxCollectionName = new TextBox();
- radioButtonMassive = new RadioButton();
- radioButtonList = new RadioButton();
- buttonCollectionAdd = new Button();
- listBoxCollection = new ListBox();
- buttonDeleteCollection = new Button();
- buttonCreateCompany = new Button();
groupBoxTools.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
panelStorage.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
SuspendLayout();
//
// groupBoxTools
@@ -60,7 +59,6 @@
groupBoxTools.Controls.Add(buttonDeleteCar);
groupBoxTools.Controls.Add(maskedTextBox);
groupBoxTools.Controls.Add(comboBoxSelectorCompany);
- groupBoxTools.Controls.Add(buttonCreateTrackedVehicle);
groupBoxTools.Controls.Add(buttonCreateHoistingCrane);
groupBoxTools.Dock = DockStyle.Right;
groupBoxTools.Location = new Point(763, 0);
@@ -70,6 +68,98 @@
groupBoxTools.TabStop = false;
groupBoxTools.Text = "Инструменты";
//
+ // buttonCreateCompany
+ //
+ buttonCreateCompany.Location = new Point(12, 295);
+ buttonCreateCompany.Name = "buttonCreateCompany";
+ buttonCreateCompany.Size = new Size(192, 23);
+ buttonCreateCompany.TabIndex = 7;
+ buttonCreateCompany.Text = "Создать компанию";
+ buttonCreateCompany.UseVisualStyleBackColor = true;
+ buttonCreateCompany.Click += buttonCreateCompany_Click;
+ //
+ // panelStorage
+ //
+ panelStorage.Controls.Add(buttonDeleteCollection);
+ panelStorage.Controls.Add(listBoxCollection);
+ panelStorage.Controls.Add(buttonCollectionAdd);
+ panelStorage.Controls.Add(radioButtonList);
+ panelStorage.Controls.Add(radioButtonMassive);
+ panelStorage.Controls.Add(textBoxCollectionName);
+ panelStorage.Controls.Add(labelCollectionName);
+ panelStorage.Dock = DockStyle.Top;
+ panelStorage.Location = new Point(3, 19);
+ panelStorage.Name = "panelStorage";
+ panelStorage.Size = new Size(204, 229);
+ panelStorage.TabIndex = 7;
+ //
+ // buttonDeleteCollection
+ //
+ buttonDeleteCollection.Location = new Point(9, 199);
+ buttonDeleteCollection.Name = "buttonDeleteCollection";
+ buttonDeleteCollection.Size = new Size(192, 27);
+ buttonDeleteCollection.TabIndex = 6;
+ buttonDeleteCollection.Text = "Удалить коллекцию";
+ buttonDeleteCollection.UseVisualStyleBackColor = true;
+ buttonDeleteCollection.Click += buttonDeleteCollection_Click;
+ //
+ // listBoxCollection
+ //
+ listBoxCollection.FormattingEnabled = true;
+ listBoxCollection.ItemHeight = 15;
+ listBoxCollection.Location = new Point(9, 118);
+ listBoxCollection.Name = "listBoxCollection";
+ listBoxCollection.Size = new Size(192, 79);
+ listBoxCollection.TabIndex = 5;
+ //
+ // buttonCollectionAdd
+ //
+ buttonCollectionAdd.Location = new Point(9, 81);
+ buttonCollectionAdd.Name = "buttonCollectionAdd";
+ buttonCollectionAdd.Size = new Size(192, 23);
+ buttonCollectionAdd.TabIndex = 4;
+ buttonCollectionAdd.Text = "Добавить коллекцию";
+ buttonCollectionAdd.UseVisualStyleBackColor = true;
+ buttonCollectionAdd.Click += buttonCollectionAdd_Click;
+ //
+ // radioButtonList
+ //
+ radioButtonList.AutoSize = true;
+ radioButtonList.Location = new Point(128, 56);
+ radioButtonList.Name = "radioButtonList";
+ radioButtonList.Size = new Size(67, 19);
+ radioButtonList.TabIndex = 3;
+ radioButtonList.TabStop = true;
+ radioButtonList.Text = "Список";
+ radioButtonList.UseVisualStyleBackColor = true;
+ //
+ // radioButtonMassive
+ //
+ radioButtonMassive.AutoSize = true;
+ radioButtonMassive.Location = new Point(18, 56);
+ radioButtonMassive.Name = "radioButtonMassive";
+ radioButtonMassive.Size = new Size(69, 19);
+ radioButtonMassive.TabIndex = 2;
+ radioButtonMassive.TabStop = true;
+ radioButtonMassive.Text = "Массив";
+ radioButtonMassive.UseVisualStyleBackColor = true;
+ //
+ // textBoxCollectionName
+ //
+ textBoxCollectionName.Location = new Point(9, 18);
+ textBoxCollectionName.Name = "textBoxCollectionName";
+ textBoxCollectionName.Size = new Size(192, 23);
+ textBoxCollectionName.TabIndex = 1;
+ //
+ // labelCollectionName
+ //
+ labelCollectionName.AutoSize = true;
+ labelCollectionName.Location = new Point(35, 0);
+ labelCollectionName.Name = "labelCollectionName";
+ labelCollectionName.Size = new Size(135, 15);
+ labelCollectionName.TabIndex = 0;
+ labelCollectionName.Text = "Название коллекции:";
+ //
// buttonGoToChek
//
buttonGoToChek.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
@@ -124,17 +214,6 @@
comboBoxSelectorCompany.TabIndex = 2;
comboBoxSelectorCompany.SelectedIndexChanged += comboBoxSelectorCompany_SelectedIndexChanged_1;
//
- // buttonCreateTrackedVehicle
- //
- buttonCreateTrackedVehicle.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- buttonCreateTrackedVehicle.Location = new Point(12, 352);
- buttonCreateTrackedVehicle.Name = "buttonCreateTrackedVehicle";
- buttonCreateTrackedVehicle.Size = new Size(192, 24);
- buttonCreateTrackedVehicle.TabIndex = 1;
- buttonCreateTrackedVehicle.Text = "Добавить гусеничную машину";
- buttonCreateTrackedVehicle.UseVisualStyleBackColor = true;
- buttonCreateTrackedVehicle.Click += buttonCreateTrackedVehicle_Click;
- //
// buttonCreateHoistingCrane
//
buttonCreateHoistingCrane.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
@@ -144,7 +223,7 @@
buttonCreateHoistingCrane.TabIndex = 0;
buttonCreateHoistingCrane.Text = "Добавить подъемный кран";
buttonCreateHoistingCrane.UseVisualStyleBackColor = true;
- buttonCreateHoistingCrane.Click += buttonCreateHoistingCrane_Click;
+
//
// pictureBox
//
@@ -155,98 +234,6 @@
pictureBox.TabIndex = 1;
pictureBox.TabStop = false;
//
- // panelStorage
- //
- panelStorage.Controls.Add(buttonDeleteCollection);
- panelStorage.Controls.Add(listBoxCollection);
- panelStorage.Controls.Add(buttonCollectionAdd);
- panelStorage.Controls.Add(radioButtonList);
- panelStorage.Controls.Add(radioButtonMassive);
- panelStorage.Controls.Add(textBoxCollectionName);
- panelStorage.Controls.Add(labelCollectionName);
- panelStorage.Dock = DockStyle.Top;
- panelStorage.Location = new Point(3, 19);
- panelStorage.Name = "panelStorage";
- panelStorage.Size = new Size(204, 229);
- panelStorage.TabIndex = 7;
- //
- // labelCollectionName
- //
- labelCollectionName.AutoSize = true;
- labelCollectionName.Location = new Point(35, 0);
- labelCollectionName.Name = "labelCollectionName";
- labelCollectionName.Size = new Size(135, 15);
- labelCollectionName.TabIndex = 0;
- labelCollectionName.Text = "Название коллекции:";
- //
- // textBoxCollectionName
- //
- textBoxCollectionName.Location = new Point(9, 18);
- textBoxCollectionName.Name = "textBoxCollectionName";
- textBoxCollectionName.Size = new Size(192, 23);
- textBoxCollectionName.TabIndex = 1;
- //
- // radioButtonMassive
- //
- radioButtonMassive.AutoSize = true;
- radioButtonMassive.Location = new Point(18, 56);
- radioButtonMassive.Name = "radioButtonMassive";
- radioButtonMassive.Size = new Size(69, 19);
- radioButtonMassive.TabIndex = 2;
- radioButtonMassive.TabStop = true;
- radioButtonMassive.Text = "Массив";
- radioButtonMassive.UseVisualStyleBackColor = true;
- //
- // radioButtonList
- //
- radioButtonList.AutoSize = true;
- radioButtonList.Location = new Point(128, 56);
- radioButtonList.Name = "radioButtonList";
- radioButtonList.Size = new Size(67, 19);
- radioButtonList.TabIndex = 3;
- radioButtonList.TabStop = true;
- radioButtonList.Text = "Список";
- radioButtonList.UseVisualStyleBackColor = true;
- //
- // buttonCollectionAdd
- //
- buttonCollectionAdd.Location = new Point(9, 81);
- buttonCollectionAdd.Name = "buttonCollectionAdd";
- buttonCollectionAdd.Size = new Size(192, 23);
- buttonCollectionAdd.TabIndex = 4;
- buttonCollectionAdd.Text = "Добавить коллекцию";
- buttonCollectionAdd.UseVisualStyleBackColor = true;
- buttonCollectionAdd.Click += buttonCollectionAdd_Click;
- //
- // listBoxCollection
- //
- listBoxCollection.FormattingEnabled = true;
- listBoxCollection.ItemHeight = 15;
- listBoxCollection.Location = new Point(9, 118);
- listBoxCollection.Name = "listBoxCollection";
- listBoxCollection.Size = new Size(192, 79);
- listBoxCollection.TabIndex = 5;
- //
- // buttonDeleteCollection
- //
- buttonDeleteCollection.Location = new Point(9, 199);
- buttonDeleteCollection.Name = "buttonDeleteCollection";
- buttonDeleteCollection.Size = new Size(192, 27);
- buttonDeleteCollection.TabIndex = 6;
- buttonDeleteCollection.Text = "Удалить коллекцию";
- buttonDeleteCollection.UseVisualStyleBackColor = true;
- buttonDeleteCollection.Click += buttonDeleteCollection_Click;
- //
- // buttonCreateCompany
- //
- buttonCreateCompany.Location = new Point(12, 295);
- buttonCreateCompany.Name = "buttonCreateCompany";
- buttonCreateCompany.Size = new Size(192, 23);
- buttonCreateCompany.TabIndex = 7;
- buttonCreateCompany.Text = "Создать компанию";
- buttonCreateCompany.UseVisualStyleBackColor = true;
- buttonCreateCompany.Click += buttonCreateCompany_Click;
- //
// FormCarCollection
//
AutoScaleDimensions = new SizeF(7F, 15F);
@@ -258,9 +245,9 @@
Text = "FormCarCollections";
groupBoxTools.ResumeLayout(false);
groupBoxTools.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
panelStorage.ResumeLayout(false);
panelStorage.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
ResumeLayout(false);
}
@@ -268,7 +255,6 @@
private GroupBox groupBoxTools;
private Button buttonCreateHoistingCrane;
- private Button buttonCreateTrackedVehicle;
private ComboBox comboBoxSelectorCompany;
private Button buttonRefresh;
private Button buttonDeleteCar;
diff --git a/HoistingCrane/HoistingCrane/FormCarCollection.cs b/HoistingCrane/HoistingCrane/FormCarCollection.cs
index 3dc984a..104913c 100644
--- a/HoistingCrane/HoistingCrane/FormCarCollection.cs
+++ b/HoistingCrane/HoistingCrane/FormCarCollection.cs
@@ -74,13 +74,29 @@ namespace HoistingCrane
return color;
}
+ private void buttonCreateTrackedVehicle_Click(object sender, EventArgs e)
+ {
+ FormCarConfig form = new();
+ form.Show();
+ form.AddEvent(SetCar);
+ }
-
- private void buttonCreateHoistingCrane_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningHoistingCrane));
-
-
- private void buttonCreateTrackedVehicle_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningTrackedVehicle));
-
+ private void SetCar(DrawningTrackedVehicle car)
+ {
+ if(_company == null || car == null)
+ {
+ return;
+ }
+ if((_company + car) != -1)
+ {
+ MessageBox.Show("Объект добавлен");
+ pictureBox.Image = _company.Show();
+ }
+ else
+ {
+ MessageBox.Show("Не удалось добавить объект");
+ }
+ }
private void buttonDeleteCar_Click(object sender, EventArgs e)
{
@@ -149,7 +165,7 @@ namespace HoistingCrane
private void buttonCollectionAdd_Click(object sender, EventArgs e)
{
- if (string.IsNullOrEmpty(textBoxCollectionName.Text) ||(!radioButtonList.Checked && !radioButtonMassive.Checked))
+ if (string.IsNullOrEmpty(textBoxCollectionName.Text) || (!radioButtonList.Checked && !radioButtonMassive.Checked))
{
MessageBox.Show("Не все данные заполнены", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
@@ -184,7 +200,7 @@ namespace HoistingCrane
return;
_storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
RerfreshListBoxItems();
-
+
}
private void buttonCreateCompany_Click(object sender, EventArgs e)
@@ -210,5 +226,5 @@ namespace HoistingCrane
RerfreshListBoxItems();
}
}
-
+
}
diff --git a/HoistingCrane/HoistingCrane/FormCarConfig.Designer.cs b/HoistingCrane/HoistingCrane/FormCarConfig.Designer.cs
new file mode 100644
index 0000000..9e6b7cf
--- /dev/null
+++ b/HoistingCrane/HoistingCrane/FormCarConfig.Designer.cs
@@ -0,0 +1,355 @@
+namespace HoistingCrane
+{
+ partial class FormCarConfig
+ {
+ ///
+ /// 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()
+ {
+ groupBoxConfig = new GroupBox();
+ groupBoxColors = new GroupBox();
+ panelColorPurple = new Panel();
+ panelColorYellow = new Panel();
+ panelColorGray = new Panel();
+ panelColorGreen = new Panel();
+ panelColorWhite = new Panel();
+ panelColorBlue = new Panel();
+ panelColorBlack = new Panel();
+ panelColorRed = new Panel();
+ checkBoxPlatform = new CheckBox();
+ checkBoxCounterweight = new CheckBox();
+ numericUpDownWeight = new NumericUpDown();
+ numericUpDownSpeed = new NumericUpDown();
+ labelWeight = new Label();
+ labelSpeed = new Label();
+ labelModifiedObject = new Label();
+ labelSimpleObject = new Label();
+ panel = new Panel();
+ labelAdditionalColor = new Label();
+ labelBodyColor = new Label();
+ pictureBoxObject = new PictureBox();
+ buttonAdd = new Button();
+ buttonCancel = new Button();
+ groupBoxConfig.SuspendLayout();
+ groupBoxColors.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).BeginInit();
+ panel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxObject).BeginInit();
+ SuspendLayout();
+ //
+ // groupBoxConfig
+ //
+ groupBoxConfig.Controls.Add(groupBoxColors);
+ groupBoxConfig.Controls.Add(checkBoxPlatform);
+ groupBoxConfig.Controls.Add(checkBoxCounterweight);
+ groupBoxConfig.Controls.Add(numericUpDownWeight);
+ groupBoxConfig.Controls.Add(numericUpDownSpeed);
+ groupBoxConfig.Controls.Add(labelWeight);
+ groupBoxConfig.Controls.Add(labelSpeed);
+ groupBoxConfig.Controls.Add(labelModifiedObject);
+ groupBoxConfig.Controls.Add(labelSimpleObject);
+ groupBoxConfig.Dock = DockStyle.Left;
+ groupBoxConfig.Location = new Point(0, 0);
+ groupBoxConfig.Name = "groupBoxConfig";
+ groupBoxConfig.Size = new Size(514, 207);
+ groupBoxConfig.TabIndex = 0;
+ groupBoxConfig.TabStop = false;
+ groupBoxConfig.Text = "Параметры";
+ //
+ // groupBoxColors
+ //
+ groupBoxColors.Controls.Add(panelColorPurple);
+ groupBoxColors.Controls.Add(panelColorYellow);
+ groupBoxColors.Controls.Add(panelColorGray);
+ groupBoxColors.Controls.Add(panelColorGreen);
+ groupBoxColors.Controls.Add(panelColorWhite);
+ groupBoxColors.Controls.Add(panelColorBlue);
+ groupBoxColors.Controls.Add(panelColorBlack);
+ groupBoxColors.Controls.Add(panelColorRed);
+ groupBoxColors.Location = new Point(283, 26);
+ groupBoxColors.Name = "groupBoxColors";
+ groupBoxColors.Size = new Size(210, 114);
+ groupBoxColors.TabIndex = 8;
+ groupBoxColors.TabStop = false;
+ groupBoxColors.Text = "Цвет";
+ //
+ // panelColorPurple
+ //
+ panelColorPurple.BackColor = Color.Purple;
+ panelColorPurple.Location = new Point(168, 68);
+ panelColorPurple.Name = "panelColorPurple";
+ panelColorPurple.Size = new Size(36, 35);
+ panelColorPurple.TabIndex = 7;
+ //
+ // panelColorYellow
+ //
+ panelColorYellow.BackColor = Color.Yellow;
+ panelColorYellow.Location = new Point(168, 22);
+ panelColorYellow.Name = "panelColorYellow";
+ panelColorYellow.Size = new Size(36, 35);
+ panelColorYellow.TabIndex = 3;
+ //
+ // panelColorGray
+ //
+ panelColorGray.BackColor = Color.Gray;
+ panelColorGray.Location = new Point(114, 68);
+ panelColorGray.Name = "panelColorGray";
+ panelColorGray.Size = new Size(36, 35);
+ panelColorGray.TabIndex = 6;
+ //
+ // panelColorGreen
+ //
+ panelColorGreen.BackColor = Color.Green;
+ panelColorGreen.Location = new Point(114, 22);
+ panelColorGreen.Name = "panelColorGreen";
+ panelColorGreen.Size = new Size(36, 35);
+ panelColorGreen.TabIndex = 2;
+ //
+ // panelColorWhite
+ //
+ panelColorWhite.BackColor = Color.White;
+ panelColorWhite.Location = new Point(61, 68);
+ panelColorWhite.Name = "panelColorWhite";
+ panelColorWhite.Size = new Size(36, 35);
+ panelColorWhite.TabIndex = 5;
+ //
+ // panelColorBlue
+ //
+ panelColorBlue.BackColor = Color.Blue;
+ panelColorBlue.Location = new Point(61, 22);
+ panelColorBlue.Name = "panelColorBlue";
+ panelColorBlue.Size = new Size(36, 35);
+ panelColorBlue.TabIndex = 1;
+ //
+ // panelColorBlack
+ //
+ panelColorBlack.BackColor = Color.Black;
+ panelColorBlack.Location = new Point(6, 68);
+ panelColorBlack.Name = "panelColorBlack";
+ panelColorBlack.Size = new Size(36, 35);
+ panelColorBlack.TabIndex = 4;
+ //
+ // panelColorRed
+ //
+ panelColorRed.BackColor = Color.Red;
+ panelColorRed.Location = new Point(6, 22);
+ panelColorRed.Name = "panelColorRed";
+ panelColorRed.Size = new Size(36, 35);
+ panelColorRed.TabIndex = 0;
+ panelColorRed.MouseDown += panel_MouseDown;
+ //
+ // checkBoxPlatform
+ //
+ checkBoxPlatform.AutoSize = true;
+ checkBoxPlatform.Location = new Point(6, 135);
+ checkBoxPlatform.Name = "checkBoxPlatform";
+ checkBoxPlatform.Size = new Size(148, 19);
+ checkBoxPlatform.TabIndex = 7;
+ checkBoxPlatform.Text = "Наличие платформы";
+ checkBoxPlatform.UseVisualStyleBackColor = true;
+ //
+ // checkBoxCounterweight
+ //
+ checkBoxCounterweight.AutoSize = true;
+ checkBoxCounterweight.Location = new Point(6, 110);
+ checkBoxCounterweight.Name = "checkBoxCounterweight";
+ checkBoxCounterweight.Size = new Size(155, 19);
+ checkBoxCounterweight.TabIndex = 6;
+ checkBoxCounterweight.Text = "Наличие противовеса";
+ checkBoxCounterweight.UseVisualStyleBackColor = true;
+ //
+ // numericUpDownWeight
+ //
+ numericUpDownWeight.Location = new Point(72, 66);
+ 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(120, 23);
+ numericUpDownWeight.TabIndex = 5;
+ numericUpDownWeight.Value = new decimal(new int[] { 100, 0, 0, 0 });
+ //
+ // numericUpDownSpeed
+ //
+ numericUpDownSpeed.Location = new Point(72, 31);
+ 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(120, 23);
+ numericUpDownSpeed.TabIndex = 4;
+ numericUpDownSpeed.Value = new decimal(new int[] { 100, 0, 0, 0 });
+ //
+ // labelWeight
+ //
+ labelWeight.AutoSize = true;
+ labelWeight.Location = new Point(6, 68);
+ labelWeight.Name = "labelWeight";
+ labelWeight.Size = new Size(28, 15);
+ labelWeight.TabIndex = 3;
+ labelWeight.Text = "Вес";
+ //
+ // labelSpeed
+ //
+ labelSpeed.AutoSize = true;
+ labelSpeed.Location = new Point(6, 33);
+ labelSpeed.Name = "labelSpeed";
+ labelSpeed.Size = new Size(60, 15);
+ labelSpeed.TabIndex = 2;
+ labelSpeed.Text = "Скорость";
+ //
+ // labelModifiedObject
+ //
+ labelModifiedObject.BorderStyle = BorderStyle.FixedSingle;
+ labelModifiedObject.Location = new Point(139, 173);
+ labelModifiedObject.Name = "labelModifiedObject";
+ labelModifiedObject.Size = new Size(114, 31);
+ labelModifiedObject.TabIndex = 1;
+ labelModifiedObject.Text = "Продвинутый";
+ labelModifiedObject.TextAlign = ContentAlignment.MiddleCenter;
+ labelModifiedObject.MouseDown += labelObject_MouseDown;
+ //
+ // labelSimpleObject
+ //
+ labelSimpleObject.BorderStyle = BorderStyle.FixedSingle;
+ labelSimpleObject.Location = new Point(6, 172);
+ labelSimpleObject.Name = "labelSimpleObject";
+ labelSimpleObject.Size = new Size(114, 31);
+ labelSimpleObject.TabIndex = 0;
+ labelSimpleObject.Text = "Простой";
+ labelSimpleObject.TextAlign = ContentAlignment.MiddleCenter;
+ labelSimpleObject.MouseDown += labelObject_MouseDown;
+ //
+ // panel
+ //
+ panel.AllowDrop = true;
+ panel.Controls.Add(labelAdditionalColor);
+ panel.Controls.Add(labelBodyColor);
+ panel.Controls.Add(pictureBoxObject);
+ panel.Location = new Point(545, 0);
+ panel.Name = "panel";
+ panel.Size = new Size(216, 167);
+ panel.TabIndex = 1;
+ panel.DragDrop += panel_DragDrop;
+ panel.DragEnter += panel_DragEnter;
+ //
+ // labelAdditionalColor
+ //
+ labelAdditionalColor.BorderStyle = BorderStyle.FixedSingle;
+ labelAdditionalColor.Location = new Point(116, 9);
+ labelAdditionalColor.Name = "labelAdditionalColor";
+ labelAdditionalColor.Size = new Size(97, 31);
+ labelAdditionalColor.TabIndex = 10;
+ labelAdditionalColor.Text = "Доп. цвет";
+ labelAdditionalColor.TextAlign = ContentAlignment.MiddleCenter;
+ labelAdditionalColor.DragEnter += labelColors_DragEnter;
+ //
+ // labelBodyColor
+ //
+ labelBodyColor.BorderStyle = BorderStyle.FixedSingle;
+ labelBodyColor.Location = new Point(3, 9);
+ labelBodyColor.Name = "labelBodyColor";
+ labelBodyColor.Size = new Size(97, 31);
+ labelBodyColor.TabIndex = 9;
+ labelBodyColor.Text = "Цвет";
+ labelBodyColor.TextAlign = ContentAlignment.MiddleCenter;
+ labelBodyColor.DragEnter += labelColors_DragEnter;
+ //
+ // pictureBoxObject
+ //
+ pictureBoxObject.Location = new Point(3, 43);
+ pictureBoxObject.Name = "pictureBoxObject";
+ pictureBoxObject.Size = new Size(210, 121);
+ pictureBoxObject.TabIndex = 0;
+ pictureBoxObject.TabStop = false;
+ //
+ // buttonAdd
+ //
+ buttonAdd.Location = new Point(545, 172);
+ buttonAdd.Name = "buttonAdd";
+ buttonAdd.Size = new Size(91, 34);
+ buttonAdd.TabIndex = 1;
+ buttonAdd.Text = "Добавить";
+ buttonAdd.UseVisualStyleBackColor = true;
+ buttonAdd.Click += buttonAdd_Click;
+ //
+ // buttonCancel
+ //
+ buttonCancel.Location = new Point(670, 173);
+ buttonCancel.Name = "buttonCancel";
+ buttonCancel.Size = new Size(91, 35);
+ buttonCancel.TabIndex = 2;
+ buttonCancel.Text = "Отмена";
+ buttonCancel.UseVisualStyleBackColor = true;
+
+ //
+ // FormCarConfig
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(777, 207);
+ Controls.Add(buttonCancel);
+ Controls.Add(buttonAdd);
+ Controls.Add(panel);
+ Controls.Add(groupBoxConfig);
+ Name = "FormCarConfig";
+ Text = "FormCarConfig";
+ groupBoxConfig.ResumeLayout(false);
+ groupBoxConfig.PerformLayout();
+ groupBoxColors.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).EndInit();
+ panel.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)pictureBoxObject).EndInit();
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private GroupBox groupBoxConfig;
+ private Label labelModifiedObject;
+ private Label labelSimpleObject;
+ private NumericUpDown numericUpDownWeight;
+ private NumericUpDown numericUpDownSpeed;
+ private Label labelWeight;
+ private Label labelSpeed;
+ private CheckBox checkBoxPlatform;
+ private CheckBox checkBoxCounterweight;
+ private GroupBox groupBoxColors;
+ private Panel panelColorPurple;
+ private Panel panelColorYellow;
+ private Panel panelColorGray;
+ private Panel panelColorGreen;
+ private Panel panelColorWhite;
+ private Panel panelColorBlue;
+ private Panel panelColorBlack;
+ private Panel panelColorRed;
+ private Panel panel;
+ private PictureBox pictureBoxObject;
+ private Button buttonAdd;
+ private Button buttonCancel;
+ private Label labelAdditionalColor;
+ private Label labelBodyColor;
+ }
+}
\ No newline at end of file
diff --git a/HoistingCrane/HoistingCrane/FormCarConfig.cs b/HoistingCrane/HoistingCrane/FormCarConfig.cs
new file mode 100644
index 0000000..4142774
--- /dev/null
+++ b/HoistingCrane/HoistingCrane/FormCarConfig.cs
@@ -0,0 +1,122 @@
+using HoistingCrane.CollectionGenericObjects;
+using HoistingCrane.Drawning;
+using HoistingCrane.Entities;
+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;
+
+namespace HoistingCrane
+{
+ public partial class FormCarConfig : Form
+ {
+ private DrawningTrackedVehicle? car = null;
+ private event CarDelegate? _carDelegate;
+ public FormCarConfig()
+ {
+ panelColorRed.MouseDown += panel_MouseDown;
+ panelColorBlue.MouseDown += panel_MouseDown;
+ panelColorGreen.MouseDown += panel_MouseDown;
+ panelColorYellow.MouseDown += panel_MouseDown;
+ panelColorBlack.MouseDown += panel_MouseDown;
+ panelColorWhite.MouseDown += panel_MouseDown;
+ panelColorGray.MouseDown += panel_MouseDown;
+ panelColorPurple.MouseDown += panel_MouseDown;
+ buttonCancel.Click += (sender, e) => Close();
+
+ InitializeComponent();
+ }
+ public void AddEvent(CarDelegate carDelegate)
+ {
+ _carDelegate += carDelegate;
+ }
+ private void DrawObject()
+ {
+ Bitmap bmp = new(pictureBoxObject.Width, pictureBoxObject.Height);
+ Graphics gr = Graphics.FromImage(bmp);
+ car?.SetPictureSize(pictureBoxObject.Width, pictureBoxObject.Height);
+ car?.SetPosition(5, 5);
+ car?.DrawTransport(gr);
+ pictureBoxObject.Image = bmp;
+ }
+
+ private void labelObject_MouseDown(object sender, MouseEventArgs e)
+ {
+ var label = sender as Label;
+ label?.DoDragDrop(label.Name, DragDropEffects.Move);
+ label?.DoDragDrop(label.Name, 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 "labelSimpleObject":
+ car = new DrawningTrackedVehicle((int)numericUpDownSpeed.Value, (double)numericUpDownWeight.Value, Color.White);
+ break;
+ case "labelModifiedObject":
+ car = new DrawningHoistingCrane((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black, checkBoxCounterweight.Checked,
+ checkBoxPlatform.Checked);
+ break;
+ }
+ DrawObject();
+ }
+
+ private void panel_MouseDown(object? sender, MouseEventArgs e)
+ {
+ var color = sender as Label;
+ color?.DoDragDrop(color.BackColor, DragDropEffects.Move);
+ color?.DoDragDrop(color.BackColor, DragDropEffects.Copy);
+ }
+
+ // TODO Реализовать логику смены цветов: основного и дополнительного (для продвинутого объекта)
+ private void labelColors_DragEnter(object sender, DragEventArgs e)
+ {
+ var label = (String)sender;
+ Color newColor = (Color)e.Data.GetData(typeof(Color).ToString());
+ switch (label)
+ {
+ case "labelBodyColor":
+ car?.EntityTrackedVehicle?.SetBodyColor(newColor);
+ DrawObject();
+ break;
+ case "labelAdditionalColor":
+ if (car is DrawningHoistingCrane)
+ {
+ (car.EntityTrackedVehicle as EntityHoistingCrane).SetAdditionalColor(newColor);
+ DrawObject();
+ }
+ break;
+ }
+ }
+
+ private void buttonAdd_Click(object sender, EventArgs e)
+ {
+ if (car != null)
+ {
+ _carDelegate?.Invoke(car);
+ Close();
+ }
+ }
+
+
+ }
+
+}
diff --git a/HoistingCrane/HoistingCrane/FormCarConfig.resx b/HoistingCrane/HoistingCrane/FormCarConfig.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/HoistingCrane/HoistingCrane/FormCarConfig.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