diff --git a/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs b/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs
index e20cf53..cc9c5c3 100644
--- a/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs
+++ b/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
+
namespace GasolineTanker
{
internal class DrawningGasolineTanker : DrawningTanker
@@ -15,11 +10,11 @@ namespace GasolineTanker
/// Вес автомобиля
/// Цвет кузова
/// Дополнительный цвет
- /// Признак наличия обвеса
- /// Признак наличия антикрыла
- /// Признак наличия гоночной полосы
+ /// Признак наличия обвеса
+ /// Признак наличия антикрыла
+ /// Признак наличия гоночной полосы
public DrawningGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, bool Cabin, bool Signal, bool BenzoBack) :
- base(speed, weight, bodyColor, 160, 125)
+ base(speed, weight, bodyColor, 110, 60)
{
Tanker = new EntityGasolineTanker(speed, weight, bodyColor, dopColor, Cabin, Signal, BenzoBack);
}
@@ -50,7 +45,7 @@ namespace GasolineTanker
//Бензобак
if (GasolineTanker.BenzoBack)
{
- g.FillEllipse(dopBrush, _startPosX+10, _startPosY+5, 100, 50);
+ g.FillEllipse(dopBrush, _startPosX + 10, _startPosY + 5, 100, 50);
}
//Сигналка
if (GasolineTanker.Signal)
@@ -61,3 +56,4 @@ namespace GasolineTanker
}
}
}
+
diff --git a/GasolineTanker/GasolineTanker/DrawningObjectTanker.cs b/GasolineTanker/GasolineTanker/DrawningObjectTanker.cs
index 365ae33..54c33fe 100644
--- a/GasolineTanker/GasolineTanker/DrawningObjectTanker.cs
+++ b/GasolineTanker/GasolineTanker/DrawningObjectTanker.cs
@@ -36,5 +36,7 @@ namespace GasolineTanker
{
_Tanker.DrawTransport(g);
}
+ public string GetInfo() => _Tanker?.GetDataForSave();
+ public static IDrawningObject Create(string data) => new DrawningObjectTanker(data.CreateDrawningTanker());
}
}
diff --git a/GasolineTanker/GasolineTanker/ExtensionTanker.cs b/GasolineTanker/GasolineTanker/ExtensionTanker.cs
new file mode 100644
index 0000000..f853d51
--- /dev/null
+++ b/GasolineTanker/GasolineTanker/ExtensionTanker.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GasolineTanker
+{
+ internal static class ExtensionTanker
+ {
+ private static readonly char _separatorForObject = ':';
+ public static DrawningTanker CreateDrawningTanker(this string info)
+ {
+ string[] strs = info.Split(_separatorForObject);
+ if (strs.Length == 3)
+ {
+ return new DrawningTanker(Convert.ToInt32(strs[0]),
+ Convert.ToInt32(strs[1]), Color.FromName(strs[2]));
+ }
+ if (strs.Length == 7)
+ {
+ return new DrawningGasolineTanker(Convert.ToInt32(strs[0]),
+ Convert.ToInt32(strs[1]), Color.FromName(strs[2]),
+ Color.FromName(strs[3]), Convert.ToBoolean(strs[4]),
+ Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6]));
+ }
+ return null;
+ }
+ public static string GetDataForSave(this DrawningTanker drawningTanker)
+ {
+ var tanker = drawningTanker.Tanker;
+ var str = $"{tanker.Speed}{_separatorForObject}{tanker.Weight}{_separatorForObject}{tanker.BodyColor.Name}";
+ if (tanker is not EntityGasolineTanker gasolineTanker)
+ {
+ return str;
+ }
+ return $"{str}{_separatorForObject}{gasolineTanker.DopColor.Name}{_separatorForObject}{gasolineTanker.Cabin}{_separatorForObject}{gasolineTanker.Signal}{_separatorForObject}{gasolineTanker.BenzoBack}";
+ }
+ }
+}
diff --git a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.Designer.cs b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.Designer.cs
index 22ccdf8..3bd4b66 100644
--- a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.Designer.cs
+++ b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.Designer.cs
@@ -21,198 +21,112 @@
}
#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()
{
- this.groupBoxTool = new System.Windows.Forms.GroupBox();
+ this.groupBoxTools = new System.Windows.Forms.GroupBox();
this.groupBoxMaps = new System.Windows.Forms.GroupBox();
- this.listBoxMaps = new System.Windows.Forms.ListBox();
this.buttonAddMap = new System.Windows.Forms.Button();
this.buttonDeleteMap = new System.Windows.Forms.Button();
+ this.listBoxMaps = new System.Windows.Forms.ListBox();
this.textBoxNewMapName = new System.Windows.Forms.TextBox();
- this.buttonShowOnMap = new System.Windows.Forms.Button();
- this.buttonLeft = new System.Windows.Forms.Button();
- this.buttonRight = new System.Windows.Forms.Button();
- this.buttonDown = new System.Windows.Forms.Button();
- this.buttonUp = new System.Windows.Forms.Button();
- this.buttonShowStorage = new System.Windows.Forms.Button();
- this.buttonRemoveTanker = new System.Windows.Forms.Button();
- this.maskedTextBoxPosition = new System.Windows.Forms.MaskedTextBox();
- this.buttonAddTanker = new System.Windows.Forms.Button();
this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox();
+ this.maskedTextBoxPosition = new System.Windows.Forms.MaskedTextBox();
+ this.buttonRemoveTanker = new System.Windows.Forms.Button();
+ this.buttonShowStorage = new System.Windows.Forms.Button();
+ this.buttonDown = new System.Windows.Forms.Button();
+ this.buttonRight = new System.Windows.Forms.Button();
+ this.buttonLeft = new System.Windows.Forms.Button();
+ this.buttonUp = new System.Windows.Forms.Button();
+ this.buttonShowOnMap = new System.Windows.Forms.Button();
+ this.buttonAddTanker = new System.Windows.Forms.Button();
this.pictureBox = new System.Windows.Forms.PictureBox();
- this.groupBoxTool.SuspendLayout();
-
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.FileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.SaveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.LoadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
+ this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
+ this.groupBoxTools.SuspendLayout();
+ this.groupBoxMaps.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
+ this.menuStrip.SuspendLayout();
this.SuspendLayout();
//
- // groupBoxTool
+ // groupBoxTools
//
- this.groupBoxTool.Controls.Add(this.groupBoxMaps);
- this.groupBoxTool.Controls.Add(this.buttonShowOnMap);
- this.groupBoxTool.Controls.Add(this.buttonLeft);
- this.groupBoxTool.Controls.Add(this.buttonRight);
- this.groupBoxTool.Controls.Add(this.buttonDown);
- this.groupBoxTool.Controls.Add(this.buttonUp);
- this.groupBoxTool.Controls.Add(this.buttonShowStorage);
- this.groupBoxTool.Controls.Add(this.buttonRemoveTanker);
- this.groupBoxTool.Controls.Add(this.maskedTextBoxPosition);
- this.groupBoxTool.Controls.Add(this.buttonAddTanker);
- this.groupBoxTool.Dock = System.Windows.Forms.DockStyle.Right;
- this.groupBoxTool.Location = new System.Drawing.Point(962, 0);
- this.groupBoxTool.Name = "groupBoxTool";
- this.groupBoxTool.Size = new System.Drawing.Size(220, 753);
- this.groupBoxTool.TabIndex = 0;
- this.groupBoxTool.TabStop = false;
- this.groupBoxTool.Text = "Инструменты";
+ this.groupBoxTools.Controls.Add(this.groupBoxMaps);
+ this.groupBoxTools.Controls.Add(this.maskedTextBoxPosition);
+ this.groupBoxTools.Controls.Add(this.buttonRemoveTanker);
+ this.groupBoxTools.Controls.Add(this.buttonShowStorage);
+ this.groupBoxTools.Controls.Add(this.buttonDown);
+ this.groupBoxTools.Controls.Add(this.buttonRight);
+ this.groupBoxTools.Controls.Add(this.buttonLeft);
+ this.groupBoxTools.Controls.Add(this.buttonUp);
+ this.groupBoxTools.Controls.Add(this.buttonShowOnMap);
+ this.groupBoxTools.Controls.Add(this.buttonAddTanker);
+ this.groupBoxTools.Dock = System.Windows.Forms.DockStyle.Right;
+ this.groupBoxTools.Location = new System.Drawing.Point(811, 24);
+ this.groupBoxTools.Name = "groupBoxTools";
+ this.groupBoxTools.Size = new System.Drawing.Size(204, 608);
+ this.groupBoxTools.TabIndex = 0;
+ this.groupBoxTools.TabStop = false;
+ this.groupBoxTools.Text = "Инструменты";
//
// groupBoxMaps
//
- this.groupBoxMaps.Controls.Add(this.listBoxMaps);
this.groupBoxMaps.Controls.Add(this.buttonAddMap);
this.groupBoxMaps.Controls.Add(this.buttonDeleteMap);
+ this.groupBoxMaps.Controls.Add(this.listBoxMaps);
this.groupBoxMaps.Controls.Add(this.textBoxNewMapName);
this.groupBoxMaps.Controls.Add(this.comboBoxSelectorMap);
- this.groupBoxMaps.Location = new System.Drawing.Point(6, 26);
+ this.groupBoxMaps.Location = new System.Drawing.Point(6, 22);
this.groupBoxMaps.Name = "groupBoxMaps";
- this.groupBoxMaps.Size = new System.Drawing.Size(207, 289);
- this.groupBoxMaps.TabIndex = 10;
+ this.groupBoxMaps.Size = new System.Drawing.Size(192, 248);
+ this.groupBoxMaps.TabIndex = 0;
this.groupBoxMaps.TabStop = false;
this.groupBoxMaps.Text = "Карты";
//
- // listBoxMaps
- //
- this.listBoxMaps.FormattingEnabled = true;
- this.listBoxMaps.ItemHeight = 20;
- this.listBoxMaps.Location = new System.Drawing.Point(4, 142);
- this.listBoxMaps.Name = "listBoxMaps";
- this.listBoxMaps.Size = new System.Drawing.Size(200, 104);
- this.listBoxMaps.TabIndex = 13;
- this.listBoxMaps.SelectedIndexChanged += new System.EventHandler(this.listBoxMaps_SelectedIndexChanged);
- //
// buttonAddMap
//
- this.buttonAddMap.Location = new System.Drawing.Point(4, 106);
+ this.buttonAddMap.Location = new System.Drawing.Point(11, 80);
this.buttonAddMap.Name = "buttonAddMap";
- this.buttonAddMap.Size = new System.Drawing.Size(200, 30);
- this.buttonAddMap.TabIndex = 11;
+ this.buttonAddMap.Size = new System.Drawing.Size(175, 35);
+ this.buttonAddMap.TabIndex = 2;
this.buttonAddMap.Text = "Добавить карту";
this.buttonAddMap.UseVisualStyleBackColor = true;
this.buttonAddMap.Click += new System.EventHandler(this.ButtonAddMap_Click);
//
// buttonDeleteMap
//
- this.buttonDeleteMap.Location = new System.Drawing.Point(4, 252);
+ this.buttonDeleteMap.Location = new System.Drawing.Point(11, 206);
this.buttonDeleteMap.Name = "buttonDeleteMap";
- this.buttonDeleteMap.Size = new System.Drawing.Size(200, 30);
- this.buttonDeleteMap.TabIndex = 12;
+ this.buttonDeleteMap.Size = new System.Drawing.Size(175, 35);
+ this.buttonDeleteMap.TabIndex = 4;
this.buttonDeleteMap.Text = "Удалить карту";
this.buttonDeleteMap.UseVisualStyleBackColor = true;
this.buttonDeleteMap.Click += new System.EventHandler(this.ButtonDeleteMap_Click);
//
+ // listBoxMaps
+ //
+ this.listBoxMaps.FormattingEnabled = true;
+ this.listBoxMaps.ItemHeight = 15;
+ this.listBoxMaps.Location = new System.Drawing.Point(11, 121);
+ this.listBoxMaps.Name = "listBoxMaps";
+ this.listBoxMaps.Size = new System.Drawing.Size(175, 79);
+ this.listBoxMaps.TabIndex = 3;
+ this.listBoxMaps.SelectedIndexChanged += new System.EventHandler(this.listBoxMaps_SelectedIndexChanged);
+ //
// textBoxNewMapName
//
- this.textBoxNewMapName.Location = new System.Drawing.Point(4, 26);
+ this.textBoxNewMapName.Location = new System.Drawing.Point(11, 22);
this.textBoxNewMapName.Name = "textBoxNewMapName";
- this.textBoxNewMapName.Size = new System.Drawing.Size(200, 27);
- this.textBoxNewMapName.TabIndex = 11;
- //
- // buttonShowOnMap
- //
- this.buttonShowOnMap.Location = new System.Drawing.Point(10, 572);
- this.buttonShowOnMap.Name = "buttonShowOnMap";
- this.buttonShowOnMap.Size = new System.Drawing.Size(200, 30);
- this.buttonShowOnMap.TabIndex = 9;
- this.buttonShowOnMap.Text = "Посмотреть карту";
- this.buttonShowOnMap.UseVisualStyleBackColor = true;
- this.buttonShowOnMap.Click += new System.EventHandler(this.ButtonShowOnMap_Click);
- //
- // buttonLeft
- //
- this.buttonLeft.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowLeft;
- this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.buttonLeft.Location = new System.Drawing.Point(50, 700);
- this.buttonLeft.Name = "buttonLeft";
- this.buttonLeft.Size = new System.Drawing.Size(40, 40);
- this.buttonLeft.TabIndex = 8;
- this.buttonLeft.UseVisualStyleBackColor = true;
- this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click);
- //
- // buttonRight
- //
- this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonRight.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowRight;
- this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.buttonRight.Location = new System.Drawing.Point(140, 700);
- this.buttonRight.Name = "buttonRight";
- this.buttonRight.Size = new System.Drawing.Size(40, 40);
- this.buttonRight.TabIndex = 7;
- this.buttonRight.UseVisualStyleBackColor = true;
- this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
- //
- // buttonDown
- //
- this.buttonDown.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowDown;
- this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.buttonDown.Location = new System.Drawing.Point(95, 700);
- this.buttonDown.Name = "buttonDown";
- this.buttonDown.Size = new System.Drawing.Size(40, 40);
- this.buttonDown.TabIndex = 6;
- this.buttonDown.UseVisualStyleBackColor = true;
- this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click);
- //
- // buttonUp
- //
- this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonUp.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowUp;
- this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.buttonUp.Location = new System.Drawing.Point(95, 655);
- this.buttonUp.Name = "buttonUp";
- this.buttonUp.Size = new System.Drawing.Size(40, 40);
- this.buttonUp.TabIndex = 5;
- this.buttonUp.UseVisualStyleBackColor = true;
- this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click);
- //
- // buttonShowStorage
- //
- this.buttonShowStorage.Location = new System.Drawing.Point(10, 484);
- this.buttonShowStorage.Name = "buttonShowStorage";
- this.buttonShowStorage.Size = new System.Drawing.Size(200, 30);
- this.buttonShowStorage.TabIndex = 4;
- this.buttonShowStorage.Text = "Посмотреть хранилище";
- this.buttonShowStorage.UseVisualStyleBackColor = true;
- this.buttonShowStorage.Click += new System.EventHandler(this.ButtonShowStorage_Click);
- //
- // buttonRemoveTanker
- //
- this.buttonRemoveTanker.Location = new System.Drawing.Point(10, 436);
- this.buttonRemoveTanker.Name = "buttonRemoveTanker";
- this.buttonRemoveTanker.Size = new System.Drawing.Size(200, 30);
- this.buttonRemoveTanker.TabIndex = 3;
- this.buttonRemoveTanker.Text = "Удалить грузовик";
- this.buttonRemoveTanker.UseVisualStyleBackColor = true;
- this.buttonRemoveTanker.Click += new System.EventHandler(this.ButtonRemoveTanker_Click);
- //
- // maskedTextBoxPosition
- //
- this.maskedTextBoxPosition.Location = new System.Drawing.Point(10, 403);
- this.maskedTextBoxPosition.Name = "maskedTextBoxPosition";
- this.maskedTextBoxPosition.Size = new System.Drawing.Size(200, 27);
- this.maskedTextBoxPosition.TabIndex = 2;
- this.maskedTextBoxPosition.Text = "_";
- //
- // buttonAddTanker
- //
- this.buttonAddTanker.Location = new System.Drawing.Point(10, 367);
- this.buttonAddTanker.Name = "buttonAddTanker";
- this.buttonAddTanker.Size = new System.Drawing.Size(200, 30);
- this.buttonAddTanker.TabIndex = 1;
- this.buttonAddTanker.Text = "Добавить грузовик";
- this.buttonAddTanker.UseVisualStyleBackColor = true;
- this.buttonAddTanker.Click += new System.EventHandler(this.ButtonAddTanker_Click);
+ this.textBoxNewMapName.Size = new System.Drawing.Size(175, 23);
+ this.textBoxNewMapName.TabIndex = 0;
//
// comboBoxSelectorMap
//
@@ -222,56 +136,204 @@
"Простая карта",
"Минное поле",
"Лужайка"});
- this.comboBoxSelectorMap.Location = new System.Drawing.Point(4, 60);
+ this.comboBoxSelectorMap.Location = new System.Drawing.Point(11, 51);
this.comboBoxSelectorMap.Name = "comboBoxSelectorMap";
- this.comboBoxSelectorMap.Size = new System.Drawing.Size(200, 28);
- this.comboBoxSelectorMap.TabIndex = 0;
+ this.comboBoxSelectorMap.Size = new System.Drawing.Size(175, 23);
+ this.comboBoxSelectorMap.TabIndex = 1;
+ //
+ // maskedTextBoxPosition
+ //
+ this.maskedTextBoxPosition.Location = new System.Drawing.Point(17, 355);
+ this.maskedTextBoxPosition.Mask = "00";
+ this.maskedTextBoxPosition.Name = "maskedTextBoxPosition";
+ this.maskedTextBoxPosition.Size = new System.Drawing.Size(175, 23);
+ this.maskedTextBoxPosition.TabIndex = 2;
+ this.maskedTextBoxPosition.ValidatingType = typeof(int);
+ //
+ // buttonRemoveTanker
+ //
+ this.buttonRemoveTanker.Location = new System.Drawing.Point(17, 384);
+ this.buttonRemoveTanker.Name = "buttonRemoveTanker";
+ this.buttonRemoveTanker.Size = new System.Drawing.Size(175, 35);
+ this.buttonRemoveTanker.TabIndex = 3;
+ this.buttonRemoveTanker.Text = "Удалить грузовик";
+ this.buttonRemoveTanker.UseVisualStyleBackColor = true;
+ this.buttonRemoveTanker.Click += new System.EventHandler(this.ButtonRemoveTanker_Click);
+ //
+ // buttonShowStorage
+ //
+ this.buttonShowStorage.Location = new System.Drawing.Point(17, 437);
+ this.buttonShowStorage.Name = "buttonShowStorage";
+ this.buttonShowStorage.Size = new System.Drawing.Size(175, 35);
+ this.buttonShowStorage.TabIndex = 4;
+ this.buttonShowStorage.Text = "Посмотреть хранилище";
+ this.buttonShowStorage.UseVisualStyleBackColor = true;
+ this.buttonShowStorage.Click += new System.EventHandler(this.ButtonShowStorage_Click);
+ //
+ // buttonDown
+ //
+ this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonDown.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowDown;
+ this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonDown.Location = new System.Drawing.Point(91, 558);
+ this.buttonDown.Name = "buttonDown";
+ this.buttonDown.Size = new System.Drawing.Size(30, 30);
+ this.buttonDown.TabIndex = 10;
+ this.buttonDown.UseVisualStyleBackColor = true;
+ this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click);
+ //
+ // buttonRight
+ //
+ this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonRight.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowRight;
+ this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonRight.Location = new System.Drawing.Point(127, 558);
+ this.buttonRight.Name = "buttonRight";
+ this.buttonRight.Size = new System.Drawing.Size(30, 30);
+ this.buttonRight.TabIndex = 9;
+ this.buttonRight.UseVisualStyleBackColor = true;
+ this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
+ //
+ // buttonLeft
+ //
+ this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonLeft.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowLeft;
+ this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonLeft.Location = new System.Drawing.Point(55, 558);
+ this.buttonLeft.Name = "buttonLeft";
+ this.buttonLeft.Size = new System.Drawing.Size(30, 30);
+ this.buttonLeft.TabIndex = 8;
+ this.buttonLeft.UseVisualStyleBackColor = true;
+ this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click);
+ //
+ // buttonUp
+ //
+ this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonUp.BackgroundImage = global::GasolineTanker.Properties.Resources.arrowUp;
+ this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.buttonUp.Location = new System.Drawing.Point(91, 522);
+ this.buttonUp.Name = "buttonUp";
+ this.buttonUp.Size = new System.Drawing.Size(30, 30);
+ this.buttonUp.TabIndex = 7;
+ this.buttonUp.UseVisualStyleBackColor = true;
+ this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click);
+ //
+ // buttonShowOnMap
+ //
+ this.buttonShowOnMap.Location = new System.Drawing.Point(17, 487);
+ this.buttonShowOnMap.Name = "buttonShowOnMap";
+ this.buttonShowOnMap.Size = new System.Drawing.Size(175, 35);
+ this.buttonShowOnMap.TabIndex = 5;
+ this.buttonShowOnMap.Text = "Посмотреть карту";
+ this.buttonShowOnMap.UseVisualStyleBackColor = true;
+ this.buttonShowOnMap.Click += new System.EventHandler(this.ButtonShowOnMap_Click);
+ //
+ // buttonAddTanker
+ //
+ this.buttonAddTanker.Location = new System.Drawing.Point(17, 314);
+ this.buttonAddTanker.Name = "buttonAddTanker";
+ this.buttonAddTanker.Size = new System.Drawing.Size(175, 35);
+ this.buttonAddTanker.TabIndex = 1;
+ this.buttonAddTanker.Text = "Добавить грузовик";
+ this.buttonAddTanker.UseVisualStyleBackColor = true;
+ this.buttonAddTanker.Click += new System.EventHandler(this.ButtonAddTanker_Click);
//
// pictureBox
//
this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pictureBox.Location = new System.Drawing.Point(0, 0);
+ this.pictureBox.Location = new System.Drawing.Point(0, 24);
this.pictureBox.Name = "pictureBox";
- this.pictureBox.Size = new System.Drawing.Size(962, 753);
- this.pictureBox.TabIndex = 9;
+ this.pictureBox.Size = new System.Drawing.Size(811, 608);
+ this.pictureBox.TabIndex = 1;
this.pictureBox.TabStop = false;
//
- // FormMapWithSetTankers
+ // menuStrip
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.FileToolStripMenuItem});
+ this.menuStrip.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip.Name = "menuStrip";
+ this.menuStrip.Size = new System.Drawing.Size(1015, 24);
+ this.menuStrip.TabIndex = 2;
+ //
+ // FileToolStripMenuItem
+ //
+ this.FileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.SaveToolStripMenuItem,
+ this.LoadToolStripMenuItem});
+ this.FileToolStripMenuItem.Name = "файлToolStripMenuItem";
+ this.FileToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
+ this.FileToolStripMenuItem.Text = "Файл";
+ //
+ // SaveToolStripMenuItem
+ //
+ this.SaveToolStripMenuItem.Name = "SaveToolStripMenuItem";
+ this.SaveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.SaveToolStripMenuItem.Text = "Сохранение";
+ this.SaveToolStripMenuItem.Click += new System.EventHandler(this.SaveToolStripMenuItem_Click);
+ //
+ // LoadToolStripMenuItem
+ //
+ this.LoadToolStripMenuItem.Name = "LoadToolStripMenuItem";
+ this.LoadToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.LoadToolStripMenuItem.Text = "Загрузка";
+ this.LoadToolStripMenuItem.Click += new System.EventHandler(this.LoadToolStripMenuItem_Click);
+ //
+ // openFileDialog
+ //
+ this.openFileDialog.Filter = "txt file | *.txt";
+ //
+ // saveFileDialog
+ //
+ this.saveFileDialog.Filter = "txt file | *.txt";
+ //
+ // FormMapWithSetCars
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1182, 753);
+ this.ClientSize = new System.Drawing.Size(1015, 632);
this.Controls.Add(this.pictureBox);
- this.Controls.Add(this.groupBoxTool);
- this.Name = "FormMapWithSetTankers";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Controls.Add(this.groupBoxTools);
+ this.Controls.Add(this.menuStrip);
+ this.MainMenuStrip = this.menuStrip;
+ this.Name = "FormMapWithSetCars";
this.Text = "Карта с набором объектов";
- this.groupBoxTool.ResumeLayout(false);
- this.groupBoxTool.PerformLayout();
+ this.groupBoxTools.ResumeLayout(false);
+ this.groupBoxTools.PerformLayout();
this.groupBoxMaps.ResumeLayout(false);
this.groupBoxMaps.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
this.ResumeLayout(false);
+ this.PerformLayout();
}
#endregion
- private GroupBox groupBoxTool;
- private Button buttonLeft;
- private Button buttonRight;
+
+ private GroupBox groupBoxTools;
+ private PictureBox pictureBox;
+ private ComboBox comboBoxSelectorMap;
+ private Button buttonShowOnMap;
+ private Button buttonAddTanker;
private Button buttonDown;
+ private Button buttonRight;
+ private Button buttonLeft;
private Button buttonUp;
private Button buttonShowStorage;
private Button buttonRemoveTanker;
private MaskedTextBox maskedTextBoxPosition;
- private Button buttonAddTanker;
- private ComboBox comboBoxSelectorMap;
- private PictureBox pictureBox;
- private Button buttonShowOnMap;
private GroupBox groupBoxMaps;
- private ListBox listBoxMaps;
- private Button buttonAddMap;
private Button buttonDeleteMap;
+ private ListBox listBoxMaps;
private TextBox textBoxNewMapName;
+ private Button buttonAddMap;
+ private MenuStrip menuStrip;
+ private ToolStripMenuItem FileToolStripMenuItem;
+ private ToolStripMenuItem SaveToolStripMenuItem;
+ private ToolStripMenuItem LoadToolStripMenuItem;
+ private OpenFileDialog openFileDialog;
+ private SaveFileDialog saveFileDialog;
}
}
\ No newline at end of file
diff --git a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.cs b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.cs
index 2a0c424..b49c652 100644
--- a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.cs
+++ b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.cs
@@ -180,5 +180,44 @@ namespace GasolineTanker
}
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].MoveObject(dir);
}
+ private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ if (_mapsCollection.SaveData(saveFileDialog.FileName))
+ {
+ MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ ///
+ /// Обработка нажатия "Загрузка"
+ ///
+ ///
+ ///
+ private void LoadToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (openFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ if (_mapsCollection.LoadData(openFileDialog.FileName))
+ {
+ ReloadMaps();
+ MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Не загрузилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
+ {
+
+ }
}
}
diff --git a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.resx b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.resx
index f298a7b..dd050e0 100644
--- a/GasolineTanker/GasolineTanker/FormMapWithSetTankers.resx
+++ b/GasolineTanker/GasolineTanker/FormMapWithSetTankers.resx
@@ -57,4 +57,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 15, 23
+
+
+ 125, 17
+
+
+ 258, 17
+
+
+ 387, 17
+
\ No newline at end of file
diff --git a/GasolineTanker/GasolineTanker/FormTankerConfig.Designer.cs b/GasolineTanker/GasolineTanker/FormTankerConfig.Designer.cs
index f136294..9bdca67 100644
--- a/GasolineTanker/GasolineTanker/FormTankerConfig.Designer.cs
+++ b/GasolineTanker/GasolineTanker/FormTankerConfig.Designer.cs
@@ -29,189 +29,193 @@
private void InitializeComponent()
{
this.groupBoxConfig = new System.Windows.Forms.GroupBox();
- this.labelSimpleObject = new System.Windows.Forms.Label();
this.labelModifiedObject = new System.Windows.Forms.Label();
+ this.labelSimpleObject = new System.Windows.Forms.Label();
this.groupBoxColors = new System.Windows.Forms.GroupBox();
this.panelPurple = new System.Windows.Forms.Panel();
- this.panelGray = new System.Windows.Forms.Panel();
- this.panelBlack = new System.Windows.Forms.Panel();
- this.panelWhite = new System.Windows.Forms.Panel();
- this.panelBlue = new System.Windows.Forms.Panel();
- this.panelGreen = new System.Windows.Forms.Panel();
this.panelYellow = new System.Windows.Forms.Panel();
+ this.panelBlack = new System.Windows.Forms.Panel();
+ this.panelBlue = new System.Windows.Forms.Panel();
+ this.panelGray = new System.Windows.Forms.Panel();
+ this.panelGreen = new System.Windows.Forms.Panel();
+ this.panelWhite = new System.Windows.Forms.Panel();
this.panelRed = new System.Windows.Forms.Panel();
+ this.checkBoxCabin = new System.Windows.Forms.CheckBox();
this.checkBoxSignal = new System.Windows.Forms.CheckBox();
this.checkBoxBenzoBack = new System.Windows.Forms.CheckBox();
this.numericUpDownWeight = new System.Windows.Forms.NumericUpDown();
+ this.labelWeight = new System.Windows.Forms.Label();
this.numericUpDownSpeed = new System.Windows.Forms.NumericUpDown();
this.labelSpeed = new System.Windows.Forms.Label();
- this.labelWeight = new System.Windows.Forms.Label();
- this.pictureBoxObject = new System.Windows.Forms.PictureBox();
this.panelObject = new System.Windows.Forms.Panel();
this.labelDopColor = new System.Windows.Forms.Label();
this.labelBaseColor = new System.Windows.Forms.Label();
- this.buttonOK = new System.Windows.Forms.Button();
+ this.pictureBoxObject = new System.Windows.Forms.PictureBox();
this.buttonCancel = new System.Windows.Forms.Button();
+ this.buttonOk = new System.Windows.Forms.Button();
this.groupBoxConfig.SuspendLayout();
this.groupBoxColors.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).BeginInit();
this.panelObject.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).BeginInit();
this.SuspendLayout();
//
// groupBoxConfig
//
- this.groupBoxConfig.Controls.Add(this.labelSimpleObject);
this.groupBoxConfig.Controls.Add(this.labelModifiedObject);
+ this.groupBoxConfig.Controls.Add(this.labelSimpleObject);
this.groupBoxConfig.Controls.Add(this.groupBoxColors);
+ this.groupBoxConfig.Controls.Add(this.checkBoxCabin);
this.groupBoxConfig.Controls.Add(this.checkBoxSignal);
this.groupBoxConfig.Controls.Add(this.checkBoxBenzoBack);
this.groupBoxConfig.Controls.Add(this.numericUpDownWeight);
+ this.groupBoxConfig.Controls.Add(this.labelWeight);
this.groupBoxConfig.Controls.Add(this.numericUpDownSpeed);
this.groupBoxConfig.Controls.Add(this.labelSpeed);
- this.groupBoxConfig.Controls.Add(this.labelWeight);
this.groupBoxConfig.Location = new System.Drawing.Point(12, 12);
this.groupBoxConfig.Name = "groupBoxConfig";
- this.groupBoxConfig.Size = new System.Drawing.Size(568, 268);
+ this.groupBoxConfig.Size = new System.Drawing.Size(520, 220);
this.groupBoxConfig.TabIndex = 0;
this.groupBoxConfig.TabStop = false;
this.groupBoxConfig.Text = "Параметры";
//
- // labelSimpleObject
- //
- this.labelSimpleObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.labelSimpleObject.Location = new System.Drawing.Point(293, 206);
- this.labelSimpleObject.Name = "labelSimpleObject";
- this.labelSimpleObject.Size = new System.Drawing.Size(110, 50);
- this.labelSimpleObject.TabIndex = 0;
- this.labelSimpleObject.Text = "Простой";
- this.labelSimpleObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.labelSimpleObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
- //
// labelModifiedObject
//
this.labelModifiedObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.labelModifiedObject.Location = new System.Drawing.Point(423, 206);
+ this.labelModifiedObject.Location = new System.Drawing.Point(394, 162);
this.labelModifiedObject.Name = "labelModifiedObject";
- this.labelModifiedObject.Size = new System.Drawing.Size(110, 50);
- this.labelModifiedObject.TabIndex = 1;
+ this.labelModifiedObject.Size = new System.Drawing.Size(97, 38);
+ this.labelModifiedObject.TabIndex = 16;
this.labelModifiedObject.Text = "Продвинутый";
this.labelModifiedObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.labelModifiedObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
//
+ // labelSimpleObject
+ //
+ this.labelSimpleObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.labelSimpleObject.Location = new System.Drawing.Point(282, 162);
+ this.labelSimpleObject.Name = "labelSimpleObject";
+ this.labelSimpleObject.Size = new System.Drawing.Size(97, 38);
+ this.labelSimpleObject.TabIndex = 15;
+ this.labelSimpleObject.Text = "Простой";
+ this.labelSimpleObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.labelSimpleObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
+ //
// groupBoxColors
//
this.groupBoxColors.Controls.Add(this.panelPurple);
- this.groupBoxColors.Controls.Add(this.panelGray);
- this.groupBoxColors.Controls.Add(this.panelBlack);
- this.groupBoxColors.Controls.Add(this.panelWhite);
- this.groupBoxColors.Controls.Add(this.panelBlue);
- this.groupBoxColors.Controls.Add(this.panelGreen);
this.groupBoxColors.Controls.Add(this.panelYellow);
+ this.groupBoxColors.Controls.Add(this.panelBlack);
+ this.groupBoxColors.Controls.Add(this.panelBlue);
+ this.groupBoxColors.Controls.Add(this.panelGray);
+ this.groupBoxColors.Controls.Add(this.panelGreen);
+ this.groupBoxColors.Controls.Add(this.panelWhite);
this.groupBoxColors.Controls.Add(this.panelRed);
- this.groupBoxColors.Location = new System.Drawing.Point(278, 26);
+ this.groupBoxColors.Location = new System.Drawing.Point(267, 22);
this.groupBoxColors.Name = "groupBoxColors";
- this.groupBoxColors.Size = new System.Drawing.Size(271, 164);
- this.groupBoxColors.TabIndex = 6;
+ this.groupBoxColors.Size = new System.Drawing.Size(241, 127);
+ this.groupBoxColors.TabIndex = 14;
this.groupBoxColors.TabStop = false;
this.groupBoxColors.Text = "Цвета";
//
// panelPurple
//
this.panelPurple.BackColor = System.Drawing.Color.Purple;
- this.panelPurple.Location = new System.Drawing.Point(210, 97);
- this.panelPurple.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.panelPurple.Location = new System.Drawing.Point(184, 73);
this.panelPurple.Name = "panelPurple";
- this.panelPurple.Size = new System.Drawing.Size(45, 55);
- this.panelPurple.TabIndex = 0;
- //
- // panelGray
- //
- this.panelGray.BackColor = System.Drawing.Color.Gray;
- this.panelGray.Location = new System.Drawing.Point(80, 97);
- this.panelGray.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panelGray.Name = "panelGray";
- this.panelGray.Size = new System.Drawing.Size(45, 55);
- this.panelGray.TabIndex = 0;
- //
- // panelBlack
- //
- this.panelBlack.BackColor = System.Drawing.Color.Black;
- this.panelBlack.Location = new System.Drawing.Point(145, 97);
- this.panelBlack.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panelBlack.Name = "panelBlack";
- this.panelBlack.Size = new System.Drawing.Size(45, 55);
- this.panelBlack.TabIndex = 0;
- //
- // panelWhite
- //
- this.panelWhite.BackColor = System.Drawing.Color.White;
- this.panelWhite.Location = new System.Drawing.Point(15, 97);
- this.panelWhite.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panelWhite.Name = "panelWhite";
- this.panelWhite.Size = new System.Drawing.Size(45, 55);
- this.panelWhite.TabIndex = 0;
- //
- // panelBlue
- //
- this.panelBlue.BackColor = System.Drawing.Color.Blue;
- this.panelBlue.Location = new System.Drawing.Point(145, 27);
- this.panelBlue.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panelBlue.Name = "panelBlue";
- this.panelBlue.Size = new System.Drawing.Size(45, 55);
- this.panelBlue.TabIndex = 0;
- //
- // panelGreen
- //
- this.panelGreen.BackColor = System.Drawing.Color.Green;
- this.panelGreen.Location = new System.Drawing.Point(80, 27);
- this.panelGreen.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panelGreen.Name = "panelGreen";
- this.panelGreen.Size = new System.Drawing.Size(45, 55);
- this.panelGreen.TabIndex = 2;
+ this.panelPurple.Size = new System.Drawing.Size(40, 40);
+ this.panelPurple.TabIndex = 3;
//
// panelYellow
//
this.panelYellow.BackColor = System.Drawing.Color.Yellow;
- this.panelYellow.Location = new System.Drawing.Point(210, 27);
- this.panelYellow.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.panelYellow.Location = new System.Drawing.Point(184, 22);
this.panelYellow.Name = "panelYellow";
- this.panelYellow.Size = new System.Drawing.Size(45, 55);
- this.panelYellow.TabIndex = 0;
+ this.panelYellow.Size = new System.Drawing.Size(40, 40);
+ this.panelYellow.TabIndex = 1;
+ //
+ // panelBlack
+ //
+ this.panelBlack.BackColor = System.Drawing.Color.Black;
+ this.panelBlack.Location = new System.Drawing.Point(127, 73);
+ this.panelBlack.Name = "panelBlack";
+ this.panelBlack.Size = new System.Drawing.Size(40, 40);
+ this.panelBlack.TabIndex = 4;
+ //
+ // panelBlue
+ //
+ this.panelBlue.BackColor = System.Drawing.Color.Blue;
+ this.panelBlue.Location = new System.Drawing.Point(127, 22);
+ this.panelBlue.Name = "panelBlue";
+ this.panelBlue.Size = new System.Drawing.Size(40, 40);
+ this.panelBlue.TabIndex = 1;
+ //
+ // panelGray
+ //
+ this.panelGray.BackColor = System.Drawing.Color.Gray;
+ this.panelGray.Location = new System.Drawing.Point(72, 73);
+ this.panelGray.Name = "panelGray";
+ this.panelGray.Size = new System.Drawing.Size(40, 40);
+ this.panelGray.TabIndex = 5;
+ //
+ // panelGreen
+ //
+ this.panelGreen.BackColor = System.Drawing.Color.Green;
+ this.panelGreen.Location = new System.Drawing.Point(72, 22);
+ this.panelGreen.Name = "panelGreen";
+ this.panelGreen.Size = new System.Drawing.Size(40, 40);
+ this.panelGreen.TabIndex = 1;
+ //
+ // panelWhite
+ //
+ this.panelWhite.BackColor = System.Drawing.Color.White;
+ this.panelWhite.Location = new System.Drawing.Point(15, 73);
+ this.panelWhite.Name = "panelWhite";
+ this.panelWhite.Size = new System.Drawing.Size(40, 40);
+ this.panelWhite.TabIndex = 2;
//
// panelRed
//
this.panelRed.BackColor = System.Drawing.Color.Red;
- this.panelRed.Location = new System.Drawing.Point(15, 27);
- this.panelRed.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.panelRed.Location = new System.Drawing.Point(15, 22);
this.panelRed.Name = "panelRed";
- this.panelRed.Size = new System.Drawing.Size(45, 55);
- this.panelRed.TabIndex = 1;
+ this.panelRed.Size = new System.Drawing.Size(40, 40);
+ this.panelRed.TabIndex = 0;
+ //
+ // checkBoxCabin
+ //
+ this.checkBoxCabin.AutoSize = true;
+ this.checkBoxCabin.Location = new System.Drawing.Point(22, 185);
+ this.checkBoxCabin.Name = "checkBoxCabin";
+ this.checkBoxCabin.Size = new System.Drawing.Size(66, 19);
+ this.checkBoxCabin.TabIndex = 13;
+ this.checkBoxCabin.Text = "Кабина";
+ this.checkBoxCabin.UseVisualStyleBackColor = true;
//
// checkBoxSignal
//
this.checkBoxSignal.AutoSize = true;
- this.checkBoxSignal.Location = new System.Drawing.Point(22, 166);
+ this.checkBoxSignal.Location = new System.Drawing.Point(22, 149);
this.checkBoxSignal.Name = "checkBoxSignal";
- this.checkBoxSignal.Size = new System.Drawing.Size(230, 24);
- this.checkBoxSignal.TabIndex = 5;
- this.checkBoxSignal.Text = "Наличие сигнального маяка";
+ this.checkBoxSignal.Size = new System.Drawing.Size(55, 19);
+ this.checkBoxSignal.TabIndex = 12;
+ this.checkBoxSignal.Text = "Маяк";
this.checkBoxSignal.UseVisualStyleBackColor = true;
//
// checkBoxBenzoBack
//
this.checkBoxBenzoBack.AutoSize = true;
- this.checkBoxBenzoBack.Location = new System.Drawing.Point(22, 136);
+ this.checkBoxBenzoBack.Location = new System.Drawing.Point(22, 115);
this.checkBoxBenzoBack.Name = "checkBoxBenzoBack";
- this.checkBoxBenzoBack.Size = new System.Drawing.Size(220, 24);
- this.checkBoxBenzoBack.TabIndex = 4;
- this.checkBoxBenzoBack.Text = "Наличие бака под топливо";
+ this.checkBoxBenzoBack.Size = new System.Drawing.Size(77, 19);
+ this.checkBoxBenzoBack.TabIndex = 11;
+ this.checkBoxBenzoBack.Text = "Бензобак";
this.checkBoxBenzoBack.UseVisualStyleBackColor = true;
//
// numericUpDownWeight
//
- this.numericUpDownWeight.Location = new System.Drawing.Point(104, 81);
+ this.numericUpDownWeight.Location = new System.Drawing.Point(90, 72);
this.numericUpDownWeight.Maximum = new decimal(new int[] {
1000,
0,
@@ -223,17 +227,26 @@
0,
0});
this.numericUpDownWeight.Name = "numericUpDownWeight";
- this.numericUpDownWeight.Size = new System.Drawing.Size(90, 27);
- this.numericUpDownWeight.TabIndex = 3;
+ this.numericUpDownWeight.Size = new System.Drawing.Size(79, 23);
+ this.numericUpDownWeight.TabIndex = 10;
this.numericUpDownWeight.Value = new decimal(new int[] {
100,
0,
0,
0});
//
+ // labelWeight
+ //
+ this.labelWeight.AutoSize = true;
+ this.labelWeight.Location = new System.Drawing.Point(22, 74);
+ this.labelWeight.Name = "labelWeight";
+ this.labelWeight.Size = new System.Drawing.Size(29, 15);
+ this.labelWeight.TabIndex = 9;
+ this.labelWeight.Text = "Вес:";
+ //
// numericUpDownSpeed
//
- this.numericUpDownSpeed.Location = new System.Drawing.Point(104, 43);
+ this.numericUpDownSpeed.Location = new System.Drawing.Point(90, 30);
this.numericUpDownSpeed.Maximum = new decimal(new int[] {
1000,
0,
@@ -245,8 +258,8 @@
0,
0});
this.numericUpDownSpeed.Name = "numericUpDownSpeed";
- this.numericUpDownSpeed.Size = new System.Drawing.Size(90, 27);
- this.numericUpDownSpeed.TabIndex = 2;
+ this.numericUpDownSpeed.Size = new System.Drawing.Size(79, 23);
+ this.numericUpDownSpeed.TabIndex = 8;
this.numericUpDownSpeed.Value = new decimal(new int[] {
100,
0,
@@ -256,39 +269,22 @@
// labelSpeed
//
this.labelSpeed.AutoSize = true;
- this.labelSpeed.Location = new System.Drawing.Point(22, 45);
+ this.labelSpeed.Location = new System.Drawing.Point(22, 32);
this.labelSpeed.Name = "labelSpeed";
- this.labelSpeed.Size = new System.Drawing.Size(76, 20);
- this.labelSpeed.TabIndex = 1;
+ this.labelSpeed.Size = new System.Drawing.Size(62, 15);
+ this.labelSpeed.TabIndex = 7;
this.labelSpeed.Text = "Скорость:";
//
- // labelWeight
- //
- this.labelWeight.AutoSize = true;
- this.labelWeight.Location = new System.Drawing.Point(62, 83);
- this.labelWeight.Name = "labelWeight";
- this.labelWeight.Size = new System.Drawing.Size(36, 20);
- this.labelWeight.TabIndex = 0;
- this.labelWeight.Text = "Вес:";
- //
- // pictureBoxObject
- //
- this.pictureBoxObject.Location = new System.Drawing.Point(17, 70);
- this.pictureBoxObject.Name = "pictureBoxObject";
- this.pictureBoxObject.Size = new System.Drawing.Size(250, 150);
- this.pictureBoxObject.TabIndex = 1;
- this.pictureBoxObject.TabStop = false;
- //
// panelObject
//
this.panelObject.AllowDrop = true;
this.panelObject.Controls.Add(this.labelDopColor);
this.panelObject.Controls.Add(this.labelBaseColor);
this.panelObject.Controls.Add(this.pictureBoxObject);
- this.panelObject.Location = new System.Drawing.Point(598, 23);
+ this.panelObject.Location = new System.Drawing.Point(538, 12);
this.panelObject.Name = "panelObject";
- this.panelObject.Size = new System.Drawing.Size(284, 234);
- this.panelObject.TabIndex = 7;
+ this.panelObject.Size = new System.Drawing.Size(262, 184);
+ this.panelObject.TabIndex = 2;
this.panelObject.DragDrop += new System.Windows.Forms.DragEventHandler(this.PanelObject_DragDrop);
this.panelObject.DragEnter += new System.Windows.Forms.DragEventHandler(this.PanelObject_DragEnter);
//
@@ -296,10 +292,10 @@
//
this.labelDopColor.AllowDrop = true;
this.labelDopColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.labelDopColor.Location = new System.Drawing.Point(152, 15);
+ this.labelDopColor.Location = new System.Drawing.Point(141, 9);
this.labelDopColor.Name = "labelDopColor";
- this.labelDopColor.Size = new System.Drawing.Size(115, 40);
- this.labelDopColor.TabIndex = 3;
+ this.labelDopColor.Size = new System.Drawing.Size(104, 32);
+ this.labelDopColor.TabIndex = 2;
this.labelDopColor.Text = "Доп. цвет";
this.labelDopColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.labelDopColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelDopColor_DragDrop);
@@ -309,83 +305,90 @@
//
this.labelBaseColor.AllowDrop = true;
this.labelBaseColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.labelBaseColor.Location = new System.Drawing.Point(17, 15);
+ this.labelBaseColor.Location = new System.Drawing.Point(20, 9);
this.labelBaseColor.Name = "labelBaseColor";
- this.labelBaseColor.Size = new System.Drawing.Size(115, 40);
- this.labelBaseColor.TabIndex = 2;
+ this.labelBaseColor.Size = new System.Drawing.Size(104, 32);
+ this.labelBaseColor.TabIndex = 1;
this.labelBaseColor.Text = "Цвет";
this.labelBaseColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.labelBaseColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragDrop);
this.labelBaseColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragEnter);
//
- // buttonOK
+ // pictureBoxObject
//
- this.buttonOK.Location = new System.Drawing.Point(615, 264);
- this.buttonOK.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.buttonOK.Name = "buttonOK";
- this.buttonOK.Size = new System.Drawing.Size(115, 30);
- this.buttonOK.TabIndex = 8;
- this.buttonOK.Text = "Добавить";
- this.buttonOK.UseVisualStyleBackColor = true;
- this.buttonOK.Click += new System.EventHandler(this.ButtonOk_Click);
+ this.pictureBoxObject.Location = new System.Drawing.Point(20, 44);
+ this.pictureBoxObject.Name = "pictureBoxObject";
+ this.pictureBoxObject.Size = new System.Drawing.Size(225, 125);
+ this.pictureBoxObject.TabIndex = 0;
+ this.pictureBoxObject.TabStop = false;
//
// buttonCancel
//
- this.buttonCancel.Location = new System.Drawing.Point(750, 264);
- this.buttonCancel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.buttonCancel.Location = new System.Drawing.Point(679, 202);
this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.Size = new System.Drawing.Size(115, 30);
- this.buttonCancel.TabIndex = 9;
+ this.buttonCancel.Size = new System.Drawing.Size(104, 30);
+ this.buttonCancel.TabIndex = 5;
this.buttonCancel.Text = "Отмена";
this.buttonCancel.UseVisualStyleBackColor = true;
//
+ // buttonOk
+ //
+ this.buttonOk.Location = new System.Drawing.Point(558, 202);
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.Size = new System.Drawing.Size(104, 30);
+ this.buttonOk.TabIndex = 4;
+ this.buttonOk.Text = "Добавить";
+ this.buttonOk.UseVisualStyleBackColor = true;
+ this.buttonOk.Click += new System.EventHandler(this.ButtonOk_Click);
+ //
// FormTankerConfig
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(902, 303);
+ this.ClientSize = new System.Drawing.Size(810, 242);
this.Controls.Add(this.buttonCancel);
- this.Controls.Add(this.buttonOK);
+ this.Controls.Add(this.buttonOk);
this.Controls.Add(this.panelObject);
this.Controls.Add(this.groupBoxConfig);
this.Name = "FormTankerConfig";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Создание объекта";
this.groupBoxConfig.ResumeLayout(false);
this.groupBoxConfig.PerformLayout();
this.groupBoxColors.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).EndInit();
this.panelObject.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).EndInit();
this.ResumeLayout(false);
}
#endregion
+
private GroupBox groupBoxConfig;
+ private CheckBox checkBoxCabin;
private CheckBox checkBoxSignal;
private CheckBox checkBoxBenzoBack;
private NumericUpDown numericUpDownWeight;
+ private Label labelWeight;
private NumericUpDown numericUpDownSpeed;
private Label labelSpeed;
- private Label labelWeight;
- private GroupBox groupBoxColors;
- private Label labelSimpleObject;
private Label labelModifiedObject;
+ private Label labelSimpleObject;
+ private GroupBox groupBoxColors;
private Panel panelPurple;
- private Panel panelGray;
- private Panel panelBlack;
- private Panel panelWhite;
- private Panel panelBlue;
- private Panel panelGreen;
private Panel panelYellow;
+ private Panel panelBlack;
+ private Panel panelBlue;
+ private Panel panelGray;
+ private Panel panelGreen;
+ private Panel panelWhite;
private Panel panelRed;
- private PictureBox pictureBoxObject;
private Panel panelObject;
private Label labelDopColor;
private Label labelBaseColor;
- private Button buttonOK;
+ private PictureBox pictureBoxObject;
private Button buttonCancel;
+ private Button buttonOk;
}
}
\ No newline at end of file
diff --git a/GasolineTanker/GasolineTanker/FormTankerConfig.cs b/GasolineTanker/GasolineTanker/FormTankerConfig.cs
index 6cf5ec3..845caf2 100644
--- a/GasolineTanker/GasolineTanker/FormTankerConfig.cs
+++ b/GasolineTanker/GasolineTanker/FormTankerConfig.cs
@@ -1,25 +1,24 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using static System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar;
-
-namespace GasolineTanker
+namespace GasolineTanker
{
+ ///
+ /// Форма создания объекта
+ ///
public partial class FormTankerConfig : Form
{
+ ///
+ /// Переменная-выбранная машина
+ ///
DrawningTanker _tanker = null;
- private event Action EventAddTanker;
-
+ ///
+ /// Событие
+ ///
+ private event TankerDelegate EventAddTanker;
+ ///
+ /// Конструктор
+ ///
public FormTankerConfig()
{
InitializeComponent();
-
panelBlack.MouseDown += PanelColor_MouseDown;
panelPurple.MouseDown += PanelColor_MouseDown;
panelGray.MouseDown += PanelColor_MouseDown;
@@ -31,7 +30,9 @@ namespace GasolineTanker
buttonCancel.Click += (s, e) => Close();
}
-
+ ///
+ /// Отрисовать машину
+ ///
private void DrawTanker()
{
Bitmap bmp = new(pictureBoxObject.Width, pictureBoxObject.Height);
@@ -40,39 +41,35 @@ namespace GasolineTanker
_tanker?.DrawTransport(gr);
pictureBoxObject.Image = bmp;
}
-
- public void AddEvent(Action ev)
+ ///
+ /// Добавление события
+ ///
+ ///
+ public void AddEvent(TankerDelegate ev)
{
if (EventAddTanker == null)
{
- EventAddTanker = new Action(ev);
+ EventAddTanker = new TankerDelegate(ev);
}
else
{
EventAddTanker += ev;
}
}
-
+ ///
+ /// Передаем информацию при нажатии на Label
+ ///
+ ///
+ ///
private void LabelObject_MouseDown(object sender, MouseEventArgs e)
{
(sender as Label).DoDragDrop((sender as Label).Name, DragDropEffects.Move | DragDropEffects.Copy);
}
-
- private void PanelObject_DragDrop(object sender, DragEventArgs e)
- {
- switch (e.Data.GetData(DataFormats.Text).ToString())
- {
- case "labelSimpleObject":
- _tanker = new DrawningTanker((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White);
- break;
- case "labelModifiedObject":
- _tanker = new DrawningGasolineTanker((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black,
- checkBoxBenzoBack.Checked, checkBoxSignal.Checked, checkBoxBenzoBack.Checked);
- break;
- }
- DrawTanker();
- }
-
+ ///
+ /// Проверка получаемой информации (ее типа на соответствие требуемому)
+ ///
+ ///
+ ///
private void PanelObject_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
@@ -84,12 +81,39 @@ namespace GasolineTanker
e.Effect = DragDropEffects.None;
}
}
-
+ ///
+ /// Действия при приеме перетаскиваемой информации
+ ///
+ ///
+ ///
+ private void PanelObject_DragDrop(object sender, DragEventArgs e)
+ {
+ switch (e.Data.GetData(DataFormats.Text).ToString())
+ {
+ case "labelSimpleObject":
+ _tanker = new DrawningTanker((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White);
+ break;
+ case "labelModifiedObject":
+ _tanker = new DrawningGasolineTanker((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.Black, Color.Black,
+ checkBoxCabin.Checked, checkBoxSignal.Checked, checkBoxBenzoBack.Checked);
+ break;
+ }
+ DrawTanker();
+ }
+ ///
+ /// Отправляем цвет с панели
+ ///
+ ///
+ ///
private void PanelColor_MouseDown(object sender, MouseEventArgs e)
{
(sender as Control).DoDragDrop((sender as Control).BackColor, DragDropEffects.Move | DragDropEffects.Copy);
}
-
+ ///
+ /// Проверка получаемой информации (ее типа на соответствие требуемому)
+ ///
+ ///
+ ///
private void LabelBaseColor_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(Color)))
@@ -101,13 +125,21 @@ namespace GasolineTanker
e.Effect = DragDropEffects.None;
}
}
-
+ ///
+ /// Принимаем основной цвет
+ ///
+ ///
+ ///
private void LabelBaseColor_DragDrop(object sender, DragEventArgs e)
{
_tanker?.Tanker.ChangeBaseColor((Color)e.Data.GetData(typeof(Color)));
DrawTanker();
}
-
+ ///
+ /// Принимаем дополнительный цвет
+ ///
+ ///
+ ///
private void LabelDopColor_DragDrop(object sender, DragEventArgs e)
{
if (_tanker?.Tanker is EntityGasolineTanker gasolineTanker)
@@ -116,11 +148,15 @@ namespace GasolineTanker
DrawTanker();
}
}
-
+ ///
+ /// Добавление машины
+ ///
+ ///
+ ///
private void ButtonOk_Click(object sender, EventArgs e)
{
EventAddTanker?.Invoke(_tanker);
Close();
}
}
-}
+}
\ No newline at end of file
diff --git a/GasolineTanker/GasolineTanker/IDrawningObject.cs b/GasolineTanker/GasolineTanker/IDrawningObject.cs
index e15cf61..569abab 100644
--- a/GasolineTanker/GasolineTanker/IDrawningObject.cs
+++ b/GasolineTanker/GasolineTanker/IDrawningObject.cs
@@ -36,5 +36,6 @@ namespace GasolineTanker
///
///
(float Left, float Right, float Top, float Bottom) GetCurrentPosition();
+ string GetInfo();
}
}
diff --git a/GasolineTanker/GasolineTanker/MapWithSetTankersGeneric.cs b/GasolineTanker/GasolineTanker/MapWithSetTankersGeneric.cs
index adf904e..aa02826 100644
--- a/GasolineTanker/GasolineTanker/MapWithSetTankersGeneric.cs
+++ b/GasolineTanker/GasolineTanker/MapWithSetTankersGeneric.cs
@@ -56,7 +56,22 @@
}
return new(_pictureWidth, _pictureHeight);
}
-
+ public string GetData(char separatorType, char separatorData)
+ {
+ string data = $"{_map.GetType().Name}{separatorType}";
+ foreach (var tanker in _setTankers.GetTankers())
+ {
+ data += $"{tanker.GetInfo()}{separatorData}";
+ }
+ return data;
+ }
+ public void LoadData(string[] records)
+ {
+ foreach (var rec in records)
+ {
+ _setTankers.Insert(DrawningObjectTanker.Create(rec) as T);
+ }
+ }
private void Shaking()
{
int j = _setTankers.Count - 1;
diff --git a/GasolineTanker/GasolineTanker/MapsCollection.cs b/GasolineTanker/GasolineTanker/MapsCollection.cs
index 86230d8..2056157 100644
--- a/GasolineTanker/GasolineTanker/MapsCollection.cs
+++ b/GasolineTanker/GasolineTanker/MapsCollection.cs
@@ -1,19 +1,22 @@
using System.Linq;
using System.Xml.Linq;
+using System.Text;
namespace GasolineTanker
{
internal class MapsCollection
{
- readonly Dictionary> _mapStorages;
+ readonly Dictionary> _mapStorages;
public List Keys => _mapStorages.Keys.ToList();
private readonly int _pictureWidth;
private readonly int _pictureHeight;
+ private readonly char separatorDict = '|';
+ private readonly char separatorData = ';';
public MapsCollection(int pictureWidth, int pictureHeight)
{
- _mapStorages = new Dictionary>();
+ _mapStorages = new Dictionary>();
_pictureWidth = pictureWidth;
_pictureHeight = pictureHeight;
}
@@ -22,7 +25,7 @@ namespace GasolineTanker
{
if (!_mapStorages.ContainsKey(name))
{
- _mapStorages.Add(name, new MapWithSetTankersGeneric
+ _mapStorages.Add(name, new MapWithSetTankersGeneric
(_pictureWidth, _pictureHeight, map));
}
}
@@ -31,7 +34,7 @@ namespace GasolineTanker
if (_mapStorages.ContainsKey(name))
_mapStorages.Remove(name);
}
- public MapWithSetTankersGeneric this[string ind]
+ public MapWithSetTankersGeneric this[string ind]
{
get
{
@@ -41,5 +44,74 @@ namespace GasolineTanker
return null;
}
}
+ private static void WriteToFile(string text, FileStream stream)
+ {
+ byte[] info = new UTF8Encoding(true).GetBytes(text);
+ stream.Write(info, 0, info.Length);
+ }
+ ///
+ /// Сохранение информации по автомобилям в хранилище в файл
+ ///
+ /// Путь и имя файла
+ ///
+ public bool SaveData(string filename)
+ {
+ if (File.Exists(filename))
+ {
+ File.Delete(filename);
+ }
+ using (StreamWriter sw = new(filename))
+ {
+ sw.Write($"MapsCollection{Environment.NewLine}");
+ foreach (var storage in _mapStorages)
+ {
+ sw.Write($"{storage.Key}{separatorDict}{storage.Value.GetData(separatorDict, separatorData)}{Environment.NewLine}");
+ }
+ }
+ return true;
+ }
+
+ ///
+ /// Загрузка нформации по автомобилям на парковках из файла
+ ///
+ ///
+ ///
+ public bool LoadData(string filename)
+ {
+ if (!File.Exists(filename))
+ {
+ return false;
+ }
+ using (StreamReader sr = new(filename))
+ {
+ string str = "";
+ if ((str = sr.ReadLine()) == null || !str.Contains("MapsCollection"))
+ {
+ return false;
+ }
+ _mapStorages.Clear();
+ while ((str = sr.ReadLine()) != null)
+ {
+ var tempElem = str.Split(separatorDict);
+ AbstractMap map = null;
+ switch (tempElem[1])
+ {
+ case "SimpleMap":
+ map = new SimpleMap();
+ break;
+ case "MineField":
+ map = new MineField();
+ break;
+ case "FormLawn":
+ map = new FormLawn();
+ break;
+
+ }
+ _mapStorages.Add(tempElem[0], new MapWithSetTankersGeneric(_pictureWidth, _pictureHeight, map));
+ _mapStorages[tempElem[0]].LoadData(tempElem[2].Split(separatorData, StringSplitOptions.RemoveEmptyEntries));
+ }
+ }
+ return true;
+ }
}
}