From f0bfd7e3531d581288f02bc1159da7aaf7d375d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A3=D1=87=D0=B5=D0=B1=D0=BD=D1=8B=D0=B9?= Date: Mon, 13 Nov 2023 11:36:41 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D1=84=D0=B8=D0=BA=D1=81=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=B2=D1=81=D1=91=D1=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectBoat_bae/BoatDelegate.cs | 15 ++ .../FormBoatConfig.Designer.cs | 164 ++++++++---------- .../ProjectBoat_bae/FormBoatConfig.cs | 56 ++++-- 3 files changed, 133 insertions(+), 102 deletions(-) create mode 100644 ProjectBoat_base/ProjectBoat_bae/BoatDelegate.cs diff --git a/ProjectBoat_base/ProjectBoat_bae/BoatDelegate.cs b/ProjectBoat_base/ProjectBoat_bae/BoatDelegate.cs new file mode 100644 index 0000000..4bae00b --- /dev/null +++ b/ProjectBoat_base/ProjectBoat_bae/BoatDelegate.cs @@ -0,0 +1,15 @@ +using ProjectBoat_bae.DrawningObjects; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectBoat_bae +{ + internal class BoatDelegate + { + // Делегат для передачи объекта-автомобиля + public delegate void boatDelegate(Drawningboat boat); + } +} diff --git a/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.Designer.cs b/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.Designer.cs index cd80ee2..2224947 100644 --- a/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.Designer.cs +++ b/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.Designer.cs @@ -30,8 +30,9 @@ { pictureBoxObject = new PictureBox(); groupBoxBoat = new GroupBox(); + checkBox1 = new CheckBox(); labelModifiedObject = new Label(); - LabelEasy = new Label(); + labelSimpleObject = new Label(); groupBoxColors = new GroupBox(); panelPurple = new Panel(); panelGray = new Panel(); @@ -41,26 +42,24 @@ panelBlue = new Panel(); panelGreen = new Panel(); panelRed = new Panel(); - checkBox3 = new CheckBox(); numericUpDownSpeed = new NumericUpDown(); numericUpDownWeight = new NumericUpDown(); Speed = new Label(); checkBoxBoat = new CheckBox(); - checkBoxRainforce = new CheckBox(); Weight = new Label(); - Panelcolor = new Panel(); - AddColorbutton = new Label(); - Colorlabel = new Label(); + pictureBox1 = new PictureBox(); + PanelObject = new Panel(); + LabelAdditionalColor = new Label(); + LabelColor = new Label(); buttonOk = new Button(); buttonCancel = new Button(); - pictureBox1 = new PictureBox(); ((System.ComponentModel.ISupportInitialize)pictureBoxObject).BeginInit(); groupBoxBoat.SuspendLayout(); groupBoxColors.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit(); - Panelcolor.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); + PanelObject.SuspendLayout(); SuspendLayout(); // // pictureBoxObject @@ -73,15 +72,14 @@ // // groupBoxBoat // + groupBoxBoat.Controls.Add(checkBox1); groupBoxBoat.Controls.Add(labelModifiedObject); - groupBoxBoat.Controls.Add(LabelEasy); + groupBoxBoat.Controls.Add(labelSimpleObject); groupBoxBoat.Controls.Add(groupBoxColors); - groupBoxBoat.Controls.Add(checkBox3); groupBoxBoat.Controls.Add(numericUpDownSpeed); groupBoxBoat.Controls.Add(numericUpDownWeight); groupBoxBoat.Controls.Add(Speed); groupBoxBoat.Controls.Add(checkBoxBoat); - groupBoxBoat.Controls.Add(checkBoxRainforce); groupBoxBoat.Controls.Add(Weight); groupBoxBoat.Controls.Add(pictureBox1); groupBoxBoat.Location = new Point(12, 12); @@ -91,6 +89,16 @@ groupBoxBoat.TabStop = false; groupBoxBoat.Text = "Параметры"; // + // checkBox1 + // + checkBox1.AutoSize = true; + checkBox1.Location = new Point(21, 236); + checkBox1.Name = "checkBox1"; + checkBox1.Size = new Size(230, 29); + checkBox1.TabIndex = 12; + checkBox1.Text = "Признак наличия весел"; + checkBox1.UseVisualStyleBackColor = true; + // // labelModifiedObject // labelModifiedObject.BorderStyle = BorderStyle.FixedSingle; @@ -101,17 +109,17 @@ labelModifiedObject.Text = "Продвинутый"; labelModifiedObject.TextAlign = ContentAlignment.MiddleCenter; // - // LabelEasy + // labelSimpleObject // - LabelEasy.BorderStyle = BorderStyle.FixedSingle; - LabelEasy.Location = new Point(334, 227); - LabelEasy.Name = "LabelEasy"; - LabelEasy.Size = new Size(124, 38); - LabelEasy.TabIndex = 10; - LabelEasy.Text = "Простой"; - LabelEasy.TextAlign = ContentAlignment.MiddleCenter; - LabelEasy.Click += LabelEasy_Click; - LabelEasy.MouseDown += LabelObject_MouseDown; + labelSimpleObject.BorderStyle = BorderStyle.FixedSingle; + labelSimpleObject.Location = new Point(334, 227); + labelSimpleObject.Name = "labelSimpleObject"; + labelSimpleObject.Size = new Size(124, 38); + labelSimpleObject.TabIndex = 10; + labelSimpleObject.Text = "Простой"; + labelSimpleObject.TextAlign = ContentAlignment.MiddleCenter; + labelSimpleObject.Click += labelSimpleObject_Click; + labelSimpleObject.MouseDown += LabelObject_MouseDown; // // groupBoxColors // @@ -194,16 +202,6 @@ panelRed.Size = new Size(45, 45); panelRed.TabIndex = 10; // - // checkBox3 - // - checkBox3.AutoSize = true; - checkBox3.Location = new Point(21, 299); - checkBox3.Name = "checkBox3"; - checkBox3.Size = new Size(108, 29); - checkBox3.TabIndex = 8; - checkBox3.Text = "Признак"; - checkBox3.UseVisualStyleBackColor = true; - // // numericUpDownSpeed // numericUpDownSpeed.Location = new Point(148, 61); @@ -238,20 +236,11 @@ checkBoxBoat.AutoSize = true; checkBoxBoat.Location = new Point(21, 176); checkBoxBoat.Name = "checkBoxBoat"; - checkBoxBoat.Size = new Size(180, 29); + checkBoxBoat.Size = new Size(230, 29); checkBoxBoat.TabIndex = 6; - checkBoxBoat.Text = "Признак наличия"; + checkBoxBoat.Text = "Признак наличия весел"; checkBoxBoat.UseVisualStyleBackColor = true; - // - // checkBoxRainforce - // - checkBoxRainforce.AutoSize = true; - checkBoxRainforce.Location = new Point(21, 236); - checkBoxRainforce.Name = "checkBoxRainforce"; - checkBoxRainforce.Size = new Size(108, 29); - checkBoxRainforce.TabIndex = 7; - checkBoxRainforce.Text = "Признак"; - checkBoxRainforce.UseVisualStyleBackColor = true; + checkBoxBoat.CheckedChanged += checkBoxBoat_CheckedChanged; // // Weight // @@ -262,38 +251,48 @@ Weight.TabIndex = 3; Weight.Text = "Вес"; // - // Panelcolor + // pictureBox1 // - Panelcolor.AllowDrop = true; - Panelcolor.BorderStyle = BorderStyle.FixedSingle; - Panelcolor.Controls.Add(AddColorbutton); - Panelcolor.Controls.Add(Colorlabel); - Panelcolor.Controls.Add(pictureBoxObject); - Panelcolor.Location = new Point(696, 23); - Panelcolor.Name = "Panelcolor"; - Panelcolor.Size = new Size(460, 378); - Panelcolor.TabIndex = 2; - Panelcolor.MouseDown += PanelColor_MouseDown; + pictureBox1.Location = new Point(0, 0); + pictureBox1.Name = "pictureBox1"; + pictureBox1.Size = new Size(668, 449); + pictureBox1.TabIndex = 2; + pictureBox1.TabStop = false; // - // AddColorbutton + // PanelObject // - AddColorbutton.AutoSize = true; - AddColorbutton.BorderStyle = BorderStyle.FixedSingle; - AddColorbutton.Location = new Point(333, 38); - AddColorbutton.Name = "AddColorbutton"; - AddColorbutton.Size = new Size(93, 27); - AddColorbutton.TabIndex = 1; - AddColorbutton.Text = "Доп. цвет"; + PanelObject.AllowDrop = true; + PanelObject.BorderStyle = BorderStyle.FixedSingle; + PanelObject.Controls.Add(LabelAdditionalColor); + PanelObject.Controls.Add(LabelColor); + PanelObject.Controls.Add(pictureBoxObject); + PanelObject.Location = new Point(696, 23); + PanelObject.Name = "PanelObject"; + PanelObject.Size = new Size(460, 378); + PanelObject.TabIndex = 2; + PanelObject.MouseDown += PanelColor_MouseDown; // - // Colorlabel + // LabelAdditionalColor // - Colorlabel.AutoSize = true; - Colorlabel.BorderStyle = BorderStyle.FixedSingle; - Colorlabel.Location = new Point(38, 38); - Colorlabel.Name = "Colorlabel"; - Colorlabel.Size = new Size(53, 27); - Colorlabel.TabIndex = 0; - Colorlabel.Text = "Цвет"; + LabelAdditionalColor.AllowDrop = true; + LabelAdditionalColor.AutoSize = true; + LabelAdditionalColor.BorderStyle = BorderStyle.FixedSingle; + LabelAdditionalColor.Location = new Point(333, 38); + LabelAdditionalColor.Name = "LabelAdditionalColor"; + LabelAdditionalColor.Size = new Size(93, 27); + LabelAdditionalColor.TabIndex = 1; + LabelAdditionalColor.Text = "Доп. цвет"; + // + // LabelColor + // + LabelColor.AllowDrop = true; + LabelColor.AutoSize = true; + LabelColor.BorderStyle = BorderStyle.FixedSingle; + LabelColor.Location = new Point(38, 38); + LabelColor.Name = "LabelColor"; + LabelColor.Size = new Size(53, 27); + LabelColor.TabIndex = 0; + LabelColor.Text = "Цвет"; // // buttonOk // @@ -313,14 +312,6 @@ buttonCancel.Text = "Отмена"; buttonCancel.UseVisualStyleBackColor = true; // - // pictureBox1 - // - pictureBox1.Location = new Point(0, 0); - pictureBox1.Name = "pictureBox1"; - pictureBox1.Size = new Size(668, 449); - pictureBox1.TabIndex = 2; - pictureBox1.TabStop = false; - // // FormBoatConfig // AutoScaleDimensions = new SizeF(10F, 25F); @@ -328,7 +319,7 @@ ClientSize = new Size(1178, 498); Controls.Add(buttonCancel); Controls.Add(buttonOk); - Controls.Add(Panelcolor); + Controls.Add(PanelObject); Controls.Add(groupBoxBoat); Name = "FormBoatConfig"; Text = "FormBoatConfig"; @@ -338,9 +329,9 @@ groupBoxColors.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit(); - Panelcolor.ResumeLayout(false); - Panelcolor.PerformLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); + PanelObject.ResumeLayout(false); + PanelObject.PerformLayout(); ResumeLayout(false); } @@ -353,10 +344,8 @@ private NumericUpDown numericUpDownSpeed; private NumericUpDown numericUpDownWeight; private GroupBox groupBoxColors; - private CheckBox checkBox3; private CheckBox checkBoxBoat; - private CheckBox checkBoxRainforce; - private Label LabelEasy; + private Label labelSimpleObject; private Panel panelPurple; private Panel panelGray; private Panel panelWhite; @@ -366,11 +355,12 @@ private Panel panelGreen; private Panel panelRed; private Label labelModifiedObject; - private Panel Panelcolor; + private Panel PanelObject; private Button buttonOk; private Button buttonCancel; - private Label AddColorbutton; - private Label Colorlabel; + private Label LabelAdditionalColor; + private Label LabelColor; private PictureBox pictureBox1; + private CheckBox checkBox1; } } \ No newline at end of file diff --git a/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.cs b/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.cs index af7be13..0d3c86a 100644 --- a/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.cs +++ b/ProjectBoat_base/ProjectBoat_bae/FormBoatConfig.cs @@ -46,11 +46,13 @@ namespace ProjectBoat_bae panelWhite.MouseDown += PanelColor_MouseDown; panelYellow.MouseDown += PanelColor_MouseDown; panelBlue.MouseDown += PanelColor_MouseDown; - buttonCancel.Click += (sender, e) => Close(); + labelSimpleObject.MouseDown += LabelObject_MouseDown; + labelModifiedObject.MouseDown += LabelObject_MouseDown; + buttonCancel.Click += (s, e) => Close(); } // Метод прорисовки - private void Draw() + private void DrawBoat() { Bitmap bmp = new(pictureBoxObject.Width, pictureBoxObject.Height); Graphics gr = Graphics.FromImage(bmp); @@ -81,17 +83,33 @@ namespace ProjectBoat_bae // Действия при приеме перетаскиваемой информации private void PanelObject_DragDrop(object sender, DragEventArgs e) { + //switch (e.Data?.GetData(DataFormats.Text).ToString()) + //{ + // case "labelSimpleObject": + // _boat = new Drawningboat((int)numericUpDownSpeed.Value, + // (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width, pictureBoxObject.Height); + // break; + // case "labelModifiedObject": + // _boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, + // (int)numericUpDownWeight.Value, Color.White, Color.Black, + // checkBoxBoat.Checked, checkBoxBoat.Checked, pictureBoxObject.Width, pictureBoxObject.Height); + // break; + //} + //LabelColor.BackColor = Color.Empty; + //LabelAdditionalColor.BackColor = Color.Empty; + //DrawBoat(); switch (e.Data?.GetData(DataFormats.Text).ToString()) { - case "labelEasy": + case "labelSimpleObject": _boat = new Drawningboat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width, pictureBoxObject.Height); break; case "labelModifiedObject": - _boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black, - checkBoxBoat.Checked, checkBoxRainforce.Checked, pictureBoxObject.Width, pictureBoxObject.Height); + _boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black, checkBoxBoat.Checked, checkBox1.Checked, pictureBoxObject.Width, pictureBoxObject.Height); break; } - Draw(); + LabelColor.BackColor = Color.Empty; + LabelAdditionalColor.BackColor = Color.Empty; + DrawBoat(); } // Добавление установки @@ -110,18 +128,21 @@ namespace ProjectBoat_bae private void LabelColor_DragDrop(object sender, DragEventArgs e) { - if (_boat == null) return; + if (_boat == null) + return; switch (((Label)sender).Name) { - case "labelColor": - _boat.EntityBoat.SetBodyColor((Color)e.Data.GetData(typeof(Color))); + case "LabelColor": + _boat?.EntityBoat?.SetBodyColor((Color)e.Data.GetData(typeof(Color))); break; - case "labelAdditionalColor": - if (_boat == null) return; - (_boat.EntityBoat as EntityMotorBoat).setAdditionalColor((Color)e.Data.GetData(typeof(Color))); + case "LabelAdditionalColor": + if (!(_boat is ProjectBoat_bae)) + return; + (_boat.EntityBoat as EntityMotorBoat)?.setAdditionalColor(color: + (Color)e.Data.GetData(typeof(Color))); break; } - Draw(); + DrawBoat(); } private void LabelColor_DragEnter(object sender, DragEventArgs e) @@ -153,10 +174,15 @@ namespace ProjectBoat_bae //Приведение к EntityTrolleybus для замены доп. цвета EntityMotorBoat? _motorboat = _boat.EntityBoat as EntityMotorBoat; _motorboat.setAdditionalColor(color); - Draw(); + DrawBoat(); } - private void LabelEasy_Click(object sender, EventArgs e) + private void checkBoxBoat_CheckedChanged(object sender, EventArgs e) + { + + } + + private void labelSimpleObject_Click(object sender, EventArgs e) { }