Advertisement
venik2405

Form1_2

Feb 1st, 2021
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.29 KB | None | 0 0
  1. unit LabForm1_2;
  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.StdCtrls, Vcl.Menus;
  8.  
  9. type
  10.   TMainForm = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     InputNumber: TEdit;
  14.     CalculateButton: TButton;
  15.     OutputLabel: TLabel;
  16.     OpenDialog: TOpenDialog;
  17.     SaveDialog: TSaveDialog;
  18.     MainMenu: TMainMenu;
  19.     FileMenu: TMenuItem;
  20.     OpenFile: TMenuItem;
  21.     SaveInFile: TMenuItem;
  22.     Procedure Calculate(Num: Integer);
  23.     procedure CalculateButtonClick(Sender: TObject);
  24.     procedure OpenFileClick(Sender: TObject);
  25.     procedure SaveInFileClick(Sender: TObject);
  26.     procedure FileMenuClick(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.   public
  30.     { Public declarations }
  31.   end;
  32.  
  33. var
  34.   MainForm: TMainForm;
  35.  
  36. implementation
  37.  
  38. {$R *.dfm}
  39.  
  40. Procedure TMainForm.Calculate(Num: Integer);
  41. Var
  42.     Comp, I: Integer;
  43. Begin
  44.     Comp:=1;
  45.     for I := 2 to 2 * Num do
  46.         if I mod 2 = 0 then
  47.             Comp := Comp * I;
  48.     Outputlabel.Caption := 'Произведение: ' + IntToStr(Comp);
  49. End;
  50.  
  51. procedure TMainForm.CalculateButtonClick(Sender: TObject);
  52. Var
  53.     IsCorrect: Boolean;
  54. begin
  55.     IsCorrect := True;
  56.     if ((StrToInt(InputNumber.Text) < 1) or (StrToInt(InputNumber.Text) > 9)) then
  57.     begin
  58.         IsCorrect := false;
  59.         MessageDlg('Введите натуральное число в диапозоне от 1 до 9', mtError, [mbOk], 0);
  60.     end;
  61.     if (IsCorrect = true) then
  62.     Begin
  63.         Try
  64.             Calculate(StrToInt(InputNumber.Text));
  65.         Except
  66.             MessageDlg('Введите натуральное число', mtError, [mbOk], 0);
  67.         End;
  68.     End;
  69. end;
  70.  
  71. function CheckFile(Path: String): Boolean;
  72. var
  73.     FileToCheck: TextFile;
  74.     N: Integer;
  75. begin
  76.     AssignFile(FileToCheck, Path);
  77.     Reset(FileToCheck);
  78.     CheckFile := true;
  79.     try
  80.         Readln(FileToCheck, N);
  81.         if (N < 1) or (N > 9) then
  82.             CheckFile := false;
  83.     except
  84.         CheckFile := false;
  85.     end;
  86.     CloseFile(FileToCheck);
  87. end;
  88.  
  89. procedure TMainForm.OpenFileClick(Sender: TObject);
  90. var
  91.     InputFile: TextFile;
  92.     N: Integer;
  93. begin
  94.     if OpenDialog.Execute then
  95.     begin
  96.         if CheckFile(OpenDialog.FileName) then
  97.         begin
  98.             AssignFile(InputFile, OpenDialog.FileName);
  99.             Reset(InputFile);
  100.             Read(InputFile, N);
  101.             InputNumber.Text := IntToStr(N);
  102.             CloseFile(InputFile);
  103.             ShowMessage('Данные из файла успешно загружены');
  104.  
  105.         end
  106.         else
  107.             ShowMessage('Данные в файле некорректны');
  108.     end;
  109. end;
  110.  
  111. procedure TMainForm.FileMenuClick(Sender: TObject);
  112. begin
  113.     SaveInFile.Enabled := NOT (OutputLabel.Caption = '');
  114. end;
  115.  
  116. procedure TMainForm.SaveInFileClick(Sender: TObject);
  117. var
  118.     OutputFile: TextFile;
  119. begin
  120.     if SaveDialog.Execute then
  121.     begin
  122.         AssignFile(OutputFile, SaveDialog.FileName);
  123.         Rewrite(OutputFile);
  124.         Write(OutputFile, MainForm.OutputLabel.Caption);
  125.         CloseFile(OutputFile);
  126.         ShowMessage('Успешно сохранено');
  127.     end;
  128. end;
  129.  
  130. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement