Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 4.25 KB | None | 0 0
  1. procedure TLab1_1.AboutprogramClick(Sender: TObject);
  2. begin
  3.     MessageDlg('This program determines whether you can vote or not based on your age.', mtInformation, [mbOk], 0);
  4. end;
  5.  
  6. procedure TLab1_1.AboutthedeveloperClick(Sender: TObject);
  7. begin
  8.     MessageDlg('This program is developed by Ilya Androsov' + #13 + 'BSUIR 2018', mtInformation, [mbOk], 0);
  9. end;
  10.  
  11. procedure TLab1_1.AgeChange(Sender: TObject);
  12. begin
  13.     Save.Enabled := false;
  14.     Result.Caption := '';
  15.     if (Length(Age.Text) > 0) then
  16.     begin
  17.        Check.Enabled := true;
  18.  
  19.     end
  20.     else
  21.        Check.Enabled := false;
  22. end;
  23.  
  24. procedure TLab1_1.AgeKeyPress(Sender: TObject; var Key: Char);
  25. var
  26.     Numerals: set of char;
  27.     I, DotPos: Byte;
  28.     IsFind: Boolean;
  29. begin
  30.     Numerals := ['0'..'9', #8];
  31.     with Sender as TEdit do
  32.     begin
  33.         if (Key = #13) and (Check.Enabled) then
  34.             CheckClick(Sender);
  35.         if not (Key in Numerals) then
  36.             Key := #0;
  37.         if (Length(Text) = 3) and (Key <> #8) then
  38.             Key := #0;
  39.         if (Length(Text) = 0) and (Key = '0') then
  40.             Key := #0;
  41.     end;
  42. end;
  43.  
  44. procedure TLab1_1.CheckClick(Sender: TObject);
  45. var
  46.     Number, MissingAge: Integer;
  47. begin
  48.     Number := strtoint(Age.Text);
  49.     if (Number > 17) then
  50.         if (Number < 150) then
  51.             Result.Caption := 'You are allowed to vote.'
  52.         else
  53.             Result.Caption := 'You can''t physically vote.'
  54.     else
  55.     begin
  56.        MissingAge := 18 - Number;
  57.        Result.Caption := 'You will be allowed to vote' + #13 + 'in ' + IntToStr(MissingAge) + ' years.';
  58.     end;
  59.     Save.Enabled := true;
  60. end;
  61.  
  62. procedure TLab1_1.ExitClick(Sender: TObject);
  63. var
  64.    ButtonSelected: Byte;
  65. begin
  66.    ButtonSelected := MessageDlg('Are you sure you want to exit?', mtConfirmation, [mbYes,mbNo], 0);
  67.    if ButtonSelected = mrYes then
  68.       Close;
  69. end;
  70.  
  71. procedure TLab1_1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  72. var
  73.     ButtonSelected: Byte;
  74. begin
  75.     ButtonSelected := MessageDlg('Are you sure you want to exit?', mtConfirmation, [mbYes,mbNo], 0);
  76.     if ButtonSelected <> mrYes then
  77.         CanClose := False;
  78. end;
  79.  
  80. procedure TLab1_1.OpenClick(Sender: TObject);
  81. var
  82.    inputFile: TextFile;
  83.    temp: double;
  84. begin
  85.    Age.Clear;
  86.    Result.Caption := '';
  87.    if OpenFile.Execute then
  88.    begin
  89.       try
  90.          AssignFile(inputFile, OpenFile.FileName);
  91.          Reset(inputFile);
  92.          if SeekEof(inputFile) then
  93.          begin
  94.             MessageDlg('This file is empty. Try again.', mtError, [mbRetry], 0);
  95.             Age.Clear;
  96.             CloseFile(inputFile);
  97.          end
  98.          else
  99.          begin
  100.             readln(inputFile, temp);
  101.             Age.Text := FloatToStr(temp);
  102.             checkClick(Sender);
  103.             CloseFile(inputFile);
  104.          end;
  105.       except
  106.          MessageDlg('Check entered data. Try again.', mtError, [mbRetry], 0);
  107.          Age.Clear;
  108.          CloseFile(inputFile);
  109.       end;
  110.    end;
  111. end;
  112.  
  113. function CheckFileName(MyFile: string): string;
  114. var
  115.    i: byte;
  116.    isCorrect: boolean;
  117. begin
  118.    isCorrect := false;
  119.    i := 1;
  120.    while  not isCorrect and (i <= length(MyFile)) do
  121.    begin
  122.       if MyFile[i] = '.' then
  123.          isCorrect := true;
  124.       inc(i);
  125.    end;
  126.    if not isCorrect then
  127.       MyFile := MyFile + '.txt';
  128.    CheckFileName := MyFile;
  129. end;
  130.  
  131. procedure TLab1_1.SaveClick(Sender: TObject);
  132. var
  133.    outputFile: TextFile;
  134.    MyFile: string;
  135.    ButtonSelected: byte;
  136. begin
  137.    if SaveFile.Execute then
  138.    begin
  139.       myFile := SaveFile.FileName;
  140.       MyFile := CheckFileName(MyFile);
  141.       if FileExists(MyFile) then
  142.       begin
  143.          ButtonSelected := MessageDlg('Do you want to rewrite the file?', mtConfirmation, [mbYes,mbNo], 0);
  144.          if ButtonSelected = mrYes then
  145.          begin
  146.             AssignFile(outputFile, MyFile);
  147.             Rewrite(outputFile);
  148.             writeln(outputFile, result.Caption);
  149.             CloseFile(outputFile);
  150.          end
  151.          else
  152.             SaveClick(Sender);
  153.       end
  154.       else
  155.       begin
  156.          AssignFile(outputFile, MyFile);
  157.          Rewrite(outputFile);
  158.          WriteLn(outputFile, result.Caption);
  159.          CloseFile(outputFile);
  160.       end;
  161.    end;
  162. end;
  163.  
  164. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement