Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
097715 / ОО проектирование приложений с использованием UML (ПЗ).doc
Скачиваний:
57
Добавлен:
12.06.2015
Размер:
19.01 Mб
Скачать

Модуль редактирования информации о товаре, хранящегося на товарных базах

unit EditTovarBase;

interface

uses

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

Dialogs, StdCtrls, Spin, Data, BusinessClasses, Buttons;

type

TEditTovBase = class(TForm)

GroupBox13: TGroupBox;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Edit9: TEdit;

Edit10: TEdit;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

procedure FormActivate(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

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

procedure SpeedButton1Click(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

EditTovBase: TEditTovBase;

flag: Boolean;

implementation

uses Main;

{$R *.dfm}

//Активизация формы

procedure TEditTovBase.FormActivate(Sender: TObject);

var i: integer;

begin

TekBTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[DataShop.ListBaseGroupTovar.CurrentIndex] as TTov_base;

Edit9.Text:=TekBTov.Tname;

Edit10.Text:=floattostr(TekBTov.Tprice);

SpinEdit1.Value:=TekBTov.Tgarant;

SpinEdit2.Value:=TekBTov.TBcount;

end;

//Закрытие формы

procedure TEditTovBase.SpeedButton2Click(Sender: TObject);

begin

EditTovBase.Close;

end;

//При закрытии формы - возврат формы в исходное состояние

procedure TEditTovBase.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Edit9.Clear;

Edit10.Clear;

SpinEdit1.Value:=0;

SpinEdit2.Value:=1;

end;

//Процесс изменения данных о товаре

procedure TEditTovBase.SpeedButton1Click(Sender: TObject);

var price: real;

begin

flag:=false;

if (messagedlg('Подтвердите изменение товара',mtConfirmation,[mbYes,mbNo],0)=mrYes) then

begin

try

price:=strtofloat(Edit10.Text);

except

ShowMessage('Неверно указана цена!'+#13+'Проверьте правильность ввода!');

flag:=true;

end;

if not flag then

begin

TekBTov.Tname:=Edit9.Text;

TekBTov.Tprice:=price;

TekBTov.Tgarant:=SpinEdit1.Value;

TekBTov.TBcount:=SpinEdit2.Value;

SpeedButton2Click(nil);

end;

end;

end;

//Проверка корректности ввода

procedure TEditTovBase.Edit10KeyPress(Sender: TObject; var Key: Char);

begin

if not(key in ['0'..'9',#8,',']) then

key:=#0;

end;

end.

Модуль добавление новой товарной базы

unit NewBase;

interface

uses

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

Dialogs, StdCtrls, BoldListBox, data, Buttons, BusinessClasses;

type

TAddBase = class(TForm)

GroupBox1: TGroupBox;

Edit1: TEdit;

Label2: TLabel;

GroupBox2: TGroupBox;

BoldListBox1: TBoldListBox;

Label1: TLabel;

Memo1: TMemo;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

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

procedure SpeedButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AddBase: TAddBase;

NewBas: TBase;

implementation

{$R *.dfm}

procedure TAddBase.SpeedButton3Click(Sender: TObject);

begin

SpeedButton2Click(nil);

AddBase.Close;

end;

procedure TAddBase.SpeedButton2Click(Sender: TObject);

begin

SpeedButton1.Enabled:=false;

Edit1.Clear;

Memo1.Clear;

Edit1.SetFocus;

end;

procedure TAddBase.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not(key in ['A'..'я','0'..'9',#8,' ']) then

key:=#0;

if (key=#8)and (Length(Edit1.Text)<=1) then

SpeedButton1.Enabled:=false;

if (key in ['A'..'я','0'..'9']) then

SpeedButton1.Enabled:=true;

end;

procedure TAddBase.SpeedButton1Click(Sender: TObject);

var i: integer;

ExBas: TBase;

BBaseExsist: Boolean;

Mag: TShop;

begin

if Memo1.Text<>'' then

begin

i:=DataShop.ListBases.CurrentIndex;

BBaseExsist:=false;

Mag:=DataShop.BoldSystemHandleShop.System.ClassByExpressionName['Shop'].BoldObjects[0] as Tshop;

for i:=0 to DataShop.ListBases.Count-1 do

begin

ExBas:=DataShop.ListBases.ObjectList.Elements[i] as TBase;

if (ExBas.Bname = Edit1.Text) then

BBaseExsist:=true;

end;

if not(BBaseExsist) then

begin

if (messagedlg('Подтвердите добавление товарной базы "'+Edit1.Text+'"!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then

begin

NewBas:=TBase.Create(nil);

NewBas.Bname:=Edit1.Text;

NewBas.Baddress:=Memo1.Text;

NewBas.Imeetsya:=Mag;

SpeedButton3Click(nil);

end;

end

else

begin

ShowMessage('База с названием "'+Edit1.Text+'" уже существует!');

Edit1.Clear;

Edit1.SetFocus;

end;

end;

end;

end.