Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit ChangeUnit;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, ClipBrd;
- type
- TChangeInfo = class(TForm)
- MainLabel: TLabel;
- NumLabel: TLabel;
- NumEdit: TEdit;
- ConfirmButton: TButton;
- PopupMenu: TPopupMenu;
- N1: TMenuItem;
- N2: TMenuItem;
- N3: TMenuItem;
- N4: TMenuItem;
- procedure CutClick(Sender: TObject);
- procedure CopyClick(Sender: TObject);
- procedure DeleteClick(Sender: TObject);
- procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure IntEditPress(Sender: TObject; var Key: Char);
- procedure ButtonClick(Sender: TObject);
- procedure CloseChange(Sender: TObject; var CanClose: Boolean);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- ChangeInfo: TChangeInfo;
- implementation
- {$R *.dfm}
- uses lab4_1, InfoUnit;
- procedure TChangeInfo.ButtonClick(Sender: TObject);
- var
- Temp: String;
- i: Integer;
- begin
- Temp := MainLabel.Caption;
- Temp := Copy(Temp, 41, Length(MainLabel.Caption));
- if not(NumEdit.Text = '') then
- if not(StrToInt(NumEdit.Text) > MainForm.TeamSGrid.RowCount - 1) then
- begin
- if Temp = 'изменить' then
- begin
- TeamInfo.show;
- TeamInfo.MainLabel.Caption := TeamInfo.MainLabel.Caption + ' №' + NumEdit.Text;
- TeamInfo.MainLabel.Font.Size := 10;
- TeamInfo.MainLabel.Left := TeamInfo.MainLabel.Left - (Length(TEdit(Sender).Text) + 1) * 1;
- TeamInfo.NameEdit.text := MainForm.TeamSGrid.Cells[0,StrToInt(NumEdit.Text)];
- TeamInfo.PointsEdit.text := MainForm.TeamSGrid.Cells[1,StrToInt(NumEdit.Text)];
- TeamInfo.CountryEdit.text := MainForm.TeamSGrid.Cells[2,StrToInt(NumEdit.Text)];
- TeamInfo.CoachEdit.text := MainForm.TeamSGrid.Cells[3,StrToInt(NumEdit.Text)];
- NumEdit.Text := '';
- ChangeInfo.Close;
- end;
- if Temp = 'удалить' then
- begin
- MainForm.Enabled := True;
- MainForm.TeamSGrid.Enabled := True;
- for i := StrToInt(NumEdit.Text) to MainForm.TeamSGrid.RowCount - 2 do
- begin
- MainForm.TeamSGrid.Cells[0,i]:= MainForm.TeamSGrid.Cells[0,i + 1];
- MainForm.TeamSGrid.Cells[1,i]:= MainForm.TeamSGrid.Cells[1,i + 1];
- MainForm.TeamSGrid.Cells[2,i]:= MainForm.TeamSGrid.Cells[2,i + 1];
- MainForm.TeamSGrid.Cells[3,i]:= MainForm.TeamSGrid.Cells[3,i + 1];
- end;
- MainForm.TeamSGrid.RowCount := MainForm.TeamSGrid.RowCount - 1;
- MainForm.Height := MainForm.Height - 24;
- MainForm.TeamSGrid.Height := MainForm.TeamSGrid.Height - 24;
- ChangeInfo.Close;
- MainForm.Savetofilemenu.Enabled := True;
- MainForm.TeamSGrid.Enabled := False;
- if MainForm.TeamSGrid.RowCount = 1 then
- MainForm.SaveToFileMenu.Enabled := False;
- end;
- end
- else
- Application.MessageBox('Некоректные данные в ячейке!', 'Ошибка', MB_ICONERROR)
- else
- Application.MessageBox('Заполните ячейку!', 'Ошибка', MB_ICONERROR);
- end;
- procedure TChangeInfo.CloseChange(Sender: TObject; var CanClose: Boolean);
- begin
- MainForm.Enabled := True;
- end;
- procedure TChangeInfo.CopyClick(Sender: TObject);
- begin
- ClipBoard.AsText := NumEdit.Text;
- end;
- procedure TChangeInfo.CutClick(Sender: TObject);
- begin
- ClipBoard.AsText := NumEdit.Text;
- NumEdit.Text := '';
- end;
- procedure TChangeInfo.DeleteClick(Sender: TObject);
- begin
- NumEdit.Text := '';
- end;
- function CountDigits(Num: Integer): Byte;
- var
- Answer: Byte;
- begin
- Answer := 0;
- while Num > 0 do
- begin
- Num := Num div 10;
- Inc(Answer);
- end;
- CountDigits := Answer;
- end;
- procedure TChangeInfo.IntEditPress(Sender: TObject; var Key: Char);
- begin
- if not(Key in ['0'..'9', #08]) then
- Key := #0;
- if (Length(TEdit(Sender).Text) = CountDigits(MainForm.TeamSGrid.RowCount - 1)) and not(Key = #08) then
- Key := #0;
- if (TEdit(Sender).Text = '') and (Key = '0') then
- Key := #0;
- end;
- procedure TChangeInfo.KeyDown(Sender: TObject; var Key: Word;
- Shift: TShiftState);
- begin
- TEdit(Sender).ReadOnly := (((Shift=[ssShift]) and (Key = VK_INSERT)) or (Shift=[ssCtrl]) or (Shift=[ssAlt]));
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement