Advertisement
Guest User

Untitled

a guest
Mar 12th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.93 KB | None | 0 0
  1. unit DeleteRecord;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
  8.   Vcl.Grids, Vcl.StdCtrls;
  9.  
  10. type
  11.   TDeleteRec = class(TForm)
  12.     ImageHelp: TImage;
  13.     Table: TStringGrid;
  14.     BtDelAll: TButton;
  15.     procedure ImageHelpClick(Sender: TObject);
  16.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  17.     procedure FormCreate(Sender: TObject);
  18.     procedure BtDelAllClick(Sender: TObject);
  19.     procedure TableMouseDown(Sender: TObject; Button: TMouseButton;
  20.       Shift: TShiftState; X, Y: Integer);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26.  
  27. var
  28.   DeleteRec: TDeleteRec;
  29.   RecToDel: Integer;
  30.  
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35. uses MainForm, ViewRecord;
  36.  
  37. procedure TDeleteRec.BtDelAllClick(Sender: TObject);
  38. var
  39.    i: Integer;
  40. begin
  41.    if (Application.MessageBox('Are you sure that you want to delete all the records?','Record delete', MB_OKCANCEL) = mrOk) then
  42.    begin
  43.       BtDelAll.Enabled := False;
  44.       for i := 1 to Table.RowCount - 1 do
  45.          Table.Rows[i].Clear;
  46.       Table.RowCount := 1;
  47.       MainForm.Bufer := nil;
  48.       MainProgMenu.DelRec.Enabled := False;
  49.       MainProgMenu.View.Enabled := False;
  50.       Table.Height := 2 * DeleteRec.Table.DefaultRowHeight;
  51.       DeleteRec.Height := Table.Height + 120;
  52.    end;
  53. end;
  54.  
  55. procedure DeleteRow(ARow: Integer; var Table: TStringGrid; var Bufer: MainForm.TArr);
  56. var
  57.    i: Integer;
  58.    Arr: MainForm.TArr;
  59. begin
  60.    for i := ARow to Table.RowCount-1 do
  61.       Table.Rows[i].Clear;
  62.    Table.RowCount := Table.RowCount - 1;
  63.    SetLength(Arr, Table.RowCount - 1);
  64.    for i := ARow to Table.RowCount-1 do
  65.    begin
  66.       Arr[i-1] := Bufer[i];
  67.       Table.Cells[0,i] := Bufer[i].Surname;
  68.       Table.Cells[1,i] := Bufer[i].Name;
  69.       Table.Cells[2,i] := Bufer[i].Patronymic;
  70.       Table.Cells[3,i] := IntToStr(Bufer[i].Group);
  71.       Table.Cells[4,i] := IntToStr(Bufer[i].Number);
  72.       Table.Cells[5,i] := Bufer[i].DateOfBirth;
  73.       Table.Cells[6,i] := Bufer[i].Sex;
  74.    end;
  75.    for i := 0 to ARow - 2 do
  76.       Arr[i] := Bufer[i];
  77.    SetLength(Bufer, Length(Arr));
  78.    Bufer := Arr;
  79. end;
  80.  
  81. procedure TDeleteRec.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  82. begin
  83.    if (Application.MessageBox('Would you like to close the window?',
  84.       'Program closing', MB_OKCANCEL) = mrOk) then
  85.       CanClose := true
  86.    else
  87.       CanClose := false;
  88. end;
  89.  
  90. procedure TDeleteRec.FormCreate(Sender: TObject);
  91. var
  92.    i: Integer;
  93. begin
  94.    Table.Cells[0, 0] := 'Surname';
  95.    Table.Cells[1, 0] := 'Name';
  96.    Table.Cells[2, 0] := 'Patronymic';
  97.    Table.Cells[3, 0] := 'Group';
  98.    Table.Cells[4, 0] := 'Daybook number';
  99.    Table.Cells[5, 0] := 'Date of birth';
  100.    Table.Cells[6, 0] := 'Sex';
  101. end;
  102.  
  103. procedure TDeleteRec.ImageHelpClick(Sender: TObject);
  104. begin
  105.    Application.MessageBox('Click on the row and confirm deleting.','Help information', MB_OK);
  106. end;
  107.  
  108. procedure TDeleteRec.TableMouseDown(Sender: TObject; Button: TMouseButton;
  109.   Shift: TShiftState; X, Y: Integer);
  110. var
  111.    ACol, ARow: Integer;
  112. begin
  113.    if Button = mbLeft then
  114.    begin
  115.       Table.MouseToCell(x, y, ACol, ARow);
  116.       if (ARow > 0) then
  117.       if (Application.MessageBox('Are you sure?','Record delete', MB_OKCANCEL) = mrOk) then
  118.       begin
  119.          if Table.RowCount > 1 then
  120.             ViewRec.BtSave.Enabled := True;
  121.          DeleteRow(ARow, Table, MainForm.Bufer);
  122.          Table.Height := Table.RowCount * DeleteRec.Table.DefaultRowHeight + 15;
  123.          DeleteRec.Height := Table.Height + 135;
  124.          if Table.RowCount = 1 then
  125.          begin
  126.             BtDelAll.Enabled := False;
  127.             MainProgMenu.DelRec.Enabled := False;
  128.             MainProgMenu.View.Enabled := False;
  129.             MainProgMenu.Input.Enabled := True;
  130.          end;
  131.       end;
  132.    end;
  133. end;
  134.  
  135. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement