Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit DeleteRecord;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
- Vcl.Grids, Vcl.StdCtrls;
- type
- TDeleteRec = class(TForm)
- ImageHelp: TImage;
- Table: TStringGrid;
- BtDelAll: TButton;
- procedure ImageHelpClick(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure FormCreate(Sender: TObject);
- procedure BtDelAllClick(Sender: TObject);
- procedure TableMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- DeleteRec: TDeleteRec;
- RecToDel: Integer;
- implementation
- {$R *.dfm}
- uses MainForm, ViewRecord;
- procedure TDeleteRec.BtDelAllClick(Sender: TObject);
- var
- i: Integer;
- begin
- if (Application.MessageBox('Are you sure that you want to delete all the records?','Record delete', MB_OKCANCEL) = mrOk) then
- begin
- BtDelAll.Enabled := False;
- for i := 1 to Table.RowCount - 1 do
- Table.Rows[i].Clear;
- Table.RowCount := 1;
- MainForm.Bufer := nil;
- MainProgMenu.DelRec.Enabled := False;
- MainProgMenu.View.Enabled := False;
- Table.Height := 2 * DeleteRec.Table.DefaultRowHeight;
- DeleteRec.Height := Table.Height + 120;
- end;
- end;
- procedure DeleteRow(ARow: Integer; var Table: TStringGrid; var Bufer: MainForm.TArr);
- var
- i: Integer;
- Arr: MainForm.TArr;
- begin
- for i := ARow to Table.RowCount-1 do
- Table.Rows[i].Clear;
- Table.RowCount := Table.RowCount - 1;
- SetLength(Arr, Table.RowCount - 1);
- for i := ARow to Table.RowCount-1 do
- begin
- Arr[i-1] := Bufer[i];
- Table.Cells[0,i] := Bufer[i].Surname;
- Table.Cells[1,i] := Bufer[i].Name;
- Table.Cells[2,i] := Bufer[i].Patronymic;
- Table.Cells[3,i] := IntToStr(Bufer[i].Group);
- Table.Cells[4,i] := IntToStr(Bufer[i].Number);
- Table.Cells[5,i] := Bufer[i].DateOfBirth;
- Table.Cells[6,i] := Bufer[i].Sex;
- end;
- for i := 0 to ARow - 2 do
- Arr[i] := Bufer[i];
- SetLength(Bufer, Length(Arr));
- Bufer := Arr;
- end;
- procedure TDeleteRec.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- begin
- if (Application.MessageBox('Would you like to close the window?',
- 'Program closing', MB_OKCANCEL) = mrOk) then
- CanClose := true
- else
- CanClose := false;
- end;
- procedure TDeleteRec.FormCreate(Sender: TObject);
- var
- i: Integer;
- begin
- Table.Cells[0, 0] := 'Surname';
- Table.Cells[1, 0] := 'Name';
- Table.Cells[2, 0] := 'Patronymic';
- Table.Cells[3, 0] := 'Group';
- Table.Cells[4, 0] := 'Daybook number';
- Table.Cells[5, 0] := 'Date of birth';
- Table.Cells[6, 0] := 'Sex';
- end;
- procedure TDeleteRec.ImageHelpClick(Sender: TObject);
- begin
- Application.MessageBox('Click on the row and confirm deleting.','Help information', MB_OK);
- end;
- procedure TDeleteRec.TableMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- var
- ACol, ARow: Integer;
- begin
- if Button = mbLeft then
- begin
- Table.MouseToCell(x, y, ACol, ARow);
- if (ARow > 0) then
- if (Application.MessageBox('Are you sure?','Record delete', MB_OKCANCEL) = mrOk) then
- begin
- if Table.RowCount > 1 then
- ViewRec.BtSave.Enabled := True;
- DeleteRow(ARow, Table, MainForm.Bufer);
- Table.Height := Table.RowCount * DeleteRec.Table.DefaultRowHeight + 15;
- DeleteRec.Height := Table.Height + 135;
- if Table.RowCount = 1 then
- begin
- BtDelAll.Enabled := False;
- MainProgMenu.DelRec.Enabled := False;
- MainProgMenu.View.Enabled := False;
- MainProgMenu.Input.Enabled := True;
- end;
- end;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement