K.A. Nevaeva Lab work 01 #1

Merged
eegov merged 3 commits from Lab_1 into master 2022-10-07 10:01:21 +04:00
13 changed files with 689 additions and 50 deletions
Showing only changes of commit c61311f5b5 - Show all commits

View File

@ -8,4 +8,19 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ContainerShip
{
internal enum Direction
{
Up = 1,
Down = 2,
Left = 3,
Right = 4
}
}

View File

@ -0,0 +1,160 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static ContainerShip.EntityContainerShip;
namespace ContainerShip
{
internal class DrawingShip
{
public EntityContainerShip Ship { private set; get; }
private float _startPosX;
private float _startPosY;
private int? _pictureWidth = null;
private int _startPosXInt;
private int _startPosYInt;
/// <summary>
/// Высота окна отрисовки
/// </summary>
private int? _pictureHeight = null;
/// <summary>
/// Ширина отрисовки автомобиля
/// </summary>
private readonly int _shipWidth = 120;
/// <summary>
/// Высота отрисовки автомобиля
/// </summary>
private readonly int _shipHeight = 40;
/// <summary>
/// Инициализация свойств
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес автомобиля</param>
/// <param name="bodyColor">Цвет кузова</param>
public void Init(int speed, float weight, Color bodyColor)
{
Ship = new EntityContainerShip();
Ship.Init(speed, weight, bodyColor);
}
/// <param name="x">Координата X</param>
/// <param name="y">Координата Y</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public void SetPosition(int x, int y, int width, int height)
Review

Не учтены все условия, при которых объект может выйти за границы

Не учтены все условия, при которых объект может выйти за границы
{
// Проверки
Random rn = new Random();
if (x < 0 || x > width)
{
x = rn.Next(0, width - _shipWidth);
}
if (y < 0 || y > height)
{
y = rn.Next(0, height - _shipHeight);
}
_startPosX = x;
_startPosY = y;
_pictureWidth = width;
_pictureHeight = height;
}
/// <param name="direction">Направление</param>
public void MoveTransport(Direction direction)
{
if (!_pictureWidth.HasValue || !_pictureHeight.HasValue)
{
return;
}
switch (direction)
{
case Direction.Right:
if (_startPosX + _shipWidth + Ship.Step < _pictureWidth)
{
_startPosX += Ship.Step;
}
break;
case Direction.Left:
if (_startPosX - Ship.Step > 0)
{
_startPosX -= Ship.Step;
}
break;
case Direction.Up:
if (_startPosY - Ship.Step > 0)
{
_startPosY -= Ship.Step;
}
break;
case Direction.Down:
if (_startPosY + _shipHeight + Ship.Step < _pictureHeight)
{
_startPosY += Ship.Step;
}
break;
}
}
/// <summary>
/// Отрисовка
/// </summary>
/// <param name="g"></param>
public void DrawTransport(Graphics g)
{
if (_startPosX < 0 || _startPosY < 0
|| !_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return;
}
_startPosXInt = Convert.ToInt32(_startPosX);
_startPosYInt = Convert.ToInt32(_startPosY);
Pen pen = new(Color.Black);
Point[] circuit =
{
new Point(_startPosXInt + 30, _startPosYInt),
new Point(_startPosXInt + 100, _startPosYInt),
new Point(_startPosXInt + 100, _startPosYInt + 15),
new Point(_startPosXInt + 135, _startPosYInt + 15),
new Point(_startPosXInt + 115 , _startPosYInt + 40),
new Point(_startPosXInt + 20, _startPosYInt + 40),
new Point(_startPosXInt, _startPosYInt + 15),
new Point(_startPosXInt + 30, _startPosYInt + 15),
new Point(_startPosXInt + 30, _startPosYInt),
};
Brush br = new SolidBrush(Ship?.BodyColor ?? Color.Black);
g.FillPolygon(br, circuit);
g.DrawPolygon(pen, circuit);
g.DrawLine(pen, _startPosXInt + 30, _startPosYInt + 15, _startPosXInt + 100, _startPosYInt + 15);
g.DrawLine(pen, _startPosXInt + 30, _startPosYInt + 20, _startPosXInt + 30, _startPosYInt + 30);
g.DrawLine(pen, _startPosXInt + 25, _startPosYInt + 25, _startPosXInt + 35, _startPosYInt + 25);
g.DrawLine(pen, _startPosXInt + 25, _startPosYInt + 30, _startPosXInt + 35, _startPosYInt + 30);
}
/// <summary>
/// Смена границ формы отрисовки
/// </summary>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public void ChangeBorders(int width, int height)
{
_pictureWidth = width;
_pictureHeight = height;
if (_pictureWidth <= _shipWidth || _pictureHeight <= _shipHeight)
{
_pictureWidth = null;
_pictureHeight = null;
return;
}
if (_startPosX + _shipWidth > _pictureWidth)
{
_startPosX = _pictureWidth.Value - _shipWidth;
}
if (_startPosY + _shipHeight > _pictureHeight)
{
_startPosY = _pictureHeight.Value - _shipHeight;
}
}
}
}

View File

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ContainerShip
{
internal class EntityContainerShip
{
/// <summary>
/// Скорость
/// </summary>
public int Speed { get; private set; }
/// <summary>
/// Вес
/// </summary>
public float Weight { get; private set; }
/// <summary>
/// Цвет кузова
/// </summary>
public Color BodyColor { get; private set; }
/// <summary>
/// Шаг перемещения автомобиля
/// </summary>
public float Step => Speed * 100 / Weight;
/// <summary>
/// Инициализация полей объекта-класса автомобиля
/// </summary>
/// <param name="speed"></param>
/// <param name="weight"></param>
/// <param name="bodyColor"></param>
/// <returns></returns>
public void Init(int speed, float weight, Color bodyColor)
{
Random rnd = new();
Speed = speed <= 0 ? rnd.Next(50, 150) : speed;
Weight = weight <= 0 ? rnd.Next(40, 70) : weight;
BodyColor = bodyColor;
}
}
}

View File

@ -1,39 +0,0 @@
namespace ContainerShip
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Text = "Form1";
}
#endregion
}
}

View File

@ -1,10 +0,0 @@
namespace ContainerShip
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}

View File

@ -0,0 +1,182 @@
namespace ContainerShip
{
partial class FormShip
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormShip));
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabelSpeed = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabelWeight = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabelBodyColor = new System.Windows.Forms.ToolStripStatusLabel();
this.buttonRight = new System.Windows.Forms.Button();
this.buttonUp = new System.Windows.Forms.Button();
this.buttonDown = new System.Windows.Forms.Button();
this.buttonLeft = new System.Windows.Forms.Button();
this.pictureBoxShip = new System.Windows.Forms.PictureBox();
this.ButtonCreate = new System.Windows.Forms.Button();
this.statusStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxShip)).BeginInit();
this.SuspendLayout();
//
// statusStrip1
//
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabelSpeed,
this.toolStripStatusLabelWeight,
this.toolStripStatusLabelBodyColor});
this.statusStrip1.Location = new System.Drawing.Point(0, 418);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(800, 32);
this.statusStrip1.TabIndex = 0;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripStatusLabelSpeed
//
this.toolStripStatusLabelSpeed.Name = "toolStripStatusLabelSpeed";
this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(93, 25);
this.toolStripStatusLabelSpeed.Text = "Скорость:";
//
// toolStripStatusLabelWeight
//
this.toolStripStatusLabelWeight.Name = "toolStripStatusLabelWeight";
this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(43, 25);
this.toolStripStatusLabelWeight.Text = "Вес:";
//
// toolStripStatusLabelBodyColor
//
this.toolStripStatusLabelBodyColor.Name = "toolStripStatusLabelBodyColor";
this.toolStripStatusLabelBodyColor.Size = new System.Drawing.Size(55, 25);
this.toolStripStatusLabelBodyColor.Text = "Цвет:";
//
// buttonRight
//
this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonRight.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonRight.BackgroundImage")));
this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.buttonRight.Location = new System.Drawing.Point(738, 353);
this.buttonRight.Name = "buttonRight";
this.buttonRight.Size = new System.Drawing.Size(50, 50);
this.buttonRight.TabIndex = 2;
this.buttonRight.UseVisualStyleBackColor = true;
this.buttonRight.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 = ((System.Drawing.Image)(resources.GetObject("buttonUp.BackgroundImage")));
this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.buttonUp.Location = new System.Drawing.Point(682, 306);
this.buttonUp.Name = "buttonUp";
this.buttonUp.Size = new System.Drawing.Size(50, 50);
this.buttonUp.TabIndex = 3;
this.buttonUp.UseVisualStyleBackColor = true;
this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click);
//
// buttonDown
//
this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonDown.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonDown.BackgroundImage")));
this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.buttonDown.Location = new System.Drawing.Point(682, 352);
this.buttonDown.Name = "buttonDown";
this.buttonDown.Size = new System.Drawing.Size(50, 50);
this.buttonDown.TabIndex = 4;
this.buttonDown.UseVisualStyleBackColor = true;
this.buttonDown.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::ContainerShip.Properties.Resources.RightArrow;
this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.buttonLeft.Location = new System.Drawing.Point(626, 353);
this.buttonLeft.Name = "buttonLeft";
this.buttonLeft.Size = new System.Drawing.Size(50, 50);
this.buttonLeft.TabIndex = 5;
this.buttonLeft.UseVisualStyleBackColor = true;
this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click);
//
// pictureBoxShip
//
this.pictureBoxShip.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBoxShip.Location = new System.Drawing.Point(0, 0);
this.pictureBoxShip.Name = "pictureBoxShip";
this.pictureBoxShip.Size = new System.Drawing.Size(800, 418);
this.pictureBoxShip.TabIndex = 7;
this.pictureBoxShip.TabStop = false;
//
// ButtonCreate
//
this.ButtonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.ButtonCreate.BackColor = System.Drawing.SystemColors.Window;
this.ButtonCreate.Location = new System.Drawing.Point(12, 381);
this.ButtonCreate.Name = "ButtonCreate";
this.ButtonCreate.Size = new System.Drawing.Size(112, 34);
this.ButtonCreate.TabIndex = 8;
this.ButtonCreate.Text = "Создать";
this.ButtonCreate.UseVisualStyleBackColor = false;
this.ButtonCreate.Click += new System.EventHandler(this.ButtonCreate_Click);
//
// FormShip
//
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.ButtonCreate);
this.Controls.Add(this.buttonLeft);
this.Controls.Add(this.buttonDown);
this.Controls.Add(this.buttonUp);
this.Controls.Add(this.buttonRight);
this.Controls.Add(this.pictureBoxShip);
this.Controls.Add(this.statusStrip1);
this.Name = "FormShip";
this.Text = "Грузовой корабль";
this.Click += new System.EventHandler(this.ButtonMove_Click);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxShip)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private StatusStrip statusStrip1;
private Button buttonRight;
private Button buttonUp;
private Button buttonDown;
private Button buttonLeft;
private ToolStripStatusLabel toolStripStatusLabelSpeed;
private ToolStripStatusLabel toolStripStatusLabelWeight;
private ToolStripStatusLabel toolStripStatusLabelBodyColor;
private PictureBox pictureBoxShip;
private Button ButtonCreate;
}
}

View File

@ -0,0 +1,76 @@
namespace ContainerShip
{
public partial class FormShip : Form
{
private DrawingShip _ship;
public FormShip()
{
InitializeComponent();
}
/// <summary>
/// Ìåòîä ïðîðèñîâêè ìàøèíû
/// </summary>
private void Draw()
{
Bitmap bmp = new(pictureBoxShip.Width, pictureBoxShip.Height);
Graphics gr = Graphics.FromImage(bmp);
_ship?.DrawTransport(gr);
pictureBoxShip.Image = bmp;
}
/// <summary>
/// Îáðàáîòêà íàæàòèÿ êíîïêè "Ñîçäàòü"
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <summary>
/// Èçìåíåíèå ðàçìåðîâ ôîðìû
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ButtonMove_Click(object sender, EventArgs e)
{
//ïîëó÷àåì èìÿ êíîïêè
string name = ((Button)sender)?.Name ?? string.Empty;
switch (name)
{
case "buttonUp":
_ship?.MoveTransport(Direction.Up);
break;
case "buttonDown":
_ship?.MoveTransport(Direction.Down);
break;
case "buttonLeft":
_ship?.MoveTransport(Direction.Left);
break;
case "buttonRight":
_ship?.MoveTransport(Direction.Right);
break;
}
Draw();
}
/// <summary>
/// Èçìåíåíèå ðàçìåðîâ ôîðìû
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PictureBoxCar_Resize(object sender, EventArgs e)
{
_ship?.ChangeBorders(pictureBoxShip.Width, pictureBoxShip.Height);
Draw();
}
private void ButtonCreate_Click(object sender, EventArgs e)
{
Random rnd = new();
_ship = new DrawingShip();
_ship.Init(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
_ship.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxShip.Width, pictureBoxShip.Height);
toolStripStatusLabelSpeed.Text = $"Ñêîðîñòü: {_ship.Ship.Speed}";
toolStripStatusLabelWeight.Text = $"Âåñ: {_ship.Ship.Weight}";
toolStripStatusLabelBodyColor.Text = $"Öâåò: {_ship.Ship.BodyColor.Name}";
Draw();
}
}
}

View File

@ -0,0 +1,120 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
JQAAFiUBSVIk8AAAAnlJREFUeF7tmr2uaUEUx8kRIQqhQqFQakXlAUjQEInEQygVHkCotDqJDpX4KGg8
gUZUOhKF0PkO62adrHNzrzt32w777n1n5pf8swq2mfVL2LNnmEBwpACqwiIFUBUWKYCqsEgBVIVFCqAq
LFIAVWGRAqgKi6EEbDYbaDabUKvVoNfrwX6/p1e0wxACjscjFAoFsFqtYDKZfsblckGj0aB3aYPuAq7X
K2Qymd8av08+n4fb7UZXvBfdBbRaLWbT98nlcnA+n+mq96G7gGg0ymyYlXg8Drvdjq58D7oL8Pv9zGb/
lkgkAtvtlq5+Hd0FOJ1OZqNKCQaDsFwu6RNe4ykB6/UaSqUSJBIJCIfDEAqFXs7HxwezyUcJBAIwn89p
Zt9HtYDhcPh5W2JNRq94PB6YTCY0w++hSsB0OgWHw8GchN7Br9B4PKaZPo8qAalUijm4UWK326HT6dBs
n+OhgMvlAjabjTmwkWKxWKBer9Os1fNQwGq1Yg5oxJjNZqhWqzRzdTwUsFgsmIMZNSgBH6jUwp0AjNfr
hcPhQB0ow6UATLfbpQ6U4VZAuVymDpThVkClUqEOlOFWQL/fpw6U4VKAz+f73GVSA3cC8DaImyxqeShA
+IUQLoVxrc0a0EjRbCmMpNNp5qBGiaYPQ8hsNhP7cRgZjUbgdruZk9Ar/2xD5As8ucEVVjKZFG9LTCv+
q01RLRB+WzwWizEbZYXLg5F2u81s9j7cHo3h4Wg2m2U2/RWuD0eR0+kExWLxj+NxvO1yfzz+K/jjhl8J
/IPEYDBQva31CoYSoAdSAFVhkQKoCosUQFVYpACqwiIFUBUWKYCqsEgBVAUF4Ad9YZwDE2SIxgAAAABJ
RU5ErkJggg==
</value>
</data>
<data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
JQAAFiUBSVIk8AAAArJJREFUeF7tmr2uqUEUhgkRohCqTaFQakXlAkjQEInERSgVLkDsSquT6FCJn4LG
FWhEpSNRCJ3/sE6WjOLkrMg+83dO8s2TvJnCzJq1nmQn2/exgcUxAthqWYwAtloWI4CtlsUIYKtl+ScC
zuczDAYDqNfr8P39DaPRCC6XC/tUL9oFdDodCAaDYLPZfksoFIJut8t26UOrgEajAXa7/Y/h38HPcI9O
tAlotVofh38H9+BeXWgR0O/3wel0kgNTwb14RgfKBcxmM/B4POSgn4Jn8KxqlAqYz+fg8/nIAX8SPIs1
VKJMwGq1gq+vL3KwvwnWwFqqUCJgs9lAJBIhB+IJ1sKaKpAu4HA4QDQaJQcRCdbE2rKRKuB4PEIikSAH
kBGsjXfIRJqA2+0G6XSabFxm8A68SxZSBDyfTyiVSmTDKoJ34Z0ykCKgXC6TjaoM3ikDYQHtdptsUEfw
blGEBJxOJ/D7/WRzOhIIBF5frUUQEjAcDsnGdGY8HrNu+BAS0Gw2yaZ0BnsQQUgAPtygmtKZXq/HuuFD
SMB+vweXy0U2piN4t+h/h0ICkEqlQjanI9VqlXXBj7AAfJhZKBTIBlWmWCzC9XplXfAjLAB5PB6vB5rJ
ZBLC4fDre7zD4SAb5wnWwppYO5VKvf7u8U4ZSBFAEYvFyGF4grVUYQSwVTpGgBFgBJDD8MQIMAKMAFZV
PkYAW6VjBBgBRgA5DE+MACPACGBV5aNMQDweJ4fhCdZShTIBmUyGHIYn2WyWVZWPMgG1Wo0chif4i1JV
KBOw2+2kvDfE93/4/kEVygQgk8kEvF4vOdhPgmen0ymrpgalApDFYgG5XA7cbjc5JBX8jWA+n4flcsmq
qEO5gDf3+x222y2s1+uPwT24VxfaBPyvGAFstSxGAFstixHAVsticQEAvwDQzJwDPf7RTAAAAABJRU5E
rkJggg==
</value>
</data>
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW
JQAAFiUBSVIk8AAAArtJREFUeF7tmrtqakEUhg0RUSxEq2hhYWkrVj5ABLVJEIQ8hGWKPICYytZOSKdW
wUuhjU9gI6nSJWARtIsaRVf4ZQ4cOIugc8uBPR/8TOHMmrU+CMS99ZHHcQLE6lmcALF6FidArJ7FCRCr
cXa7Hc3nc3p7e/sx2IO9tjAu4OXlhW5vbykUCpHP5zspwWCQbm5uaDabiSrmMCpgPB5TOBxmhzwlODsa
jUQ1MxgTsFgsKBaLsYOdk2g0Sh8fH6KqfowJqNfr7EAyqdVqoqp+jAkolUrsMDIpFouiqn6MCchms+ww
MkEtUxgTkMlk2GFkglqmcALEqh0nwAlwAthhZOIEOAFOgKiqHydArNpxApwAJ4AdRiZOgBPgBIiq+tEi
YL/fU7fbpXw+T8lkkiKRCF1eXrLDyAS1UBO1r6+vqdPpHO/UgbKAr68vqlQqbOMmUy6XabPZiC7kURbw
8PDANmgj9/f3ogt5lAQsl0sKBAJsczaCu/H+QQUlAfi75xqzmXa7LbqRQ0lAs9lkm7IZ9KCCkoDhcMg2
ZTP9fl90I4eSgPV6reX9n2zw3nC1Wolu5FASAJ6entjmbAR3q6IsAFSrVbZBk8GdOtAi4HA40N3dHduo
ieAu3KkDLQLAdrulQqHANqwzuAN36UKbAPD5+Um5XI5tXEdQG3foRKsAgP8O0+k0O4BKUBO1daNdAHh/
f6dUKsUOIhPUQk0TGBEAXl9f6erqih3onKAGapnCmAAwnU6P3+O5wU4JzqKGSYwKAJPJ5KzfCP4JzuCs
aYwLAM/Pz+T3+9lBuWAvztjAigDQarXo4uKCHfjvYA/22sKaANBoNH6UgM+wxyZWBQA80EwkEv8MH4/H
lR9uyGBdAMDDzMFgQI+Pj8dflPZ6veNX69/gVwT8TzgBYvUsToBYPYsTIFbP4gSI1aMQfQNT7JwDjVti
aQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>47</value>
</metadata>
</root>

View File

@ -11,7 +11,7 @@ namespace ContainerShip
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
Application.Run(new FormShip());
}
}
}

View File

@ -0,0 +1,73 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ContainerShip.Properties {
using System;
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ContainerShip.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap RightArrow {
get {
object obj = ResourceManager.GetObject("RightArrow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -117,4 +117,8 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="RightArrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RightArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B