Advertisement
THOMAS_SHELBY_18

6,1 delphi

Mar 22nd, 2024
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. unit MainUnit;
  2.  
  3. interface
  4.  
  5. uses
  6. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7. Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage,
  8. Vcl.Menus;
  9.  
  10. type
  11. TMainForm = class(TForm)
  12. MainMenu: TMainMenu;
  13. ManualMenuItem: TMenuItem;
  14. AboutDevelopersMenuItem: TMenuItem;
  15. BoatTimer: TTimer;
  16. BackgroundImage: TImage;
  17. procedure FormKeyPress(Sender: TObject; var Key: Char);
  18. procedure ManualMenuItemClick(Sender: TObject);
  19. procedure AboutDevelopersMenuItemClick(Sender: TObject);
  20. procedure BoatTimerTimer(Sender: TObject);
  21. procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  22. procedure FormCreate(Sender: TObject);
  23. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  24. private
  25. { Private declarations }
  26. public
  27. { Public declarations }
  28. end;
  29.  
  30. var
  31. MainForm: TMainForm;
  32. BoatBitmap: TBitmap;
  33. X, Speed: Integer;
  34.  
  35. implementation
  36.  
  37.  
  38. const
  39. kW = #87;
  40. kS = #83;
  41.  
  42. {$R *.dfm}
  43.  
  44. procedure TMainForm.AboutDevelopersMenuItemClick(Sender: TObject);
  45. begin
  46. MessageBox(Handle, 'Разработчик: Наривончик Александр Михайлович, гр. 351004', 'О разработчике', MB_OK Or MB_ICONINFORMATION);
  47. end;
  48.  
  49. procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
  50. begin
  51. BoatBitmap.Free;
  52. end;
  53.  
  54. procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  55. begin
  56. CanClose := MessageBox(Handle, 'Вы действительно хотите выйти?', 'Вы уверены?', MB_YESNO Or MB_ICONQUESTION) = IDYES;
  57. end;
  58.  
  59. procedure TMainForm.FormCreate(Sender: TObject);
  60. begin
  61. BoatBitmap := TBitmap.Create;
  62. BoatBitmap.LoadFromFile('boatBMP.bmp');
  63. BackgroundImage.Canvas.Draw(10, 80, BoatBitmap);
  64.  
  65. X := 10;
  66. Speed := 3;
  67. end;
  68.  
  69. procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
  70. begin
  71. case Key of
  72. kW: Inc(Speed);
  73. kS: if Speed > 0 then Dec(Speed);
  74. end;
  75. end;
  76.  
  77. procedure TMainForm.ManualMenuItemClick(Sender: TObject);
  78. begin
  79. MessageBox(Handle, 'Программа создает анимацию движения катера:' + #13#10 + '1. Нажмите клавишу "W", чтобы увеличить скорость парусника' + #13#10 + '2. Нажмите клавишу "S", чтобы уменьшить скорость парусника', 'Инструкция', MB_OK Or MB_ICONINFORMATION);
  80. end;
  81.  
  82. procedure TMainForm.BoatTimerTimer(Sender: TObject);
  83. begin
  84. if X > BackgroundImage.Width then
  85. X := -BoatBitmap.Width;
  86. X := X + Speed;
  87. BackgroundImage.Canvas.Draw(X, 80, BoatBitmap);
  88. end;
  89.  
  90. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement