Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus;
- type
- TForm1 = class(TForm)
- Edit1: TEdit;
- Button1: TButton;
- Label1: TLabel;
- MainMenu1: TMainMenu;
- SaveDialog1: TSaveDialog;
- OpenDialog1: TOpenDialog;
- PopupMenu1: TPopupMenu;
- File1: TMenuItem;
- Task: TMenuItem;
- Inst: TMenuItem;
- Dev: TMenuItem;
- OpenF: TMenuItem;
- SaveF: TMenuItem;
- N1: TMenuItem;
- Out: TMenuItem;
- procedure Button1Click(Sender: TObject);
- procedure Edit1KeyPress(Sender: TObject; var Key: Char);
- procedure Edit1Change(Sender: TObject);
- procedure OpenFClick(Sender: TObject);
- procedure SaveFClick(Sender: TObject);
- procedure TaskClick(Sender: TObject);
- procedure InstClick(Sender: TObject);
- procedure DevClick(Sender: TObject);
- procedure OutClick(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- const
- MAX = 50;
- var
- Form1: TForm1;
- Path: String;
- IsFileOpen: Boolean;
- implementation
- {$R *.dfm}
- Function F(Str: String): String;
- Var p: Integer;
- Begin
- p := pos('baba', Str);
- If p > 0 Then delete(Str, p, 2);
- if p = 0 then Result := Str
- Else
- Result := F(Str);
- End;
- procedure TForm1.Button1Click(Sender: TObject);
- var
- Text: String;
- begin
- Text := Edit1.Text;
- Label1.Caption := F(Text);
- Label1.Visible := True;
- end;
- procedure TForm1.DevClick(Sender: TObject);
- begin
- Application.MessageBox('Symonik Vadim, 251004', 'Developer', 0);
- end;
- procedure TForm1.Edit1Change(Sender: TObject);
- begin
- Label1.Visible := False;
- If Length(Edit1.Text) = 0 Then
- Button1.Enabled := False
- Else
- Button1.Enabled := True;
- If Length(Edit1.Text) > MAX Then
- Application.MessageBox('The maximum length of the string is 50 characters', 'Notification', 0)
- end;
- procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
- begin
- If not (Key in ['a', 'b', 'c', 'A', 'B', 'C', #8, #13]) Then
- Key := #0;
- If (Key = #13) And (Button1.Enabled = True) Then
- Button1.Click;
- end;
- procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- begin
- CanClose := MessageDlg('Do you really want to get out?', mtConfirmation, [mbYes,mbNo], 0)= IDYes
- end;
- procedure TForm1.InstClick(Sender: TObject);
- const
- Str1 = '1. Enter only the characters A, B and C.';
- Str2 = #13#10'2. The maximum string length is 50 characters.';
- Str3 = #13#10'3. When entering values from a file, they must meet the above conditions.';
- begin
- Application.MessageBox(Str1 + Str2 + Str3, 'Instruction', 0);
- end;
- Function Open() : String;
- begin
- with Form1 Do
- begin
- If SaveDialog1.Execute Then
- begin
- Path := SaveDialog1.FileName;
- IsFileOpen := True;
- end
- Else
- IsFileOpen := False;
- end;
- Open := Path;
- end;
- Function GetLineFromF(Var FileInput: TextFile): String;
- Var
- I: Integer;
- Str: String;
- IsCorrect: Boolean;
- Begin
- IsCorrect := True;
- If Not Eof(FileInput) Then
- Begin
- Try
- Read(FileInput, Str);
- Except
- MessageBox(Form1.Handle, PChar('Invalid data'), 'Error', MB_ICONSTOP);
- Str := '';
- IsCorrect := False;
- End;
- If Not(IsCorrect) and (Length(Str) > MAX) Then
- Begin
- MessageBox(Form1.Handle, PChar('The maximum length of the string is 50 characters'), 'Error', MB_ICONSTOP);
- Str := '';
- IsCorrect := False;
- End;
- For I := 1 to Length(Str) do
- Begin
- If (Str[I] <> 'A') And (Str[I] <> 'B') And (Str[I] <> 'C') And (Str[I] <> 'a') And (Str[I] <> 'b') And (Str[I] <> 'c') Then
- Begin
- Str := '';
- MessageBox(Form1.Handle, PChar('Invalid data'), 'Error', MB_ICONSTOP);
- End;
- End;
- End
- Else
- MessageBox(Form1.Handle, PChar('Not enough data in the file!'), 'Error', MB_ICONSTOP);
- GetLineFromF := Str;
- End;
- procedure TForm1.OpenFClick(Sender: TObject);
- var
- F: TextFile;
- begin
- If OpenDialog1.Execute Then
- Begin
- AssignFile(F, OpenDialog1.FileName);
- Try
- Try
- Reset(F);
- Edit1.Text := GetLineFromF(F);
- If (Edit1.Text <> '') Then
- Begin
- Button1.Click;
- End;
- Finally
- CloseFile(F);
- End;
- Except
- End;
- End;
- end;
- procedure TForm1.OutClick(Sender: TObject);
- begin
- Form1.Close;
- end;
- procedure TForm1.SaveFClick(Sender: TObject);
- var
- F: TextFile;
- begin
- Path := Open;
- If IsFileOpen Then
- Begin
- AssignFile(F, Path);
- Rewrite(F);
- Writeln(F, Label1.Caption);
- Application.MessageBox('The data was saved successfully', 'Saving', 0);
- CloseFile(F);
- End;
- end;
- procedure TForm1.TaskClick(Sender: TObject);
- const
- Str1 = 'The string of characters consists of the letters A, B and C.';
- Str2 = #13#10'Remove one pair of BA from the sequence of BABA.';
- begin
- Application.MessageBox(Str1 + Str2, 'Task', 0);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement