diff --git a/ProjectSportCar/ProjectSportCar/CarDelegate.cs b/ProjectSportCar/ProjectSportCar/CarDelegate.cs
new file mode 100644
index 0000000..d67dfd7
--- /dev/null
+++ b/ProjectSportCar/ProjectSportCar/CarDelegate.cs
@@ -0,0 +1,9 @@
+using ProjectSportCar.Drawnings;
+
+namespace ProjectSportCar;
+
+/// <summary>
+/// Делегат передачи объекта класса-прорисовки
+/// </summary>
+/// <param name="car"></param>
+public delegate void CarDelegate(DrawningCar car);
\ No newline at end of file
diff --git a/ProjectSportCar/ProjectSportCar/FormCarCollection.Designer.cs b/ProjectSportCar/ProjectSportCar/FormCarCollection.Designer.cs
index 436c28c..f756a4e 100644
--- a/ProjectSportCar/ProjectSportCar/FormCarCollection.Designer.cs
+++ b/ProjectSportCar/ProjectSportCar/FormCarCollection.Designer.cs
@@ -29,6 +29,12 @@
 		private void InitializeComponent()
 		{
 			groupBoxTools = new GroupBox();
+			panelCompanyTools = new Panel();
+			buttonAddCar = new Button();
+			maskedTextBoxPosition = new MaskedTextBox();
+			buttonRefresh = new Button();
+			buttonRemoveCar = new Button();
+			buttonGoToCheck = new Button();
 			buttonCreateCompany = new Button();
 			panelStorage = new Panel();
 			buttonCollectionDel = new Button();
@@ -38,19 +44,12 @@
 			radioButtonMassive = new RadioButton();
 			textBoxCollectionName = new TextBox();
 			labelCollectionName = new Label();
-			buttonRefresh = new Button();
-			buttonGoToCheck = new Button();
-			buttonRemoveCar = new Button();
-			maskedTextBoxPosition = new MaskedTextBox();
-			buttonAddSportCar = new Button();
-			buttonAddCar = new Button();
 			comboBoxSelectorCompany = new ComboBox();
 			pictureBox = new PictureBox();
-			panelCompanyTools = new Panel();
 			groupBoxTools.SuspendLayout();
+			panelCompanyTools.SuspendLayout();
 			panelStorage.SuspendLayout();
 			((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
-			panelCompanyTools.SuspendLayout();
 			SuspendLayout();
 			// 
 			// groupBoxTools
@@ -67,6 +66,73 @@
 			groupBoxTools.TabStop = false;
 			groupBoxTools.Text = "Инструменты";
 			// 
+			// panelCompanyTools
+			// 
+			panelCompanyTools.Controls.Add(buttonAddCar);
+			panelCompanyTools.Controls.Add(maskedTextBoxPosition);
+			panelCompanyTools.Controls.Add(buttonRefresh);
+			panelCompanyTools.Controls.Add(buttonRemoveCar);
+			panelCompanyTools.Controls.Add(buttonGoToCheck);
+			panelCompanyTools.Dock = DockStyle.Bottom;
+			panelCompanyTools.Enabled = false;
+			panelCompanyTools.Location = new Point(3, 360);
+			panelCompanyTools.Name = "panelCompanyTools";
+			panelCompanyTools.Size = new Size(173, 253);
+			panelCompanyTools.TabIndex = 9;
+			// 
+			// buttonAddCar
+			// 
+			buttonAddCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+			buttonAddCar.Location = new Point(3, 3);
+			buttonAddCar.Name = "buttonAddCar";
+			buttonAddCar.Size = new Size(167, 40);
+			buttonAddCar.TabIndex = 1;
+			buttonAddCar.Text = "Добавление автомобиля";
+			buttonAddCar.UseVisualStyleBackColor = true;
+			buttonAddCar.Click += ButtonAddCar_Click;
+			// 
+			// maskedTextBoxPosition
+			// 
+			maskedTextBoxPosition.Location = new Point(3, 95);
+			maskedTextBoxPosition.Mask = "00";
+			maskedTextBoxPosition.Name = "maskedTextBoxPosition";
+			maskedTextBoxPosition.Size = new Size(167, 23);
+			maskedTextBoxPosition.TabIndex = 3;
+			maskedTextBoxPosition.ValidatingType = typeof(int);
+			// 
+			// buttonRefresh
+			// 
+			buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+			buttonRefresh.Location = new Point(3, 210);
+			buttonRefresh.Name = "buttonRefresh";
+			buttonRefresh.Size = new Size(167, 40);
+			buttonRefresh.TabIndex = 6;
+			buttonRefresh.Text = "Обновить";
+			buttonRefresh.UseVisualStyleBackColor = true;
+			buttonRefresh.Click += ButtonRefresh_Click;
+			// 
+			// buttonRemoveCar
+			// 
+			buttonRemoveCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+			buttonRemoveCar.Location = new Point(3, 124);
+			buttonRemoveCar.Name = "buttonRemoveCar";
+			buttonRemoveCar.Size = new Size(167, 40);
+			buttonRemoveCar.TabIndex = 4;
+			buttonRemoveCar.Text = "Удалить автомобиль";
+			buttonRemoveCar.UseVisualStyleBackColor = true;
+			buttonRemoveCar.Click += ButtonRemoveCar_Click;
+			// 
+			// buttonGoToCheck
+			// 
+			buttonGoToCheck.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
+			buttonGoToCheck.Location = new Point(3, 170);
+			buttonGoToCheck.Name = "buttonGoToCheck";
+			buttonGoToCheck.Size = new Size(167, 40);
+			buttonGoToCheck.TabIndex = 5;
+			buttonGoToCheck.Text = "Передать на тесты";
+			buttonGoToCheck.UseVisualStyleBackColor = true;
+			buttonGoToCheck.Click += ButtonGoToCheck_Click;
+			// 
 			// buttonCreateCompany
 			// 
 			buttonCreateCompany.Location = new Point(6, 320);
@@ -159,70 +225,6 @@
 			labelCollectionName.TabIndex = 0;
 			labelCollectionName.Text = "Название коллекции:";
 			// 
-			// buttonRefresh
-			// 
-			buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
-			buttonRefresh.Location = new Point(3, 210);
-			buttonRefresh.Name = "buttonRefresh";
-			buttonRefresh.Size = new Size(167, 40);
-			buttonRefresh.TabIndex = 6;
-			buttonRefresh.Text = "Обновить";
-			buttonRefresh.UseVisualStyleBackColor = true;
-			buttonRefresh.Click += ButtonRefresh_Click;
-			// 
-			// buttonGoToCheck
-			// 
-			buttonGoToCheck.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
-			buttonGoToCheck.Location = new Point(3, 170);
-			buttonGoToCheck.Name = "buttonGoToCheck";
-			buttonGoToCheck.Size = new Size(167, 40);
-			buttonGoToCheck.TabIndex = 5;
-			buttonGoToCheck.Text = "Передать на тесты";
-			buttonGoToCheck.UseVisualStyleBackColor = true;
-			buttonGoToCheck.Click += ButtonGoToCheck_Click;
-			// 
-			// buttonRemoveCar
-			// 
-			buttonRemoveCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
-			buttonRemoveCar.Location = new Point(3, 124);
-			buttonRemoveCar.Name = "buttonRemoveCar";
-			buttonRemoveCar.Size = new Size(167, 40);
-			buttonRemoveCar.TabIndex = 4;
-			buttonRemoveCar.Text = "Удалить автомобиль";
-			buttonRemoveCar.UseVisualStyleBackColor = true;
-			buttonRemoveCar.Click += ButtonRemoveCar_Click;
-			// 
-			// maskedTextBoxPosition
-			// 
-			maskedTextBoxPosition.Location = new Point(3, 95);
-			maskedTextBoxPosition.Mask = "00";
-			maskedTextBoxPosition.Name = "maskedTextBoxPosition";
-			maskedTextBoxPosition.Size = new Size(167, 23);
-			maskedTextBoxPosition.TabIndex = 3;
-			maskedTextBoxPosition.ValidatingType = typeof(int);
-			// 
-			// buttonAddSportCar
-			// 
-			buttonAddSportCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
-			buttonAddSportCar.Location = new Point(3, 49);
-			buttonAddSportCar.Name = "buttonAddSportCar";
-			buttonAddSportCar.Size = new Size(167, 40);
-			buttonAddSportCar.TabIndex = 2;
-			buttonAddSportCar.Text = "Добавление спортивного автомобиля";
-			buttonAddSportCar.UseVisualStyleBackColor = true;
-			buttonAddSportCar.Click += ButtonAddSportCar_Click;
-			// 
-			// buttonAddCar
-			// 
-			buttonAddCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
-			buttonAddCar.Location = new Point(3, 3);
-			buttonAddCar.Name = "buttonAddCar";
-			buttonAddCar.Size = new Size(167, 40);
-			buttonAddCar.TabIndex = 1;
-			buttonAddCar.Text = "Добавление автомобиля";
-			buttonAddCar.UseVisualStyleBackColor = true;
-			buttonAddCar.Click += ButtonAddCar_Click;
-			// 
 			// comboBoxSelectorCompany
 			// 
 			comboBoxSelectorCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
@@ -244,21 +246,6 @@
 			pictureBox.TabIndex = 1;
 			pictureBox.TabStop = false;
 			// 
-			// panelCompanyTools
-			// 
-			panelCompanyTools.Controls.Add(buttonAddCar);
-			panelCompanyTools.Controls.Add(buttonAddSportCar);
-			panelCompanyTools.Controls.Add(maskedTextBoxPosition);
-			panelCompanyTools.Controls.Add(buttonRefresh);
-			panelCompanyTools.Controls.Add(buttonRemoveCar);
-			panelCompanyTools.Controls.Add(buttonGoToCheck);
-			panelCompanyTools.Dock = DockStyle.Bottom;
-			panelCompanyTools.Enabled = false;
-			panelCompanyTools.Location = new Point(3, 360);
-			panelCompanyTools.Name = "panelCompanyTools";
-			panelCompanyTools.Size = new Size(173, 253);
-			panelCompanyTools.TabIndex = 9;
-			// 
 			// FormCarCollection
 			// 
 			AutoScaleDimensions = new SizeF(7F, 15F);
@@ -269,11 +256,11 @@
 			Name = "FormCarCollection";
 			Text = "Коллекция автомобилей";
 			groupBoxTools.ResumeLayout(false);
+			panelCompanyTools.ResumeLayout(false);
+			panelCompanyTools.PerformLayout();
 			panelStorage.ResumeLayout(false);
 			panelStorage.PerformLayout();
 			((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
-			panelCompanyTools.ResumeLayout(false);
-			panelCompanyTools.PerformLayout();
 			ResumeLayout(false);
 		}
 
@@ -281,7 +268,6 @@
 
 		private GroupBox groupBoxTools;
 		private ComboBox comboBoxSelectorCompany;
-		private Button buttonAddSportCar;
 		private Button buttonAddCar;
 		private Button buttonRemoveCar;
 		private MaskedTextBox maskedTextBoxPosition;
diff --git a/ProjectSportCar/ProjectSportCar/FormCarCollection.cs b/ProjectSportCar/ProjectSportCar/FormCarCollection.cs
index c2af199..badddec 100644
--- a/ProjectSportCar/ProjectSportCar/FormCarCollection.cs
+++ b/ProjectSportCar/ProjectSportCar/FormCarCollection.cs
@@ -38,49 +38,29 @@ public partial class FormCarCollection : Form
 	}
 
 	/// <summary>
-	/// Добавление обычного автомобиля
+	/// Добавление автомобиля
 	/// </summary>
 	/// <param name="sender"></param>
 	/// <param name="e"></param>
-	private void ButtonAddCar_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningCar));
-
-	/// <summary>
-	/// Добавление спортивного автомобиля
-	/// </summary>
-	/// <param name="sender"></param>
-	/// <param name="e"></param>
-	private void ButtonAddSportCar_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningSportCar));
-
-	/// <summary>
-	/// Создание объекта класса-перемещения
-	/// </summary>
-	/// <param name="type">Тип создаваемого объекта</param>
-	private void CreateObject(string type)
+	private void ButtonAddCar_Click(object sender, EventArgs e)
 	{
-		if (_company == null)
+		FormCarConfig form = new();
+		// TODO передать метод
+		form.Show();
+	}
+
+	/// <summary>
+	/// Добавление автомобиля в коллекцию
+	/// </summary>
+	/// <param name="car"></param>
+	private void SetCar(DrawningCar car)
+	{
+		if (_company == null || car == null)
 		{
 			return;
 		}
 
-		Random random = new();
-		DrawningCar drawningCar;
-		switch (type)
-		{
-			case nameof(DrawningCar):
-				drawningCar = new DrawningCar(random.Next(100, 300), random.Next(1000, 3000), GetColor(random));
-				break;
-			case nameof(DrawningSportCar):
-				// TODO выбор цветов
-				drawningCar = new DrawningSportCar(random.Next(100, 300), random.Next(1000, 3000),
-					Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
-					Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
-					Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
-				break;
-			default:
-				return;
-		}
-
-		if (_company + drawningCar)
+		if (_company + car)
 		{
 			MessageBox.Show("Объект добавлен");
 			pictureBox.Image = _company.Show();
@@ -91,23 +71,6 @@ public partial class FormCarCollection : Form
 		}
 	}
 
-	/// <summary>
-	/// Получение цвета
-	/// </summary>
-	/// <param name="random">Генератор случайных чисел</param>
-	/// <returns></returns>
-	private static Color GetColor(Random random)
-	{
-		Color color = Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256));
-		ColorDialog dialog = new();
-		if (dialog.ShowDialog() == DialogResult.OK)
-		{
-			color = dialog.Color;
-		}
-
-		return color;
-	}
-
 	/// <summary>
 	/// Удаление объекта
 	/// </summary>
diff --git a/ProjectSportCar/ProjectSportCar/FormCarConfig.Designer.cs b/ProjectSportCar/ProjectSportCar/FormCarConfig.Designer.cs
new file mode 100644
index 0000000..0cbfa94
--- /dev/null
+++ b/ProjectSportCar/ProjectSportCar/FormCarConfig.Designer.cs
@@ -0,0 +1,364 @@
+namespace ProjectSportCar
+{
+	partial class FormCarConfig
+	{
+		/// <summary>
+		/// Required designer variable.
+		/// </summary>
+		private System.ComponentModel.IContainer components = null;
+
+		/// <summary>
+		/// Clean up any resources being used.
+		/// </summary>
+		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+		protected override void Dispose(bool disposing)
+		{
+			if (disposing && (components != null))
+			{
+				components.Dispose();
+			}
+			base.Dispose(disposing);
+		}
+
+		#region Windows Form Designer generated code
+
+		/// <summary>
+		/// Required method for Designer support - do not modify
+		/// the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			groupBoxConfig = new GroupBox();
+			groupBoxColors = new GroupBox();
+			panelPurple = new Panel();
+			panelYellow = new Panel();
+			panelBlack = new Panel();
+			panelGrey = new Panel();
+			panelBlue = new Panel();
+			panelWhite = new Panel();
+			panelGreen = new Panel();
+			panelRed = new Panel();
+			checkBoxSportLine = new CheckBox();
+			checkBoxWing = new CheckBox();
+			checkBoxBodyKit = new CheckBox();
+			numericUpDownWeight = new NumericUpDown();
+			labelWeight = new Label();
+			numericUpDownSpeed = new NumericUpDown();
+			labelSpeed = new Label();
+			labelModifiedObject = new Label();
+			labelSimpleObject = new Label();
+			pictureBoxObject = new PictureBox();
+			buttonAdd = new Button();
+			buttonCancel = new Button();
+			panelObject = new Panel();
+			labelAdditionalColor = new Label();
+			labelBodyColor = new Label();
+			groupBoxConfig.SuspendLayout();
+			groupBoxColors.SuspendLayout();
+			((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit();
+			((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).BeginInit();
+			((System.ComponentModel.ISupportInitialize)pictureBoxObject).BeginInit();
+			panelObject.SuspendLayout();
+			SuspendLayout();
+			// 
+			// groupBoxConfig
+			// 
+			groupBoxConfig.Controls.Add(groupBoxColors);
+			groupBoxConfig.Controls.Add(checkBoxSportLine);
+			groupBoxConfig.Controls.Add(checkBoxWing);
+			groupBoxConfig.Controls.Add(checkBoxBodyKit);
+			groupBoxConfig.Controls.Add(numericUpDownWeight);
+			groupBoxConfig.Controls.Add(labelWeight);
+			groupBoxConfig.Controls.Add(numericUpDownSpeed);
+			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(492, 203);
+			groupBoxConfig.TabIndex = 0;
+			groupBoxConfig.TabStop = false;
+			groupBoxConfig.Text = "Параметры";
+			// 
+			// groupBoxColors
+			// 
+			groupBoxColors.Controls.Add(panelPurple);
+			groupBoxColors.Controls.Add(panelYellow);
+			groupBoxColors.Controls.Add(panelBlack);
+			groupBoxColors.Controls.Add(panelGrey);
+			groupBoxColors.Controls.Add(panelBlue);
+			groupBoxColors.Controls.Add(panelWhite);
+			groupBoxColors.Controls.Add(panelGreen);
+			groupBoxColors.Controls.Add(panelRed);
+			groupBoxColors.Location = new Point(253, 22);
+			groupBoxColors.Name = "groupBoxColors";
+			groupBoxColors.Size = new Size(227, 112);
+			groupBoxColors.TabIndex = 9;
+			groupBoxColors.TabStop = false;
+			groupBoxColors.Text = "Цвета";
+			// 
+			// panelPurple
+			// 
+			panelPurple.BackColor = Color.Purple;
+			panelPurple.Location = new Point(176, 66);
+			panelPurple.Name = "panelPurple";
+			panelPurple.Size = new Size(34, 34);
+			panelPurple.TabIndex = 3;
+			// 
+			// panelYellow
+			// 
+			panelYellow.BackColor = Color.Yellow;
+			panelYellow.Location = new Point(176, 22);
+			panelYellow.Name = "panelYellow";
+			panelYellow.Size = new Size(34, 34);
+			panelYellow.TabIndex = 1;
+			// 
+			// panelBlack
+			// 
+			panelBlack.BackColor = Color.Black;
+			panelBlack.Location = new Point(120, 66);
+			panelBlack.Name = "panelBlack";
+			panelBlack.Size = new Size(34, 34);
+			panelBlack.TabIndex = 4;
+			// 
+			// panelGrey
+			// 
+			panelGrey.BackColor = Color.Gray;
+			panelGrey.Location = new Point(67, 66);
+			panelGrey.Name = "panelGrey";
+			panelGrey.Size = new Size(34, 34);
+			panelGrey.TabIndex = 5;
+			// 
+			// panelBlue
+			// 
+			panelBlue.BackColor = Color.Blue;
+			panelBlue.Location = new Point(120, 22);
+			panelBlue.Name = "panelBlue";
+			panelBlue.Size = new Size(34, 34);
+			panelBlue.TabIndex = 1;
+			// 
+			// panelWhite
+			// 
+			panelWhite.BackColor = Color.White;
+			panelWhite.Location = new Point(15, 66);
+			panelWhite.Name = "panelWhite";
+			panelWhite.Size = new Size(34, 34);
+			panelWhite.TabIndex = 2;
+			// 
+			// panelGreen
+			// 
+			panelGreen.BackColor = Color.Green;
+			panelGreen.Location = new Point(67, 22);
+			panelGreen.Name = "panelGreen";
+			panelGreen.Size = new Size(34, 34);
+			panelGreen.TabIndex = 1;
+			// 
+			// panelRed
+			// 
+			panelRed.BackColor = Color.Red;
+			panelRed.Location = new Point(15, 22);
+			panelRed.Name = "panelRed";
+			panelRed.Size = new Size(34, 34);
+			panelRed.TabIndex = 0;
+			// 
+			// checkBoxSportLine
+			// 
+			checkBoxSportLine.AutoSize = true;
+			checkBoxSportLine.Location = new Point(12, 168);
+			checkBoxSportLine.Name = "checkBoxSportLine";
+			checkBoxSportLine.Size = new Size(226, 19);
+			checkBoxSportLine.TabIndex = 8;
+			checkBoxSportLine.Text = "Признак наличия гоночной полосы";
+			checkBoxSportLine.UseVisualStyleBackColor = true;
+			// 
+			// checkBoxWing
+			// 
+			checkBoxWing.AutoSize = true;
+			checkBoxWing.Location = new Point(12, 132);
+			checkBoxWing.Name = "checkBoxWing";
+			checkBoxWing.Size = new Size(186, 19);
+			checkBoxWing.TabIndex = 7;
+			checkBoxWing.Text = "Признак наличия антикрыла";
+			checkBoxWing.UseVisualStyleBackColor = true;
+			// 
+			// checkBoxBodyKit
+			// 
+			checkBoxBodyKit.AutoSize = true;
+			checkBoxBodyKit.Location = new Point(12, 96);
+			checkBoxBodyKit.Name = "checkBoxBodyKit";
+			checkBoxBodyKit.Size = new Size(164, 19);
+			checkBoxBodyKit.TabIndex = 6;
+			checkBoxBodyKit.Text = "Признак наличия обвеса";
+			checkBoxBodyKit.UseVisualStyleBackColor = true;
+			// 
+			// numericUpDownWeight
+			// 
+			numericUpDownWeight.Location = new Point(80, 63);
+			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(96, 23);
+			numericUpDownWeight.TabIndex = 5;
+			numericUpDownWeight.Value = new decimal(new int[] { 100, 0, 0, 0 });
+			// 
+			// labelWeight
+			// 
+			labelWeight.AutoSize = true;
+			labelWeight.Location = new Point(12, 65);
+			labelWeight.Name = "labelWeight";
+			labelWeight.Size = new Size(29, 15);
+			labelWeight.TabIndex = 4;
+			labelWeight.Text = "Вес:";
+			// 
+			// numericUpDownSpeed
+			// 
+			numericUpDownSpeed.Location = new Point(80, 28);
+			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(96, 23);
+			numericUpDownSpeed.TabIndex = 3;
+			numericUpDownSpeed.Value = new decimal(new int[] { 100, 0, 0, 0 });
+			// 
+			// labelSpeed
+			// 
+			labelSpeed.AutoSize = true;
+			labelSpeed.Location = new Point(12, 30);
+			labelSpeed.Name = "labelSpeed";
+			labelSpeed.Size = new Size(62, 15);
+			labelSpeed.TabIndex = 2;
+			labelSpeed.Text = "Скорость:";
+			// 
+			// labelModifiedObject
+			// 
+			labelModifiedObject.BorderStyle = BorderStyle.FixedSingle;
+			labelModifiedObject.Location = new Point(380, 160);
+			labelModifiedObject.Name = "labelModifiedObject";
+			labelModifiedObject.Size = new Size(100, 33);
+			labelModifiedObject.TabIndex = 1;
+			labelModifiedObject.Text = "Продвинутый";
+			labelModifiedObject.TextAlign = ContentAlignment.MiddleCenter;
+			labelModifiedObject.MouseDown += LabelObject_MouseDown;
+			// 
+			// labelSimpleObject
+			// 
+			labelSimpleObject.BorderStyle = BorderStyle.FixedSingle;
+			labelSimpleObject.Location = new Point(253, 160);
+			labelSimpleObject.Name = "labelSimpleObject";
+			labelSimpleObject.Size = new Size(100, 33);
+			labelSimpleObject.TabIndex = 0;
+			labelSimpleObject.Text = "Простой";
+			labelSimpleObject.TextAlign = ContentAlignment.MiddleCenter;
+			labelSimpleObject.MouseDown += LabelObject_MouseDown;
+			// 
+			// pictureBoxObject
+			// 
+			pictureBoxObject.Location = new Point(13, 52);
+			pictureBoxObject.Name = "pictureBoxObject";
+			pictureBoxObject.Size = new Size(170, 99);
+			pictureBoxObject.TabIndex = 1;
+			pictureBoxObject.TabStop = false;
+			// 
+			// buttonAdd
+			// 
+			buttonAdd.Location = new Point(511, 170);
+			buttonAdd.Name = "buttonAdd";
+			buttonAdd.Size = new Size(75, 23);
+			buttonAdd.TabIndex = 2;
+			buttonAdd.Text = "Добавить";
+			buttonAdd.UseVisualStyleBackColor = true;
+			buttonAdd.Click += ButtonAdd_Click;
+			// 
+			// buttonCancel
+			// 
+			buttonCancel.Location = new Point(606, 170);
+			buttonCancel.Name = "buttonCancel";
+			buttonCancel.Size = new Size(75, 23);
+			buttonCancel.TabIndex = 3;
+			buttonCancel.Text = "Отмена";
+			buttonCancel.UseVisualStyleBackColor = true;
+			// 
+			// panelObject
+			// 
+			panelObject.AllowDrop = true;
+			panelObject.Controls.Add(labelAdditionalColor);
+			panelObject.Controls.Add(labelBodyColor);
+			panelObject.Controls.Add(pictureBoxObject);
+			panelObject.Location = new Point(498, 0);
+			panelObject.Name = "panelObject";
+			panelObject.Size = new Size(194, 164);
+			panelObject.TabIndex = 4;
+			panelObject.DragDrop += PanelObject_DragDrop;
+			panelObject.DragEnter += PanelObject_DragEnter;
+			// 
+			// labelAdditionalColor
+			// 
+			labelAdditionalColor.BorderStyle = BorderStyle.FixedSingle;
+			labelAdditionalColor.Location = new Point(108, 9);
+			labelAdditionalColor.Name = "labelAdditionalColor";
+			labelAdditionalColor.Size = new Size(75, 33);
+			labelAdditionalColor.TabIndex = 3;
+			labelAdditionalColor.Text = "Доп. цвет";
+			labelAdditionalColor.TextAlign = ContentAlignment.MiddleCenter;
+			// 
+			// labelBodyColor
+			// 
+			labelBodyColor.BorderStyle = BorderStyle.FixedSingle;
+			labelBodyColor.Location = new Point(13, 9);
+			labelBodyColor.Name = "labelBodyColor";
+			labelBodyColor.Size = new Size(75, 33);
+			labelBodyColor.TabIndex = 2;
+			labelBodyColor.Text = "Цвет";
+			labelBodyColor.TextAlign = ContentAlignment.MiddleCenter;
+			// 
+			// FormCarConfig
+			// 
+			AutoScaleDimensions = new SizeF(7F, 15F);
+			AutoScaleMode = AutoScaleMode.Font;
+			ClientSize = new Size(693, 203);
+			Controls.Add(panelObject);
+			Controls.Add(buttonCancel);
+			Controls.Add(buttonAdd);
+			Controls.Add(groupBoxConfig);
+			Name = "FormCarConfig";
+			Text = "Создание объекта";
+			groupBoxConfig.ResumeLayout(false);
+			groupBoxConfig.PerformLayout();
+			groupBoxColors.ResumeLayout(false);
+			((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit();
+			((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).EndInit();
+			((System.ComponentModel.ISupportInitialize)pictureBoxObject).EndInit();
+			panelObject.ResumeLayout(false);
+			ResumeLayout(false);
+		}
+
+		#endregion
+
+		private GroupBox groupBoxConfig;
+		private Label labelWeight;
+		private NumericUpDown numericUpDownSpeed;
+		private Label labelSpeed;
+		private Label labelModifiedObject;
+		private Label labelSimpleObject;
+		private NumericUpDown numericUpDownWeight;
+		private CheckBox checkBoxBodyKit;
+		private CheckBox checkBoxWing;
+		private CheckBox checkBoxSportLine;
+		private GroupBox groupBoxColors;
+		private Panel panelPurple;
+		private Panel panelYellow;
+		private Panel panelBlack;
+		private Panel panelGrey;
+		private Panel panelBlue;
+		private Panel panelWhite;
+		private Panel panelGreen;
+		private Panel panelRed;
+		private PictureBox pictureBoxObject;
+		private Button buttonAdd;
+		private Button buttonCancel;
+		private Panel panelObject;
+		private Label labelAdditionalColor;
+		private Label labelBodyColor;
+	}
+}
\ No newline at end of file
diff --git a/ProjectSportCar/ProjectSportCar/FormCarConfig.cs b/ProjectSportCar/ProjectSportCar/FormCarConfig.cs
new file mode 100644
index 0000000..61b5f9d
--- /dev/null
+++ b/ProjectSportCar/ProjectSportCar/FormCarConfig.cs
@@ -0,0 +1,126 @@
+using ProjectSportCar.Drawnings;
+
+namespace ProjectSportCar;
+
+/// <summary>
+/// Форма конфигурации объекта
+/// </summary>
+public partial class FormCarConfig : Form
+{
+	/// <summary>
+	/// Объект - прорисовка автомобиля
+	/// </summary>
+	private DrawningCar? _car;
+
+	/// <summary>
+	/// Событие для передачи объекта
+	/// </summary>
+	private event CarDelegate? CarDelegate;
+
+	/// <summary>
+	/// Конструктор
+	/// </summary>
+	public FormCarConfig()
+	{
+		panelRed.MouseDown += Panel_MouseDown;
+		panelGreen.MouseDown += Panel_MouseDown;
+		panelBlue.MouseDown += Panel_MouseDown;
+		panelYellow.MouseDown += Panel_MouseDown;
+		panelWhite.MouseDown += Panel_MouseDown;
+		panelGrey.MouseDown += Panel_MouseDown;
+		panelBlack.MouseDown += Panel_MouseDown;
+		panelPurple.MouseDown += Panel_MouseDown;
+
+		// TODO buttonCancel.Click привязать анонимный метод через lambda с закрытием формы
+		InitializeComponent();
+	}
+
+	/// <summary>
+	/// Привязка внешнего метода к событию
+	/// </summary>
+	/// <param name="carDelegate"></param>
+	public void AddEvent(CarDelegate carDelegate)
+	{
+		CarDelegate += carDelegate;
+	}
+
+	/// <summary>
+	/// Прорисовка объекта
+	/// </summary>
+	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;
+	}
+
+	/// <summary>
+	/// Передаем информацию при нажатии на Label
+	/// </summary>
+	/// <param name="sender"></param>
+	/// <param name="e"></param>
+	private void LabelObject_MouseDown(object sender, MouseEventArgs e)
+	{
+		(sender as Label)?.DoDragDrop((sender as Label)?.Name ?? string.Empty, DragDropEffects.Move | DragDropEffects.Copy);
+	}
+
+	/// <summary>
+	/// Проверка получаемой информации (ее типа на соответствие требуемому)
+	/// </summary>
+	/// <param name="sender"></param>
+	/// <param name="e"></param>
+	private void PanelObject_DragEnter(object sender, DragEventArgs e)
+	{
+		e.Effect = e.Data?.GetDataPresent(DataFormats.Text) ?? false ? DragDropEffects.Copy : DragDropEffects.None;
+	}
+
+	/// <summary>
+	/// Действия при приеме перетаскиваемой информации
+	/// </summary>
+	/// <param name="sender"></param>
+	/// <param name="e"></param>
+	private void PanelObject_DragDrop(object sender, DragEventArgs e)
+	{
+		switch (e.Data?.GetData(DataFormats.Text)?.ToString())
+		{
+			case "labelSimpleObject":
+				_car = new DrawningCar((int)numericUpDownSpeed.Value, (double)numericUpDownWeight.Value, Color.White);
+				break;
+			case "labelModifiedObject":
+				_car = new DrawningSportCar((int)numericUpDownSpeed.Value, (double)numericUpDownWeight.Value, Color.White,
+					Color.Black, checkBoxBodyKit.Checked, checkBoxWing.Checked, checkBoxSportLine.Checked);
+				break;
+		}
+
+		DrawObject();
+	}
+
+	/// <summary>
+	/// Передаем информацию при нажатии на Panel
+	/// </summary>
+	/// <param name="sender"></param>
+	/// <param name="e"></param>
+	private void Panel_MouseDown(object? sender, MouseEventArgs e)
+	{
+		// TODO отправка цвета в Drag&Drop
+	}
+
+	// TODO Реализовать логику смены цветов: основного и дополнительного (для продвинутого объекта)
+
+	/// <summary>
+	/// Передача объекта
+	/// </summary>
+	/// <param name="sender"></param>
+	/// <param name="e"></param>
+	private void ButtonAdd_Click(object sender, EventArgs e)
+	{
+		if (_car != null)
+		{
+			CarDelegate?.Invoke(_car);
+			Close();
+		}
+	}
+}
\ No newline at end of file
diff --git a/ProjectSportCar/ProjectSportCar/FormCarConfig.resx b/ProjectSportCar/ProjectSportCar/FormCarConfig.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/ProjectSportCar/ProjectSportCar/FormCarConfig.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file