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;
- Label2: TLabel;
- MainMenu1: TMainMenu;
- N1: TMenuItem;
- N2: TMenuItem;
- Label3: TLabel;
- N3: TMenuItem;
- procedure Button1Click(Sender: TObject);
- procedure N2Click(Sender: TObject);
- procedure N1Click(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure Edit1Change(Sender: TObject);
- procedure Edit1KeyPress(Sender: TObject; var Key: Char);
- procedure N3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- uses Unit2;
- procedure TForm1.Button1Click(Sender: TObject);
- Const
- STEP = 30;
- CORRECTION = 1;
- SCREEN_CORRECTION = 50;
- begin
- Form2.Width := STEP * Length(Edit1.Text) + CORRECTION;
- Form2.Height := Screen.Height - SCREEN_CORRECTION;
- Form2.Position := poDesktopCenter;
- Form2.ShowModal;
- end;
- procedure TForm1.N1Click(Sender: TObject);
- begin
- Application.MessageBox('Арефин Владислав гр.251004', 'Разрабочик', 0);
- end;
- procedure TForm1.N2Click(Sender: TObject);
- Const
- STR1 = 'После нажатия на кнопку Вы увидите новое окно с разноцветными столбцами, в каждом из которых ';
- STR2 = 'записан один символ из вашей строки. Уникальных цветов для столбцов всего 8. С этой переодичностью они повторяются.';
- STR4 = 'Диапазон длины текста: 6...64 символов.';
- STR3 = 'При нажатии Enter осуществляется сдвиг цвета столбцов.';
- begin
- Application.MessageBox(STR1 + STR2 + #10#13 + STR3 + #10#13 + STR4, 'Инструкция', 0);
- end;
- procedure TForm1.N3Click(Sender: TObject);
- begin
- Application.MessageBox('Если поперемещать форму по экрану, скрывая ее за границами экрана (особенно вертикально), то столбцы "сломаются" и получится красивая картинка.', 'Инструкция', 0);
- end;
- procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- begin
- CanClose := MessageBox(Form1.Handle, 'Вы уверены, что хотите выйти?', 'Выход', MB_YESNO + MB_ICONQUESTION)=ID_YES;
- end;
- procedure TForm1.Edit1Change(Sender: TObject);
- Const
- MIN = 5; //не меньше 6 символов надо
- MAX = 65; // не больше 64
- begin
- Button1.Enabled := (Length(Edit1.Text) > MIN) and (Length(Edit1.Text) < MAX);
- end;
- procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
- begin
- If (Key = #13) and (Button1.Enabled) then
- Button1.Click;
- end;
- end.
- unit Unit2;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
- System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids;
- type
- TArr = Array Of TColor;
- TForm2 = class(TForm)
- procedure FormCreate(Sender: TObject);
- procedure FormPaint(Sender: TObject);
- procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form2: TForm2;
- Arr: TArr;
- I: Integer;
- implementation
- uses Unit1;
- {$R *.dfm}
- procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- I := 0;
- end;
- procedure TForm2.FormCreate(Sender: TObject);
- begin
- SetLength(Arr, 15);
- Arr[0] := ClRed;
- Arr[1] := ClBlue;
- Arr[2] := ClTeal;
- Arr[3] := ClWhite;
- Arr[4] := ClYellow;
- Arr[5] := ClAqua;
- Arr[6] := ClLime;
- Arr[7] := ClFuchsia;
- Arr[8] := ClGreen;
- Arr[9] := ClMoneyGreen;
- Arr[10] := ClSkyBlue;
- Arr[11] := ClMedGray;
- Arr[12] := ClSilver;
- Arr[13] := ClGray;
- Arr[14] := ClNavy;
- I := 0;
- end;
- procedure DrawLetters(X, Y, Temp, Index: Integer);
- Const
- WIDE = 30;
- HALF_WIDE = 15;
- Begin
- If Index < Form1.Edit1.GetTextLen + 1 Then
- With Form2 do
- Begin
- Canvas.Font.Color := ClBlack;
- Canvas.Brush.Color := Arr[Temp Mod Length(Arr)];
- Canvas.FillRect(Rect(X - HALF_WIDE, 0, X + HALF_WIDE, Form2.Height));
- Canvas.TextOut(X - 7, Y, Form1.Edit1.Text[Index]);
- Inc(Temp);
- Inc(Index);
- DrawLetters(X + WIDE, Y, Temp, Index);
- End
- Else
- Begin
- Inc(I);
- End;
- End;
- procedure TForm2.FormPaint(Sender: TObject);
- Var
- X, Y, Temp : Integer;
- begin
- Canvas.Pen.Width := 4;
- Canvas.Pen.Color := ClBlack;
- Canvas.Font.Size := 15;
- X := 10;
- Y := Form2.Height div 2;
- Temp := I Mod 8;
- DrawLetters(X, Y, I, 1);
- end;
- procedure TForm2.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
- begin
- If Msg.CharCode = VK_RETURN Then // если ентер
- Begin
- Inc(I);
- Form2.OnPaint(Application);
- End;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement