Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit ViewRecord;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls,
- Vcl.Imaging.pngimage, Vcl.ExtCtrls;
- type
- TViewRec = class(TForm)
- Table: TStringGrid;
- ImageHelp: TImage;
- BtSort: TButton;
- ImSearch: TImage;
- BtSave: TButton;
- SaveDialog: TSaveDialog;
- procedure ImageHelpClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure ImSearchClick(Sender: TObject);
- procedure BtSortClick(Sender: TObject);
- procedure BtSaveClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- ViewRec: TViewRec;
- implementation
- {$R *.dfm}
- uses SearchForWindow, MainForm;
- procedure SortArr(var Buf: MainForm.TArr);
- var
- j, i, en, beg: Integer;
- Temp: MainForm.TStudent;
- begin
- beg := 0;
- en := High(Buf);
- while beg < en do
- begin
- for i := beg + 1 to en do
- if (Buf[i-1].Group > Buf[i].Group) then
- begin
- Temp := Buf[i];
- Buf[i] := Buf[i-1];
- Buf[i-1] := Temp;
- end
- else
- if (Buf[i-1].Group = Buf[i].Group) then
- if (Buf[i-1].Number > Buf[i].Number) then
- begin
- Temp := Buf[i];
- Buf[i] := Buf[i-1];
- Buf[i-1] := Temp;
- end;
- dec(en);
- for i := en - 1 downto beg do
- if Buf[i+1].Group < Buf[i].Group then
- begin
- Temp := Buf[i];
- Buf[i] := Buf[i+1];
- Buf[i+1] := Temp;
- end
- else
- if (Buf[i+1].Group = Buf[i].Group) then
- if (Buf[i+1].Number < Buf[i].Number) then
- begin
- Temp := Buf[i];
- Buf[i] := Buf[i+1];
- Buf[i+1] := Temp;
- end;
- inc(beg);
- end;
- end;
- procedure TViewRec.BtSaveClick(Sender: TObject);
- var
- OutputFile: file of MainForm.TStudent;
- MyFile: string;
- ButtonSelected: Byte;
- i: Integer;
- begin
- if SaveDialog.Execute then
- begin
- MyFile := SaveDialog.FileName;
- if Pos('.dat', MyFile) <> Length(MyFile) - 3 then
- MyFile := MyFile + '.dat';
- ButtonSelected := 0;
- if FileExists(MyFile) then
- ButtonSelected := MessageDlg('Rewrite file?', mtConfirmation, [mbYes,mbNo], 0);
- if (not FileExists(MyFile)) or (ButtonSelected = mrYes) then
- begin
- AssignFile(OutputFile, MyFile);
- ReWrite(OutputFile);
- for i := 0 to High(MainForm.Bufer) do
- Write(OutputFile, MainForm.Bufer[i]);
- end;
- CloseFile(OutputFile);
- BtSave.Enabled := False;
- end;
- end;
- procedure TViewRec.BtSortClick(Sender: TObject);
- var
- i: Integer;
- begin
- SortArr(MainForm.Bufer);
- for i := 1 to Length(MainForm.Bufer) do
- begin
- ViewRec.Table.Cells[0,i] := MainForm.Bufer[i-1].Surname;
- ViewRec.Table.Cells[1,i] := MainForm.Bufer[i-1].Name;
- ViewRec.Table.Cells[2,i] := MainForm.Bufer[i-1].Patronymic;
- ViewRec.Table.Cells[3,i] := IntToStr(MainForm.Bufer[i-1].Group);
- ViewRec.Table.Cells[4,i] := IntToStr(MainForm.Bufer[i-1].Number);
- ViewRec.Table.Cells[5,i] := MainForm.Bufer[i-1].DateOfBirth;
- ViewRec.Table.Cells[6,i] := MainForm.Bufer[i-1].Sex;
- end;
- BtSort.Enabled := False;
- end;
- procedure TViewRec.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 TViewRec.FormCreate(Sender: TObject);
- 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 TViewRec.ImageHelpClick(Sender: TObject);
- begin
- Application.MessageBox('In this window you can view records, sort them and search for ','Help information', MB_OK);
- end;
- procedure TViewRec.ImSearchClick(Sender: TObject);
- begin
- SearchFor.Height := 100;
- SearchFor.ShowModal;
- SearchFor.Hide;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement