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