From 48725e0627c41e218bf761f2aca9e0583124c7c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B8=D0=BC=D0=B0?= Date: Fri, 30 Aug 2024 03:55:28 +0400 Subject: [PATCH] d --- .../FormLocomotivesCollection.Designer.cs | 156 +++++++++++------- .../FormLocomotivesCollection.cs | 66 ++++++-- .../FormLocomotivesCollection.resx | 12 ++ .../MovementStrategy/MoveableTrain.cs | 22 +-- 4 files changed, 176 insertions(+), 80 deletions(-) diff --git a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.Designer.cs b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.Designer.cs index 605a045..4de8723 100644 --- a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.Designer.cs +++ b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.Designer.cs @@ -46,10 +46,17 @@ maskedTextBoxPosision = new MaskedTextBox(); buttonGetToTest = new Button(); pictureBoxLocomotive = new PictureBox(); + menuStrip = new MenuStrip(); + файлToolStripMenuItem = new ToolStripMenuItem(); + saveToolStripMenuItem = new ToolStripMenuItem(); + loadToolStripMenuItem = new ToolStripMenuItem(); + saveFileDialog = new SaveFileDialog(); + openFileDialog = new OpenFileDialog(); groupBoxTools.SuspendLayout(); panelStorage.SuspendLayout(); panelCompanyTools.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBoxLocomotive).BeginInit(); + menuStrip.SuspendLayout(); SuspendLayout(); // // groupBoxTools @@ -59,21 +66,18 @@ groupBoxTools.Controls.Add(comboBoxSelectorCompany); groupBoxTools.Controls.Add(panelCompanyTools); groupBoxTools.Dock = DockStyle.Right; - groupBoxTools.Location = new Point(522, 0); - groupBoxTools.Margin = new Padding(3, 2, 3, 2); + groupBoxTools.Location = new Point(631, 28); groupBoxTools.Name = "groupBoxTools"; - groupBoxTools.Padding = new Padding(3, 2, 3, 2); - groupBoxTools.Size = new Size(182, 490); + groupBoxTools.Size = new Size(222, 651); groupBoxTools.TabIndex = 0; groupBoxTools.TabStop = false; groupBoxTools.Text = "инструменты"; // // buttonCreateCompany // - buttonCreateCompany.Location = new Point(18, 259); - buttonCreateCompany.Margin = new Padding(3, 2, 3, 2); + buttonCreateCompany.Location = new Point(21, 345); buttonCreateCompany.Name = "buttonCreateCompany"; - buttonCreateCompany.Size = new Size(163, 20); + buttonCreateCompany.Size = new Size(186, 27); buttonCreateCompany.TabIndex = 7; buttonCreateCompany.Text = "Создать компанию"; buttonCreateCompany.UseVisualStyleBackColor = true; @@ -89,18 +93,16 @@ panelStorage.Controls.Add(textBoxCollectionName); panelStorage.Controls.Add(labelCollectionName); panelStorage.Dock = DockStyle.Top; - panelStorage.Location = new Point(3, 18); - panelStorage.Margin = new Padding(3, 2, 3, 2); + panelStorage.Location = new Point(3, 23); panelStorage.Name = "panelStorage"; - panelStorage.Size = new Size(176, 212); + panelStorage.Size = new Size(216, 283); panelStorage.TabIndex = 6; // // buttonCollectionDel // - buttonCollectionDel.Location = new Point(15, 185); - buttonCollectionDel.Margin = new Padding(3, 2, 3, 2); + buttonCollectionDel.Location = new Point(17, 247); buttonCollectionDel.Name = "buttonCollectionDel"; - buttonCollectionDel.Size = new Size(163, 20); + buttonCollectionDel.Size = new Size(186, 27); buttonCollectionDel.TabIndex = 6; buttonCollectionDel.Text = "Удалить коллекцию"; buttonCollectionDel.UseVisualStyleBackColor = true; @@ -109,19 +111,16 @@ // listBoxCollection // listBoxCollection.FormattingEnabled = true; - listBoxCollection.ItemHeight = 15; - listBoxCollection.Location = new Point(15, 103); - listBoxCollection.Margin = new Padding(3, 2, 3, 2); + listBoxCollection.Location = new Point(17, 137); listBoxCollection.Name = "listBoxCollection"; - listBoxCollection.Size = new Size(163, 79); + listBoxCollection.Size = new Size(186, 104); listBoxCollection.TabIndex = 5; // // buttonCollecctionAdd // - buttonCollecctionAdd.Location = new Point(15, 78); - buttonCollecctionAdd.Margin = new Padding(3, 2, 3, 2); + buttonCollecctionAdd.Location = new Point(17, 104); buttonCollecctionAdd.Name = "buttonCollecctionAdd"; - buttonCollecctionAdd.Size = new Size(163, 20); + buttonCollecctionAdd.Size = new Size(186, 27); buttonCollecctionAdd.TabIndex = 4; buttonCollecctionAdd.Text = "Добавить коллекцию"; buttonCollecctionAdd.UseVisualStyleBackColor = true; @@ -130,10 +129,9 @@ // radioButtonList // radioButtonList.AutoSize = true; - radioButtonList.Location = new Point(108, 56); - radioButtonList.Margin = new Padding(3, 2, 3, 2); + radioButtonList.Location = new Point(123, 75); radioButtonList.Name = "radioButtonList"; - radioButtonList.Size = new Size(66, 19); + radioButtonList.Size = new Size(80, 24); radioButtonList.TabIndex = 3; radioButtonList.TabStop = true; radioButtonList.Text = "Список"; @@ -142,10 +140,9 @@ // radioButtonMassive // radioButtonMassive.AutoSize = true; - radioButtonMassive.Location = new Point(15, 56); - radioButtonMassive.Margin = new Padding(3, 2, 3, 2); + radioButtonMassive.Location = new Point(17, 75); radioButtonMassive.Name = "radioButtonMassive"; - radioButtonMassive.Size = new Size(67, 19); + radioButtonMassive.Size = new Size(82, 24); radioButtonMassive.TabIndex = 2; radioButtonMassive.TabStop = true; radioButtonMassive.Text = "Массив"; @@ -153,18 +150,17 @@ // // textBoxCollectionName // - textBoxCollectionName.Location = new Point(15, 24); - textBoxCollectionName.Margin = new Padding(3, 2, 3, 2); + textBoxCollectionName.Location = new Point(17, 32); textBoxCollectionName.Name = "textBoxCollectionName"; - textBoxCollectionName.Size = new Size(163, 23); + textBoxCollectionName.Size = new Size(186, 27); textBoxCollectionName.TabIndex = 1; // // labelCollectionName // labelCollectionName.AutoSize = true; - labelCollectionName.Location = new Point(23, 7); + labelCollectionName.Location = new Point(26, 9); labelCollectionName.Name = "labelCollectionName"; - labelCollectionName.Size = new Size(122, 15); + labelCollectionName.Size = new Size(155, 20); labelCollectionName.TabIndex = 0; labelCollectionName.Text = "Название коллекции"; // @@ -173,10 +169,9 @@ comboBoxSelectorCompany.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxSelectorCompany.FormattingEnabled = true; comboBoxSelectorCompany.Items.AddRange(new object[] { "Хранилище" }); - comboBoxSelectorCompany.Location = new Point(18, 233); - comboBoxSelectorCompany.Margin = new Padding(3, 2, 3, 2); + comboBoxSelectorCompany.Location = new Point(21, 311); comboBoxSelectorCompany.Name = "comboBoxSelectorCompany"; - comboBoxSelectorCompany.Size = new Size(163, 23); + comboBoxSelectorCompany.Size = new Size(186, 28); comboBoxSelectorCompany.TabIndex = 0; comboBoxSelectorCompany.SelectedIndexChanged += comboBoxSelectorCompany_SelectedIndexChanged_1; // @@ -188,20 +183,18 @@ panelCompanyTools.Controls.Add(maskedTextBoxPosision); panelCompanyTools.Controls.Add(buttonGetToTest); panelCompanyTools.Enabled = false; - panelCompanyTools.Location = new Point(3, 284); - panelCompanyTools.Margin = new Padding(3, 2, 3, 2); + panelCompanyTools.Location = new Point(3, 379); panelCompanyTools.Name = "panelCompanyTools"; - panelCompanyTools.Size = new Size(189, 206); + panelCompanyTools.Size = new Size(216, 274); panelCompanyTools.TabIndex = 8; // // ButtonAddLocomotive // ButtonAddLocomotive.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; ButtonAddLocomotive.BackgroundImageLayout = ImageLayout.Center; - ButtonAddLocomotive.Location = new Point(16, 2); - ButtonAddLocomotive.Margin = new Padding(3, 2, 3, 2); + ButtonAddLocomotive.Location = new Point(18, 3); ButtonAddLocomotive.Name = "ButtonAddLocomotive"; - ButtonAddLocomotive.Size = new Size(163, 55); + ButtonAddLocomotive.Size = new Size(186, 40); ButtonAddLocomotive.TabIndex = 1; ButtonAddLocomotive.Text = "добваление поезда"; ButtonAddLocomotive.UseVisualStyleBackColor = true; @@ -210,10 +203,9 @@ // buttonRefresh // buttonRefresh.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRefresh.Location = new Point(16, 170); - buttonRefresh.Margin = new Padding(3, 2, 3, 2); + buttonRefresh.Location = new Point(18, 227); buttonRefresh.Name = "buttonRefresh"; - buttonRefresh.Size = new Size(163, 31); + buttonRefresh.Size = new Size(186, 41); buttonRefresh.TabIndex = 5; buttonRefresh.Text = "обновить"; buttonRefresh.UseVisualStyleBackColor = true; @@ -222,10 +214,9 @@ // ButtonRemoveLocomotive // ButtonRemoveLocomotive.Anchor = AnchorStyles.Right; - ButtonRemoveLocomotive.Location = new Point(16, 88); - ButtonRemoveLocomotive.Margin = new Padding(3, 2, 3, 2); + ButtonRemoveLocomotive.Location = new Point(18, 138); ButtonRemoveLocomotive.Name = "ButtonRemoveLocomotive"; - ButtonRemoveLocomotive.Size = new Size(163, 46); + ButtonRemoveLocomotive.Size = new Size(186, 40); ButtonRemoveLocomotive.TabIndex = 3; ButtonRemoveLocomotive.Text = "удалить поезд"; ButtonRemoveLocomotive.UseVisualStyleBackColor = true; @@ -233,21 +224,19 @@ // // maskedTextBoxPosision // - maskedTextBoxPosision.Location = new Point(16, 61); - maskedTextBoxPosision.Margin = new Padding(3, 2, 3, 2); + maskedTextBoxPosision.Location = new Point(17, 105); maskedTextBoxPosision.Mask = "00"; maskedTextBoxPosision.Name = "maskedTextBoxPosision"; - maskedTextBoxPosision.Size = new Size(164, 23); + maskedTextBoxPosision.Size = new Size(187, 27); maskedTextBoxPosision.TabIndex = 2; maskedTextBoxPosision.ValidatingType = typeof(int); // // buttonGetToTest // buttonGetToTest.Anchor = AnchorStyles.Right; - buttonGetToTest.Location = new Point(16, 138); - buttonGetToTest.Margin = new Padding(3, 2, 3, 2); + buttonGetToTest.Location = new Point(18, 184); buttonGetToTest.Name = "buttonGetToTest"; - buttonGetToTest.Size = new Size(163, 30); + buttonGetToTest.Size = new Size(186, 40); buttonGetToTest.TabIndex = 4; buttonGetToTest.Text = "передать на тесты"; buttonGetToTest.UseVisualStyleBackColor = true; @@ -256,21 +245,63 @@ // pictureBoxLocomotive // pictureBoxLocomotive.Dock = DockStyle.Fill; - pictureBoxLocomotive.Location = new Point(0, 0); - pictureBoxLocomotive.Margin = new Padding(3, 2, 3, 2); + pictureBoxLocomotive.Location = new Point(0, 28); pictureBoxLocomotive.Name = "pictureBoxLocomotive"; - pictureBoxLocomotive.Size = new Size(522, 490); + pictureBoxLocomotive.Size = new Size(631, 651); pictureBoxLocomotive.TabIndex = 1; pictureBoxLocomotive.TabStop = false; + pictureBoxLocomotive.Click += pictureBoxLocomotive_Click; + // + // menuStrip + // + menuStrip.ImageScalingSize = new Size(20, 20); + menuStrip.Items.AddRange(new ToolStripItem[] { файлToolStripMenuItem }); + menuStrip.Location = new Point(0, 0); + menuStrip.Name = "menuStrip"; + menuStrip.Size = new Size(853, 28); + menuStrip.TabIndex = 2; + menuStrip.Text = "menuStrip1"; + // + // файлToolStripMenuItem + // + файлToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { saveToolStripMenuItem, loadToolStripMenuItem }); + файлToolStripMenuItem.Name = "файлToolStripMenuItem"; + файлToolStripMenuItem.Size = new Size(59, 24); + файлToolStripMenuItem.Text = "Файл"; + // + // saveToolStripMenuItem + // + saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + saveToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.S; + saveToolStripMenuItem.Size = new Size(227, 26); + saveToolStripMenuItem.Text = "Сохранение"; + saveToolStripMenuItem.Click += SaveToolStripMenuItem_Click; + // + // loadToolStripMenuItem + // + loadToolStripMenuItem.Name = "loadToolStripMenuItem"; + loadToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.L; + loadToolStripMenuItem.Size = new Size(227, 26); + loadToolStripMenuItem.Text = "Загрузка"; + loadToolStripMenuItem.Click += LoadToolStripMenuItem_Click; + // + // saveFileDialog + // + saveFileDialog.Filter = "txt file|*.txt"; + // + // openFileDialog + // + openFileDialog.Filter = "txt file|*.txt"; // // FormLocomotivesCollection // - AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(704, 490); + ClientSize = new Size(853, 679); Controls.Add(pictureBoxLocomotive); Controls.Add(groupBoxTools); - Margin = new Padding(3, 2, 3, 2); + Controls.Add(menuStrip); + MainMenuStrip = menuStrip; Name = "FormLocomotivesCollection"; Text = "FormLocomotivesCollection"; groupBoxTools.ResumeLayout(false); @@ -279,7 +310,10 @@ panelCompanyTools.ResumeLayout(false); panelCompanyTools.PerformLayout(); ((System.ComponentModel.ISupportInitialize)pictureBoxLocomotive).EndInit(); + menuStrip.ResumeLayout(false); + menuStrip.PerformLayout(); ResumeLayout(false); + PerformLayout(); } #endregion @@ -302,5 +336,11 @@ private Button buttonCreateCompany; private Button buttonCollectionDel; private Panel panelCompanyTools; + private MenuStrip menuStrip; + private ToolStripMenuItem файлToolStripMenuItem; + private ToolStripMenuItem saveToolStripMenuItem; + private ToolStripMenuItem loadToolStripMenuItem; + private SaveFileDialog saveFileDialog; + private OpenFileDialog openFileDialog; } } \ No newline at end of file diff --git a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.cs b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.cs index 2bcba5a..4387abc 100644 --- a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.cs +++ b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.cs @@ -1,6 +1,5 @@ using ProjectLocomotive.CollectionGenericObjects; using ProjectLocomotive.Drawnings; -using System.Windows.Forms; namespace ProjectLocomotive { @@ -45,17 +44,17 @@ namespace ProjectLocomotive } /// - /// Добавление поезда в коллекцию + /// Добавление самолета в коллекцию /// - /// - private void SetLocomotive(DrawningLocomotive locomotive) + /// + private void SetLocomotive(DrawningLocomotive? plane) { - if (_company == null || locomotive == null) + if (_company == null || plane == null) { return; } - if (_company + locomotive != -1) + if (_company + plane != -1) { MessageBox.Show("Объект добавлен"); pictureBoxLocomotive.Image = _company.Show(); @@ -101,24 +100,24 @@ namespace ProjectLocomotive return; } - DrawningLocomotive? locomotive = null; + DrawningLocomotive? plane = null; int counter = 100; - while (locomotive == null) + while (plane == null) { - locomotive = _company.GetRandomObject(); + plane = _company.GetRandomObject(); counter--; if (counter <= 0) { break; } } - if (locomotive == null) + if (plane == null) { return; } FormLocomotive form = new() { - SetLocomotive = locomotive + SetLocomotive = plane }; form.ShowDialog(); @@ -223,8 +222,53 @@ namespace ProjectLocomotive } panelCompanyTools.Enabled = true; + } + /// + /// Обработка нажатия "Сохранение" + /// + /// + /// + private void SaveToolStripMenuItem_Click(object sender, EventArgs e) + { + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + if (_storageCollection.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 (_storageCollection.LoadData(openFileDialog.FileName)) + { + MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + RerfreshListBoxItems(); + } + else + { + MessageBox.Show("Не загрузилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void pictureBoxLocomotive_Click(object sender, EventArgs e) + { + + } } } diff --git a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.resx b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.resx index af32865..b5b741b 100644 --- a/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.resx +++ b/ProjectLocomotive/ProjectLocomotive/FormLocomotivesCollection.resx @@ -117,4 +117,16 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 1 + + + 145, 1 + + + 310, 1 + + + 25 + \ No newline at end of file diff --git a/ProjectLocomotive/ProjectLocomotive/MovementStrategy/MoveableTrain.cs b/ProjectLocomotive/ProjectLocomotive/MovementStrategy/MoveableTrain.cs index 7e92c28..085d3ea 100644 --- a/ProjectLocomotive/ProjectLocomotive/MovementStrategy/MoveableTrain.cs +++ b/ProjectLocomotive/ProjectLocomotive/MovementStrategy/MoveableTrain.cs @@ -10,36 +10,36 @@ namespace ProjectLocomotive.MovementStrategy /// /// Поле-объект класса DrawningLocomotive или его наследника /// - private readonly DrawningLocomotive? _train = null; + private readonly DrawningLocomotive? _locomotive = null; /// /// Конструктор /// - /// Объект класса DrawningLocomotive - public MoveableLocomotive(DrawningLocomotive train) + /// Объект класса DrawningLocomotive + public MoveableLocomotive(DrawningLocomotive locomotive) { - _train = train; + _locomotive = locomotive; } public ObjectParameters? GetObjectPosition { get { - if (_train == null || _train.EntityLocomotive == null || - !_train.GetPosX.HasValue || !_train.GetPosY.HasValue) + if (_locomotive == null || _locomotive.EntityLocomotive == null || + !_locomotive.GetPosX.HasValue || !_locomotive.GetPosY.HasValue) { return null; } - return new ObjectParameters(_train.GetPosX.Value, - _train.GetPosY.Value, _train.GetWidth, _train.GetHeight); + return new ObjectParameters(_locomotive.GetPosX.Value, + _locomotive.GetPosY.Value, _locomotive.GetWidth, _locomotive.GetHeight); } } - public int GetStep => (int)(_train?.EntityLocomotive?.Step ?? 0); + public int GetStep => (int)(_locomotive?.EntityLocomotive?.Step ?? 0); public bool TryMoveObject(MovementDirection direction) { - if (_train == null || _train.EntityLocomotive == null) + if (_locomotive == null || _locomotive.EntityLocomotive == null) { return false; } - return _train.MoveTransport(GetDirectionType(direction)); + return _locomotive.MoveTransport(GetDirectionType(direction)); } /// /// Конвертация из MovementDirection в DirectionType