diff --git a/AirBus/images/KeyDown.jpg b/AirBus/images/KeyDown.jpg new file mode 100644 index 0000000..d636d38 Binary files /dev/null and b/AirBus/images/KeyDown.jpg differ diff --git a/AirBus/images/KeyLeft.jpg b/AirBus/images/KeyLeft.jpg new file mode 100644 index 0000000..dd31cce Binary files /dev/null and b/AirBus/images/KeyLeft.jpg differ diff --git a/AirBus/images/KeyRight.jpg b/AirBus/images/KeyRight.jpg new file mode 100644 index 0000000..e24b05b Binary files /dev/null and b/AirBus/images/KeyRight.jpg differ diff --git a/AirBus/images/KeyUp.jpg b/AirBus/images/KeyUp.jpg new file mode 100644 index 0000000..046f5d5 Binary files /dev/null and b/AirBus/images/KeyUp.jpg differ diff --git a/Airbus.sln b/Airbus.sln new file mode 100644 index 0000000..8ca6d74 --- /dev/null +++ b/Airbus.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33530.505 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirBus", "AirBus\AirBus.csproj", "{97F3FB83-880E-4D1D-B941-1FB2F9B5C747}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {97F3FB83-880E-4D1D-B941-1FB2F9B5C747}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97F3FB83-880E-4D1D-B941-1FB2F9B5C747}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97F3FB83-880E-4D1D-B941-1FB2F9B5C747}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97F3FB83-880E-4D1D-B941-1FB2F9B5C747}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {68EF553D-50EC-43AA-B0A4-B69F4A00F3FD} + EndGlobalSection +EndGlobal diff --git a/Airbus/Airbus.csproj b/Airbus/Airbus.csproj new file mode 100644 index 0000000..13ee123 --- /dev/null +++ b/Airbus/Airbus.csproj @@ -0,0 +1,26 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + \ No newline at end of file diff --git a/Airbus/Direction.cs b/Airbus/Direction.cs new file mode 100644 index 0000000..a8f3c2a --- /dev/null +++ b/Airbus/Direction.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AirBus +{ + public enum Direction + { + Up = 1, + Down = 2, + Left = 3, + Right = 4 + } +} diff --git a/Airbus/DrawningAirbus.cs b/Airbus/DrawningAirbus.cs new file mode 100644 index 0000000..f25fd07 --- /dev/null +++ b/Airbus/DrawningAirbus.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Headers; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace AirBus +{ + public class DrawningAirBus + { + public EntityAirBus? EntityAirBus { get; private set; } + + // ширина и высота картинки + private int pictureWidht; + private int pictureHeight; + + // стартовые точки + private int startPosX; + private int startPosY; + + private readonly int airbusWidth = 100; + private readonly int airbusHeight = 37; + + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, int width, int height) + { + pictureWidht = width; + pictureHeight = height; + + EntityAirBus = new EntityAirBus(); + EntityAirBus.Init(speed, weight, bodyColor, additionalColor); + return true; + } + + //установка позиции + public void SetPosition(int x, int y) + { + if (x >= 0 && x + airbusWidth <= pictureWidht && y >= 0 && y + airbusHeight <= pictureHeight) + { + startPosX = x; + startPosY = y; + } + } + + // изменение направления движения + public void MoveTransport(Direction direction) + { + if (EntityAirBus == null) + { + return; + } + switch (direction) + { + case Direction.Left: + if (startPosX - EntityAirBus.Step > 0) + { + startPosX -= (int)EntityAirBus.Step; + } + break; + case Direction.Right: + if (startPosX + EntityAirBus.Step <= pictureWidht) + { + startPosX += (int)EntityAirBus.Step; + } + break; + case Direction.Up: + if (startPosY - EntityAirBus.Step > 0) + { + startPosY -= (int)EntityAirBus.Step; + } + break; + case Direction.Down: + if (startPosY + EntityAirBus.Step <= pictureHeight) + { + startPosY += (int)EntityAirBus.Step; + } + break; + } + } + + // РИСОВАНИЕ САМОЛЁТА + public void DrawTransport(Graphics g) + { + if ( startPosX < 0 || startPosY < 0 || EntityAirBus == null) + { + return; + } + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(EntityAirBus.AdditionalColor); + Brush additionalBrush2 = new SolidBrush(Color.Black); + + // нос + Point point1 = new Point(startPosX + 74, startPosY + 15); + Point point2 = new Point(startPosX + 88, startPosY + 22); + Point point3 = new Point(startPosX + 74, startPosY + 27); + Point[] PointsNose = { point1, point2, point3 }; + + g.DrawPolygon(pen, PointsNose); + g.FillPolygon(additionalBrush, PointsNose); + + // хвост + Point point4 = new Point(startPosX + 4, startPosY + 17); + Point point5 = new Point(startPosX + 3, startPosY); + Point point6 = new Point(startPosX + 21, startPosY + 17); + + Point[] PointsTail = { point4, point5, point6 }; + g.DrawPolygon(pen, PointsTail); + g.FillPolygon(additionalBrush, PointsTail); + + // тело + g.DrawRectangle(pen, startPosX + 2, startPosY + 14, 72, 14); + g.FillRectangle(additionalBrush, startPosX + 2, startPosY + 14, 72, 14); + + //шасси + g.DrawEllipse(pen, startPosX + 21, startPosY + 30, 3, 3); + g.FillEllipse(additionalBrush, startPosX + 21, startPosY + 30, 3, 3); + + g.DrawEllipse(pen, startPosX + 25, startPosY + 30, 3, 3); + g.FillEllipse(additionalBrush, startPosX + 25, startPosY + 30, 3, 3); + + g.DrawEllipse(pen, startPosX + 70, startPosY + 30, 3, 3); + g.FillEllipse(additionalBrush, startPosX + 70, startPosY + 30, 3, 3); + + // Крыло + g.DrawEllipse(pen, startPosX + 24, startPosY + 20, 31, 4); + g.FillEllipse(additionalBrush, startPosX + 24, startPosY + 20, 31, 4); + + + // у хвоста + g.DrawEllipse(pen, startPosX, startPosY + 14, 14, 5); + g.FillEllipse(additionalBrush, startPosX, startPosY + 14, 14, 5); + + } + + public void ChangeBorders(int width, int height) + { + pictureWidht = width; + pictureHeight = height; + if (pictureWidht <= airbusWidth || pictureHeight <= airbusWidth) + { + pictureWidht = null; + pictureHeight = null; + return; + } + if ( startPosX + airbusWidth > pictureWidht) + { + startPosX = pictureWidht.Value - airbusWidth; + } + if ( startPosY + airbusHeight > pictureHeight) + { + startPosY = pictureHeight.Value - airbusHeight; + } + } + } +} diff --git a/Airbus/EntityAirbus.cs b/Airbus/EntityAirbus.cs new file mode 100644 index 0000000..005e64d --- /dev/null +++ b/Airbus/EntityAirbus.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AirBus +{ + public class EntityAirBus + { + // Скорость + public int Speed { get; private set; } + + // Вес + public double Weight { get; private set; } + + // основной цвет + public Color BodyColor { get; private set; } + + // доп. цвет + public Color AdditionalColor { get; private set; } + + // наличие доп отсека для пассажиров + public bool IsCompartment { get; private set; } + + // наличие доп двигателей + public bool IsAdditionalEngine { get; private set; } + + // шаг перемещения + public double Step => (double)Speed * 100 / Weight; + + public void Init (int speed, double weight, Color bodyColor, Color additionalColor, bool isCompartment, bool isAdditionalEngine) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + IsCompartment = isCompartment; + IsAdditionalEngine = isAdditionalEngine; + } + } +} diff --git a/Airbus/FormAirbus.Designer.cs b/Airbus/FormAirbus.Designer.cs new file mode 100644 index 0000000..47253cb --- /dev/null +++ b/Airbus/FormAirbus.Designer.cs @@ -0,0 +1,145 @@ +namespace Airbus +{ + partial class FormAirbus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAirbus)); + pictureAirbus = new PictureBox(); + buttonUp = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + buttonCreate = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureAirbus).BeginInit(); + SuspendLayout(); + // + // pictureAirbus + // + pictureAirbus.Dock = DockStyle.Fill; + pictureAirbus.Location = new Point(0, 0); + pictureAirbus.Name = "pictureAirbus"; + pictureAirbus.Size = new Size(800, 450); + pictureAirbus.SizeMode = PictureBoxSizeMode.AutoSize; + pictureAirbus.TabIndex = 0; + pictureAirbus.TabStop = false; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage"); + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.FlatAppearance.BorderColor = Color.Black; + buttonUp.FlatAppearance.BorderSize = 7; + buttonUp.Location = new Point(679, 313); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(48, 44); + buttonUp.TabIndex = 1; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage"); + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.FlatAppearance.BorderColor = Color.Black; + buttonLeft.FlatAppearance.BorderSize = 7; + buttonLeft.Location = new Point(630, 358); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(48, 44); + buttonLeft.TabIndex = 2; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage"); + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.FlatAppearance.BorderColor = Color.Black; + buttonDown.FlatAppearance.BorderSize = 7; + buttonDown.Location = new Point(679, 358); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(48, 44); + buttonDown.TabIndex = 3; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage"); + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.FlatAppearance.BorderColor = Color.Black; + buttonRight.FlatAppearance.BorderSize = 7; + buttonRight.Location = new Point(728, 358); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(48, 44); + buttonRight.TabIndex = 4; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 387); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(81, 51); + buttonCreate.TabIndex = 5; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // FormAirbus + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(buttonCreate); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonUp); + Controls.Add(pictureAirbus); + Name = "FormAirbus"; + Text = "FormAirbus"; + ((System.ComponentModel.ISupportInitialize)pictureAirbus).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureAirbus; + private Button buttonUp; + private Button buttonLeft; + private Button buttonDown; + private Button buttonRight; + private Button buttonCreate; + } +} \ No newline at end of file diff --git a/Airbus/FormAirbus.cs b/Airbus/FormAirbus.cs new file mode 100644 index 0000000..81cab01 --- /dev/null +++ b/Airbus/FormAirbus.cs @@ -0,0 +1,63 @@ +namespace Airbus +{ + public partial class FormAirbus : Form + { + + // поле-объект для прористовки самолёта + private DrawningAirbus? _drawningAirbus; + public FormAirbus() + { + InitializeComponent(); + } + + // прорисовка самолёта + private void Draw() + { + if (_drawningAirbus == null) + { + return; + } + Bitmap bmp = new(pictureAirbus.Width, pictureAirbus.Height); + Graphics g = Graphics.FromImage(bmp); + _drawningAirbus.DrawTransport(g); + pictureAirbus.Image = bmp; + } + + // кнопка "Создать" + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new Random(); + _drawningAirbus = new DrawningAirbus(); + _drawningAirbus.Init(random.Next(100, 300), random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), + pictureAirbus.Width, pictureAirbus.Height); + + _drawningAirbus.SetPosition(random.Next(10,100), random.Next(10,100)); + Draw(); + + } + + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawningAirbus == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawningAirbus.MoveTransport(Direction.Up); break; + case "buttonDown": + _drawningAirbus.MoveTransport(Direction.Down); break; + case "buttonLeft": + _drawningAirbus.MoveTransport(Direction.Left); break; + case "buttonRight": + _drawningAirbus.MoveTransport(Direction.Right); break; + } + Draw(); + } + } +} \ No newline at end of file diff --git a/Airbus/FormAirbus.resx b/Airbus/FormAirbus.resx new file mode 100644 index 0000000..c02d9d9 --- /dev/null +++ b/Airbus/FormAirbus.resx @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QC2RXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAAB + AAAAJgAAAAAAAZKGAAcAAAB0AAAAOAAAAABDAFIARQBBAFQATwBSADoAIABnAGQALQBqAHAAZQBnACAA + dgAxAC4AMAAgACgAdQBzAGkAbgBnACAASQBKAEcAIABKAFAARQBHACAAdgA2ADIAKQAsACAAcQB1AGEA + bABpAHQAeQAgAD0AIAA2ADAACgAAAAAA/9sAQwACAQECAQECAgICAgICAgMFAwMDAwMGBAQDBQcGBwcH + BgcHCAkLCQgICggHBwoNCgoLDAwMDAcJDg8NDA4LDAwM/9sAQwECAgIDAwMGAwMGDAgHCAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAJQAeAwEiAAIRAQMR + Af/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE + EQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElK + U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC + w8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB + AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkj + M1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 + eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm + 5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/foyAV+W/wDwcCf8F67r/gnLeaL8NfhJcaDq3xfu5INU + 1g38BvLPw7pwYOkc6Ky/v7rGAm7ckJeQ7C8DN9J/8FjP+Cp/h/8A4JV/sq3HiiRdP1bx94iMmn+DdAuJ + D/xM7wAFp5VUh/sluGV5WBXho4w6vLHX8lfxO+JviL41fEjXPGHi7WLvxB4o8TXsmparqNyR5t3cSNln + IUBV5+UKoCqoVVCqAKAP7D/+Cbf/AAUB8H/8FLv2VNE+J3hFTYtdE2OtaNLMJrjw/qUaqZrSRgBu27ld + H2r5kckbhV34HvlfyDf8Ed/+CpOvf8Eqf2rLXxXGuoap8P8AxJ5On+NNDt3G6/swx2XMKkhWurYtI8WS + N4aWIsglLr/W18Lvil4f+Nnw40Pxd4T1a017w34lsYtS0zULVt0V3byqGR1zg8gjggEHggEEUAflx/wU + 9/4NsvHX/BTH9r7W/idrf7R1vpen3EcVjoWiS+CWu4/D9jGMi3jcX8YbMhkkZ9ql2kJ4AAH87/xf8AN8 + Jfi94u8JSXi6hJ4T12+0VrpYvJF0bW4kgMoTcxXd5e7aWbGcFjjNf3DV/E7+2N/yeN8YP+x717/05XH+ + f8mgD1z/AIJF/wDBMu6/4Kw/tQ6x8M7Pxtb+AZNJ8LXXic6lLo51RZhDd2Vt5HlLPBjd9sDbtxx5ZG07 + sr/R9/wRn/4Ji+Nv+CVvwX8ReAPEHxkb4peFbu/TUPD9h/wj7aWnhp38xrtY2a5nLRzyMknljYiSLK4B + aZzX45/8Ge3H/BUzxi3b/hVWqf8Ap30Wv6VKACvye+L/APwaLfA/4ufFrxT4um+J3xg0648Vazd6zNa2 + 9xprQ20tzO80iIWtC20M5xuJIGASTzRRQB7b/wAEvv8Ag3++GP8AwSt/aC1j4i+D/GnxD8Ta1q/h+bw4 + 0GuTWRtYreW5triRwsNtGxk32sQB3YC78qSQV+9KKKAP/9k= + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QC2RXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAAB + AAAAJgAAAAAAAZKGAAcAAAB0AAAAOAAAAABDAFIARQBBAFQATwBSADoAIABnAGQALQBqAHAAZQBnACAA + dgAxAC4AMAAgACgAdQBzAGkAbgBnACAASQBKAEcAIABKAFAARQBHACAAdgA2ADIAKQAsACAAcQB1AGEA + bABpAHQAeQAgAD0AIAA2ADAACgAAAAAA/9sAQwACAQECAQECAgICAgICAgMFAwMDAwMGBAQDBQcGBwcH + BgcHCAkLCQgICggHBwoNCgoLDAwMDAcJDg8NDA4LDAwM/9sAQwECAgIDAwMGAwMGDAgHCAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAHgAlAwEiAAIRAQMR + Af/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE + EQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElK + U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC + w8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB + AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkj + M1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 + eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm + 5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/fqQ4Wvkr/gqf/wWM+FX/BKv4frJ4ouD4i8fataNcaB4 + N0+dVvtT5ZFmmYgi1tN6kNO4I+SQRpK6+XXzZ/wXr/4OBJv+CcuqXHwk+GuizXfxf1bS4786xqloy6V4 + dtpy6pcRo4H2yf5H2qMwowzIzlGgb+b74m/E7xJ8aviHrHi7xhrmqeJvFHiCc3Oo6rqU7T3V3JgKC7Hn + 5VCqAuFVVVVAVQKAP6Jf+DbL/gp78X/+CmPx1/aO1v4na3DcafpcPh+XRNCsbYQ6d4fSZtTDxwA5dtwh + j3PIzM5TkgAAfrNX8PPgD4v+L/hLLeSeEvF3ivwm+oBFum0XWLjTmugm7YJDC679pdyN2cb2IxuNdJ/w + 2N8Yv+iwfFn/AMLLUv8A49/n9aAP7YqK/J7/AINFvi/4t+Ln7D/xOm8XeKfE3iq4074gS29rNrOpz6hN + bRnTbBzGskrMwXcWbbnALE4yTRQB9y/8FAf+Cbfwp/4KXfB5fCPxO0RrprEyS6NrViywat4fmcANJazF + W27tqbo3Vo5Nih0faMfzBf8ABUn/AII7/Fb/AIJU+PFj8V2v/CSfD/VLprfQ/Gmn2rLp9+2CywTpkm0u + ioJ8l2Ifa5jeQI5X+vmsD4pfC7w38bPh9q3hPxdoel+JPDevQG11DTNStluLW7jPO10YEHkAjuCARggG + gD+Rj/gmX/wSL+KH/BWHVPG1n8M9Y8BaTJ4BisJdSPifUbu0WYXhuVi8n7Paz7sfZZN24LjcuN2Tt+sv + +IPb9qYfe8Y/s/4/7GHV/wD5V1+xn/BMX/gjP4L/AOCVvxr+MniDwB4i1a78K/FI6Z9g8P6hH5snhpbQ + 3jNEt2XL3EbG7wnmKJESIB3mYl6+yKAPgv8A4N/v+CX3xB/4JW/sxeNPCHxF1jwfq+teJvFr65A3hy6u + Lm1itzZWkChpJ4IW8wvDJlQm0DadxJIUr70ooA//2Q== + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QC2RXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAAB + AAAAJgAAAAAAAZKGAAcAAAB0AAAAOAAAAABDAFIARQBBAFQATwBSADoAIABnAGQALQBqAHAAZQBnACAA + dgAxAC4AMAAgACgAdQBzAGkAbgBnACAASQBKAEcAIABKAFAARQBHACAAdgA2ADIAKQAsACAAcQB1AGEA + bABpAHQAeQAgAD0AIAA2ADAACgAAAAAA/9sAQwACAQECAQECAgICAgICAgMFAwMDAwMGBAQDBQcGBwcH + BgcHCAkLCQgICggHBwoNCgoLDAwMDAcJDg8NDA4LDAwM/9sAQwECAgIDAwMGAwMGDAgHCAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAJQAeAwEiAAIRAQMR + Af/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE + EQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElK + U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC + w8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB + AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkj + M1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 + eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm + 5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/fyv5Wv2qP8Agvj+2F4U/al+J2kaT8cda0zSdH8X6vp1 + jZwaJpPl2tvBfTRRRrutSxCoijLEk4ySTk1/VLX8Tv7Y3H7Y3xg/7HvXv/TlcUAfsj/wbMf8FWP2hv22 + P2/PFXgv4r/E7UvG3hm1+H99rcFldaZp9v5N5DqOmQpKHgt434juZlK7tp3AkEqpH7o1/NX/AMGev/KU + 7xj/ANkq1T/076LX9KlAH4G/8HMnwL/aQ/Y8+Nsnxv8Ah/8AGf41W/wj8cXMUF/ZaZ411O2t/B2p7Qix + CKKZVjtbjbmNgNqS74yV3wh/xQ1TU7rXNUur6+urm+vr6Z7m5ubmVpprmV2LPI7sSzOzEsWYkkkkkk1/ + b18afgx4X/aJ+FHiDwN420Wz8ReE/FNlJp+qadcg+XcwuMEZUhlYcFXQh0YKylWAI/kc/wCCtH/BMbxR + /wAEr/2rL7wTqv27U/B+riTUPB3iCZBt1qwDAFXZQE+1QFljmQBcEpIFVJo8gHgfwx+MfjD4G+IpdZ8D + +LvFngvWbi2aykvvDur3OmXk0DujtAZLd0dkZ442KZILIhwSox/VB/wQU/Y1+MH7Ln7KE2vfHT4i/Ebx + j8QviObfU7jRfE2v3eqR+ELZFfyLSMXEjlLllkL3DLtG7y48HyBI/wCcP/Brr/wRkb4n+J9L/af+Jmmx + t4b0K6Mnw/0q5i3f2lexNg6u6kY8qB1It+paZWl+URRNJ/QJQAV4r+3V/wAE+fhb/wAFHfhLZ+C/itoM + mtaPp2pQ6raSW909pd2k0Zw3lzRkOqyRl4nAPKSNjDBWUooA9c8MeGdN8E+G9P0bRtPsdJ0fSbaOysbG + ygW3trKCNQkcUUagKiIqhVVQAAAAABV6iigD/9k= + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QC2RXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAAB + AAAAJgAAAAAAAZKGAAcAAAB0AAAAOAAAAABDAFIARQBBAFQATwBSADoAIABnAGQALQBqAHAAZQBnACAA + dgAxAC4AMAAgACgAdQBzAGkAbgBnACAASQBKAEcAIABKAFAARQBHACAAdgA2ADIAKQAsACAAcQB1AGEA + bABpAHQAeQAgAD0AIAA2ADAACgAAAAAA/9sAQwACAQECAQECAgICAgICAgMFAwMDAwMGBAQDBQcGBwcH + BgcHCAkLCQgICggHBwoNCgoLDAwMDAcJDg8NDA4LDAwM/9sAQwECAgIDAwMGAwMGDAgHCAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAHgAlAwEiAAIRAQMR + Af/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE + EQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElK + U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrC + w8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB + AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkj + M1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 + eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm + 5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/fyiv5Wv+C+H7VPxS8K/8Fg/jhpOkfE34jaPpOmajp8F + nY6d4mvrO1tU/smybakUUqooLMzHAGSxJ5JNfIX/AA2N8Yx/zWD4s/8AhZal/wDHqAP1u+Bn/BzD42/Y + +/4KQfGf4f8AxukvvHHwjt/iP4g0yyv4Ldf7Y8HQxancQxCNVA+1WqKihoj+9RcmNn2iF/3J+DPxp8J/ + tEfC7RfG3gbxBpnijwp4it/tOnapp84lt7lMlTgjoysrIyEBkdWVgGUgfxFanql1rmqXV9fXVzfX19M9 + zc3NzK0s1zK7Fnd3YlmdmZmYsSSWYkkmvpb/AIJj/wDBWj4rf8EsPih/angm+XV/B+p3KzeIPB2oTsum + a0uArOpAJtrrYqhbiMEjYgkWZF8sgH9hVFeJf8E+f26/Cf8AwUb/AGW9B+K3guz1vT9H1p5rd7TVbUwX + FrcQuY5o9wzHKqupAkiZkOMZDBlUoA/Jr/gqv/wbN/H79tn/AIKGfE74reDPFXwgtfDPjW7s7qyg1vVt + Rtb+HytPtbdxIkVhMg+eF9pWQ5XaSFJKj59/4g9f2qP+hx/Z/wD/AAodX/8AlXX9KlFAH8PPxk+GOo/A + 34w+LvA+syWVxrHgvXr7w7fSWTvLbzXNpcyW0hhZ1V2RniO0sqsQwyqk4H7Af8EZf+DXjU/ifLpvxM/a + e0vUNC8NsiXOlfD+QtbahqWcFX1MjD28WP8Al1GJmLfvTEFaKT9Hv2N/+CC3wn/Zc/bA+I3x016ZviN8 + QvGHi7UvE+jXGp2SxWnhCO7u5bkR20G51e5Uy7TdOd2EXy0hzIH+6KAMzw74Y03wX4c0/R9H0+x0nR9J + to7KxsbO2WK2soI1CRxRRoAsaIoVVVQAAAAABRWnRQB//9k= + + + \ No newline at end of file diff --git a/Airbus/Program.cs b/Airbus/Program.cs new file mode 100644 index 0000000..618767c --- /dev/null +++ b/Airbus/Program.cs @@ -0,0 +1,17 @@ +namespace AirBus +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new FormAirBus()); + } + } +} \ No newline at end of file diff --git a/Airbus/Properties/Resources.Designer.cs b/Airbus/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9feedfc --- /dev/null +++ b/Airbus/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace AirBus.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом 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() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [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("AirBus.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Airbus/Properties/Resources.resx b/Airbus/Properties/Resources.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Airbus/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file