Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchyot_praktika_1.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
750.49 Кб
Скачать

Interface

uses

TStoreDef;

var

dbase: TStore;

implementation

end.

unit FileWork;

Interface

uses

THardwareDef, TStoreDef;

type

TTempRecord = record

r_cpu: shortstring;

r_mem: integer;

r_hdd: integer;

r_price: real;

end;

THardwareFile = file of TTempRecord;

function HardwareToTemp (hw: THardware): TTempRecord;

procedure ReadFile (fname: shortstring; var dbase: TStore);

procedure WriteFile (fname: shortstring; dbase: TStore);

implementation

function HardwareToTemp (hw: THardware): TTempRecord;

begin

result.r_cpu := hw.CPU;

result.r_mem := hw.Memory;

result.r_hdd := hw.HDD;

result.r_price := hw.Price;

end;

procedure ReadFile (fname: shortstring; var dbase: TStore);

var

f: THardwareFile;

newel: TTempRecord;

newhw: THardware;

begin

AssignFile(f, fname);

Reset(f);

dbase := TStore.Create;

while not(EOF(f)) do

begin

read(f, newel);

newhw := THardware.Create(newel.r_cpu, newel.r_mem,

newel.r_hdd, newel.r_price);

dbase.Add(newhw);

end;

CloseFile(f);

end;

procedure WriteFile (fname: shortstring; dbase: TStore);

var

f: THardwareFile;

i: integer;

rec: TTempRecord;

begin

AssignFile(f, fname);

Rewrite(f);

for i:= 0 to dbase.GetMaxIndex do

begin

rec := HardwareToTemp(dbase.GetElement(i));

write(f, rec);

end;

CloseFile(f);

end;

end.

unit EditForm;

Interface

uses

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

Dialogs, Globals, THardwareDef, TStoreDef, StdCtrls, Buttons, ExtCtrls;

type

TfrmEdit = class(TForm)

laedCPU: TLabeledEdit;

laedMemory: TLabeledEdit;

laedHDD: TLabeledEdit;

laedPrice: TLabeledEdit;

bbSubmit: TBitBtn;

procedure bbSubmitClick(Sender: TObject);

private

index: integer;

function Check: boolean;

public

constructor Create(AOwner: TComponent; num: integer; hw: THardWare);

end;

var

frmEdit: TfrmEdit;

implementation

{$R *.dfm}

constructor TfrmEdit.Create(AOwner: TComponent; num: integer; hw: THardWare);

begin

inherited Create(AOwner);

index := num;

laedCPU.Text := hw.CPU;

laedMemory.Text := IntToStr(hw.Memory);

laedHDD.Text := IntToStr(hw.HDD);

laedPrice.Text := FloatToStr(hw.Price);

end;

function TfrmEdit.Check: boolean;

var

m, h: integer;

r: real;

begin

try

m := StrToInt(laedMemory.Text);

h := StrToInt(laedHDD.Text);

r := StrToFloat(laedPrice.Text);

result := (not(laedCPU.Text = ''))and(m>0)and(h>0)and(r>0);

except

result := false;

end;

end;

procedure TfrmEdit.bbSubmitClick(Sender: TObject);

begin

if (Check) then

begin

if (index = -1) then

dbase.Add(laedCPU.Text, StrToInt(laedMemory.Text),

StrToInt(laedHDD.Text), StrToFloat(laedPrice.Text))

else

dbase.Edit(index, laedCPU.Text, StrToInt(laedMemory.Text),

StrToInt(laedHDD.Text), StrToFloat(laedPrice.Text));

frmEdit.Close;

end

else

ShowMessage('Введены некорректные данные!');

end;

end.

unit CommonGraphics;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]