Смекни!
smekni.com

Облік компютерів та комплектуючих на підприємстві (стр. 5 из 7)

if DEP[Cur].Comps[i].MMB.Firma>DEP[Cur].Comps[j].MMB.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByMP; //Сортування за виробником процесора

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MP.Firma>DEP[Cur].Comps[j].MP.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByMR; //Сортування за виробником ОП

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MR.Firma>DEP[Cur].Comps[j].MR.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByMVC; //Сортування за виробником відеокарти

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MVC.Firma>DEP[Cur].Comps[j].MVC.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByMM; //Сортування за виробником монітору

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MM.Firma>DEP[Cur].Comps[j].MM.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByMH; //Сортування за виробником вінчестера

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MH.Firma>DEP[Cur].Comps[j].MH.Firma then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByFreqProc; //Сортування за частотою процесора

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MP.Frequency>DEP[Cur].Comps[j].MP.Frequency then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByRAMCap; //Сортування за об’ємом ОП

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MR.Capacity>DEP[Cur].Comps[j].MR.Capacity then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByHDDCap; //Сортування за об’ємом вінчестера

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MH.Capacity>DEP[Cur].Comps[j].MH.Capacity then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.SortByDiagonal; //Сортування за розміром діагоналі монітору

var i,j,C,Cur:Byte;

D:Computer;

begin

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

C:=DEP[Cur].CompsCount;

for i:=1 to C-1 do

for j:=i+1 to C do

if DEP[Cur].Comps[i].MM.Diagonal>DEP[Cur].Comps[j].MM.Diagonal then begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[j];

DEP[Cur].Comps[j]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.ComboBox3Change(Sender: TObject);

begin

//Сортування комп’ютерів за вибраним критерієм

case ComboBox3.ItemIndex of

0 : SortByNumber;

1 : SortByUserName;

2 : SortByMMB;

3 : SortByMP;

4 : SortByMR;

5 : SortByMVC;

6 : SortByMM;

7 : SortByMH;

8 : SortByFreqProc;

9 : SortByRAMCap;

10 : SortByHDDCap;

11 : SortByDiagonal;

end;

end;

procedure TForm1.Button7Click(Sender: TObject);

var i,L,Cur:Byte;

D:Computer;

begin

//Інвертувати список комп’ютерів в вибраному відділі

if Count<=1 then Exit;

Cur:=ComboBox1.ItemIndex+1;

if ((Cur<1)or(Cur>Count)) then Exit;

L:=Trunc(DEP[Cur].CompsCount/2);

for i:=1 to L do begin

D:=DEP[Cur].Comps[i];

DEP[Cur].Comps[i]:=DEP[Cur].Comps[DEP[Cur].CompsCount-i+1];

DEP[Cur].Comps[DEP[Cur].CompsCount-i+1]:=D;

end;

ShowDepartament(Cur);

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

if Count>0 then

Form3.Show; //Показати вікно перенесення комп’ютерів

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm1.Button10Click(Sender: TObject);

begin

if ((ComboBox1.ItemIndex>=0)and(ComboBox1.Items.Count>0)) then

Form5.Show;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

Button1.Click;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

Button2.Click;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Button10.Click;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

Button6.Click;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

Button3.Click;

end;

procedure TForm1.N17Click(Sender: TObject);

begin

Button4.Click;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

Button5.Click;

end;

procedure TForm1.N15Click(Sender: TObject);

begin

Button8.Click;

end;

procedure TForm1.N21Click(Sender: TObject);

begin

Button7.Click;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

Button9.Click;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

ComboBox3.SetFocus;

ComboBox3.DroppedDown := True

end;

procedure TForm1.N9Click(Sender: TObject);

begin

ComboBox1.SetFocus;

ComboBox1.DroppedDown := True

end;

procedure TForm1.N8Click(Sender: TObject);

begin

ComboBox2.SetFocus;

ComboBox2.DroppedDown := True

end;

procedure TForm1.N4Click(Sender: TObject);

begin

if Editing then

if MessageDlg('Зберегти зміни?',mtConfirmation,[mbNo,mbYes],0)=mrYes then

Save;

Halt;

end;

procedure TForm1.N22Click(Sender: TObject);

begin

Button3.Click;

end;

procedure TForm1.N23Click(Sender: TObject);

begin

Button4.Click;

end;

procedure TForm1.N25Click(Sender: TObject);

begin

Button5.Click;

end;

procedure TForm1.N24Click(Sender: TObject);

begin

Button8.Click;

end;

procedure TForm1.N27Click(Sender: TObject);

begin

Button9.Click;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Form6.ShowModal;

end;

procedure TForm1.N19Click(Sender: TObject);

begin

Form7.ShowModal;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

GB1: TGroupBox;

CB1: TCheckBox;

Edit1: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label2: TLabel;

GB2: TGroupBox;

Label3: TLabel;

Label4: TLabel;

Edit3: TEdit;

Edit4: TEdit;

CB2: TCheckBox;

Label5: TLabel;

Edit5: TEdit;

GB3: TGroupBox;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

CB3: TCheckBox;

Label9: TLabel;

Edit9: TEdit;

GB4: TGroupBox;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

CB4: TCheckBox;

GB5: TGroupBox;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Edit13: TEdit;

Edit14: TEdit;

Edit15: TEdit;

CB5: TCheckBox;

Label16: TLabel;

Edit16: TEdit;

GB6: TGroupBox;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Edit17: TEdit;

Edit18: TEdit;

Edit19: TEdit;

Edit20: TEdit;

CB6: TCheckBox;

Button1: TButton;

Button2: TButton;

Edit21: TEdit;

Label21: TLabel;

Edit22: TEdit;

Label22: TLabel;

procedure ClearEdit;

procedure RecToEdit;

procedure CB1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure CB2Click(Sender: TObject);

procedure CB3Click(Sender: TObject);

procedure CB4Click(Sender: TObject);

procedure CB5Click(Sender: TObject);

procedure CB6Click(Sender: TObject);

function Verification:Boolean;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit5KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1, Unit4;

{$R *.dfm}

function STI(S:String):Integer;

var E:Integer;

begin

//Ця функція альтернативна StrToInt, тільки при помилці результат = 0

Val(S,Result,E);

if E<>0 then Result:=0;

end;

procedure TForm2.ClearEdit; //Очищення всіх полів

begin

CB1.Checked:=True; CB2.Checked:=True;

CB3.Checked:=True; CB4.Checked:=True;

CB5.Checked:=True; CB6.Checked:=True;

Edit1.Clear; Edit2.Clear; Edit3.Clear;

Edit4.Clear; Edit5.Clear; Edit6.Clear;

Edit7.Clear; Edit8.Clear; Edit9.Clear;

Edit10.Clear; Edit11.Clear; Edit12.Clear;

Edit13.Clear; Edit14.Clear; Edit15.Clear;

Edit16.Clear; Edit17.Clear; Edit18.Clear;

Edit19.Clear; Edit20.Clear; Edit21.Clear;

Edit22.Clear;

end;

procedure TForm2.RecToEdit; //Показ інф з запису в полях редагування

var CurD:Byte;

begin

CurD:=Form1.ComboBox1.ItemIndex+1;

if CurD<1 then Exit;

Edit1.Text:=DEP[CurD].Comps[SR].MMB.Firma;

Edit2.Text:=DEP[CurD].Comps[SR].MMB.Frequency;

Edit3.Text:=DEP[CurD].Comps[SR].MP.Firma;

Edit4.Text:=DEP[CurD].Comps[SR].MP.Frequency;

Edit5.Text:=IntToStr(DEP[CurD].Comps[SR].MP.KernelCount);

Edit6.Text:=DEP[CurD].Comps[SR].MR.Firma;

Edit7.Text:=DEP[CurD].Comps[SR].MR.TypeRam;

Edit8.Text:=IntToStr(DEP[CurD].Comps[SR].MR.Capacity);

Edit9.Text:=DEP[CurD].Comps[SR].MR.Frequency;

Edit10.Text:=DEP[CurD].Comps[SR].MVC.Firma;

Edit11.Text:=IntToStr(DEP[CurD].Comps[SR].MVC.Speed);

Edit12.Text:=IntToStr(DEP[CurD].Comps[SR].MVC.Capacity);

Edit13.Text:=DEP[CurD].Comps[SR].MM.Firma;

Edit14.Text:=IntToStr(DEP[CurD].Comps[SR].MM.Width);

Edit15.Text:=IntToStr(DEP[CurD].Comps[SR].MM.Height);

Edit16.Text:=IntToStr(DEP[CurD].Comps[SR].MM.Diagonal);

Edit17.Text:=DEP[CurD].Comps[SR].MH.Firma;

Edit18.Text:=DEP[CurD].Comps[SR].MH.TypeHDD;

Edit19.Text:=IntToStr(DEP[CurD].Comps[SR].MH.Capacity);

Edit20.Text:=DEP[CurD].Comps[SR].MH.Cache;

Edit21.Text:=IntToStr(DEP[CurD].Comps[SR].Number);

Edit22.Text:=DEP[CurD].Comps[SR].USER;

end;

procedure TForm2.CB1Click(Sender: TObject);

begin

GB1.Enabled:=CB1.Checked;

end;

procedure TForm2.FormShow(Sender: TObject);

begin

Form1.Enabled:=False;

if OP then

Form4.Enabled:=False;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if not OP then

Form1.Enabled:=True

else

Form4.Enabled:=True;

end;

procedure TForm2.CB2Click(Sender: TObject);

begin

GB2.Enabled:=CB2.Checked;

end;

procedure TForm2.CB3Click(Sender: TObject);

begin

GB3.Enabled:=CB3.Checked;

end;

procedure TForm2.CB4Click(Sender: TObject);

begin

GB4.Enabled:=CB4.Checked;

end;

procedure TForm2.CB5Click(Sender: TObject);

begin

GB5.Enabled:=CB5.Checked;

end;

procedure TForm2.CB6Click(Sender: TObject);

begin

GB6.Enabled:=CB6.Checked;

end;

function TForm2.Verification:Boolean;

var Cur,C,i,j:Byte;

begin

Result:=True;

if Edit21.Text='' then begin //Якщо не введено номер комп’ютера

ShowMessage('Введіть номер комп’ютера'); Result:=False; Exit;

end;

Cur:=Form1.ComboBox1.ItemIndex+1;

if ADD then

C:=DEP[Cur].CompsCount+1

else C:=SR;

for j:=1 to Count do //Перевірка номера на наявність

for i:=1 to DEP[j].CompsCount do begin

if ((i=C)and(j=Cur)) then Break;

if StrToInt(Edit21.Text)=DEP[j].Comps[i].Number then begin

ShowMessage('Комп’ютер з таким номером вже є!'); Result:=False; Exit;

end;

end;

if Edit22.Text='' then begin //Якщо не введено номер комп’ютера

ShowMessage('Введіть ПІБ працівника'); Result:=False; Exit;

end;

if CB1.Checked then

if ((Edit1.Text='')or(Edit2.Text='')) then begin //Якщо не введено всіх даних про материнську плату

ShowMessage('Заповніть всі поля материнської плати'); Result:=False; Exit;

end;

if CB2.Checked then

if ((Edit3.Text='')or(Edit4.Text='')or

(Edit5.Text='')) then begin //Якщо не введено всіх даних про процесор

ShowMessage('Заповніть всі поля процесора'); Result:=False; Exit;

end;

if CB3.Checked then

if ((Edit6.Text='')or(Edit7.Text='')or

(Edit8.Text='')or(Edit9.Text='')) then begin //Якщо не введено всіх даних про ОП

ShowMessage('Заповніть всі поля оперативної пам’яті'); Result:=False; Exit;

end;

if CB4.Checked then

if ((Edit10.Text='')or(Edit11.Text='')or

(Edit12.Text='')) then begin //Якщо не введено всіх даних про відеокарту

ShowMessage('Заповніть всі поля відеокарти'); Result:=False; Exit;

end;

if CB5.Checked then

if ((Edit13.Text='')or(Edit14.Text='')or

(Edit15.Text='')or(Edit16.Text='')) then begin //Якщо не введено всіх даних про монітор

ShowMessage('Заповніть всі поля монітора'); Result:=False; Exit;

end;

if CB6.Checked then

if ((Edit17.Text='')or(Edit18.Text='')or

(Edit19.Text='')or(Edit20.Text='')) then begin //Якщо не введено всіх даних про HDD