unit aeromain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ImgList, ActnList, ComCtrls, ToolWin, Grids, StdActns,
ExtCtrls, StdCtrls, Buttons;
type
TReis = Record
Nreisa: integer;
Pnazn: string[30];
Vvilet: TTime;
Vpribit: TTime;
Sbilet: integer;
end;
Taeromain1 = class(TForm)
MainMenu1: TMainMenu;
Exit1: TMenuItem;
Help1: TMenuItem;
ToolBar1: TToolBar;
StringGrid1: TStringGrid;
Image1: TImage;
ImageList1: TImageList;
ActionList1: TActionList;
dobav: TAction;
Udal: TAction;
N6: TMenuItem;
stoim: TAction;
N7: TMenuItem;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
SpeedButton7: TSpeedButton;
SpeedButton2: TSpeedButton;
ToolButton5: TToolButton;
oprog: TAction;
Exit: TAction;
N8: TMenuItem;
N9: TMenuItem;
reisi: TAction;
N4: TMenuItem;
ToolBar2: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
BitBtn1: TBitBtn;
zaprrei: TAction;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
ToolButton2: TToolButton;
zapgorod: TAction;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
ochvv: TAction;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
redac: TAction;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N5: TMenuItem;
procedure DobavExecute(Sender: TObject);
procedure stoimExecute(Sender: TObject);
procedure oprogExecute(Sender: TObject);
procedure ExitExecute(Sender: TObject);
procedure reisiExecute(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure zaprreiExecute(Sender: TObject);
procedure zapgorodExecute(Sender: TObject);
procedure ochvvExecute(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure UdalExecute(Sender: TObject);
procedure redacExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
aeromain1: Taeromain1;
FReis: file of TReis;
FTemp: file of TReis;
reis: TReis;
otvet: word;
implementation
uses aeroinfo, aerovvod;
{$R *.dfm}
procedure Taeromain1.DobavExecute(Sender: TObject);
begin
reisiExecute(self);
ochvvExecute(self);
aeromain1.Enabled:=false;
with aerovvod1 do
begin
Visible:=True;
Caption:='Добавить рейс';
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit3.Visible:=true;
Edit4.Visible:=true;
Edit5.Visible:=true;
Label1.Visible:=true;
Label1.Caption:='Номер рейса';
Label2.Visible:=true;
Label3.Visible:=true;
Label4.Visible:=true;
Label5.Visible:=true;
BitBtn1.Visible:=true;
BitBtn1.OnClick:=aerovvod1.BitBtn1Click1;
BitBtn1.Caption:='Добавить';
BitBtn2.Visible:=true;
end;
end;
procedure Taeromain1.stoimExecute(Sender: TObject);
begin
reisiExecute(self);
ochvvExecute(self);
aeromain1.Enabled:=false;
with aerovvod1 do
begin
Visible:=True;
Caption:='Пересчет стоимости билетов путем увеличения на к %';
Image1.Visible:=true;
edit6.Visible:=true;
Label1.Visible:=true;
Label1.Caption:='Введите процент увеличения';
Label1.Top:=100;
BitBtn1.OnClick:=aerovvod1.BitBtn1Click5;
BitBtn1.Visible:=True;
BitBtn2.Visible:=True;
BitBtn1.Top:=270;
BitBtn2.Top:=270;
BitBtn1.Caption:='Изменить';
end;
end;
procedure Taeromain1.oprogExecute(Sender: TObject);
begin
aeroinfo1.Visible:=true;
aeromain1.Enabled:=false;
end;
procedure Taeromain1.ExitExecute(Sender: TObject);
begin
aeromain1.Close;
end;
procedure Taeromain1.reisiExecute(Sender: TObject);
begin
stringgrid1.Visible:=true;
bitbtn1.Visible:=true;
seek(FReis, 0);
stringgrid1.Cells[0,0]:= 'Номер рейса';
stringgrid1.Cells[1,0]:= 'Пункт назначения';
stringgrid1.Cells[2,0]:= 'Время вылета';
stringgrid1.Cells[3,0]:= 'Время прибытия';
stringgrid1.Cells[4,0]:= 'Стоимость билета';
While not Eof(FReis) do
begin
Read(FReis,Reis);
with Reis do
begin
stringgrid1.Cells[0,FilePos(FReis)]:=IntToStr(Nreisa);
stringgrid1.Cells[1,FilePos(FReis)]:=Reis.Pnazn;
stringgrid1.Cells[2,FilePos(FReis)]:=TimeToStr(Vvilet);
stringgrid1.Cells[3,FilePos(FReis)]:=TimeTOStr(Vpribit);
stringgrid1.Cells[4,FilePos(FReis)]:=IntToStr(Sbilet);
end;
end;
stringgrid1.RowCount:= FilePos(FReis)+1;
end;
procedure Taeromain1.BitBtn1Click(Sender: TObject);
begin
stringgrid1.Visible:=false;
bitbtn1.Visible:=false;
end;
procedure Taeromain1.zaprreiExecute(Sender: TObject);
begin
reisiExecute(self);
ochvvExecute(self);
aeromain1.Enabled:=false;
with aerovvod1 do
begin
Visible:=True;
Caption:='Выдача справки по конкретному рейсу';
Label1.Visible:=true;
Edit1.Visible:=true;
Label1.Top:=100;
Edit1.Left:=200;
Edit1.Top:=175;
Label1.Caption:='Введите номер рейса';
BitBtn1.Visible:=True;
BitBtn2.Visible:=True;
BitBtn1.Top:=270;
BitBtn2.Top:=270;
BitBtn1.OnClick:=aerovvod1.BitBtn1Click3;
BitBtn1.Caption:='Запросить';
Image1.Visible:=true;
end;
end;
procedure Taeromain1.zapgorodExecute(Sender: TObject);
begin
reisiExecute(self);
ochvvExecute(self);
aerovvod1.Visible:=True;
aeromain1.Enabled:=false;
with aerovvod1 do
begin
Visible:=True;
Caption:='Вывод списка рейсов, вылетающий в заданный город';
Label1.Visible:=true;
Edit2.Visible:=true;
Label1.Top:=100;
Edit2.Top:=175;
Label1.Caption:='Введите Город';
BitBtn1.Visible:=True;
BitBtn2.Visible:=True;
BitBtn1.Top:=270;
BitBtn2.Top:=270;
BitBtn1.OnClick:=aerovvod1.BitBtn1Click4;
BitBtn1.Caption:='Запросить';
Image1.Visible:=true;
end;
end;
procedure Taeromain1.ochvvExecute(Sender: TObject);
begin
with aerovvod1 do
begin
Edit1.Visible:=false;
Edit2.Visible:=false;
Edit3.Visible:=false;
Edit4.Visible:=false;
Edit5.Visible:=false;
Edit6.Visible:=false;
Edit1.text:='1234';
Edit2.text:='Кемерово';
Edit3.text:='23:12';
Edit4.text:='08:00';
Edit5.text:='15000';
Edit6.text:='100';
Label1.Visible:=false;
Label2.Visible:=false;
Label3.Visible:=false;
Label4.Visible:=false;
Label5.Visible:=false;
BitBtn1.Visible:=false;
BitBtn2.Visible:=false;
Image1.Visible:=false;
Label1.Top:=8;
Edit1.Left:=344;
Edit1.Top:=8;
Edit2.Top:=120;
BitBtn1.Top:=392;
BitBtn2.Top:=392;
end;
end;
procedure Taeromain1.FormActivate(Sender: TObject);
begin
AssignFile(FReis, 'baza.aspr');
{$I-}
Reset(FReis);
Seek(FReis, FileSize(FReis));
{$I-}
if IOResult <> 0
then
begin
otvet:= MessageDlg('Файл базы данных не найден.' +
'Создать новую БД?', mtInformation, [mbYes, mbNo], 0);
if otvet <> mrYes
then
begin
MessageDlg('Дальнейшая работа с прораммой невозможна', mtInformation, [mbYes],0);
aeromain1.Close;
end
else
begin
{$I-}
rewrite(FReis);
{$I+}
if IOResult <> 0
then begin
MessageDlg('Ошибка создания файла БД.', mtError, [mbOk],0);
aeromain1.Close;
end;
end;
end;
end;
procedure Taeromain1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(FReis);
end;
procedure Taeromain1.UdalExecute(Sender: TObject);
begin
if stringgrid1.Visible=false
then messageDlg('Выведете список рейсов', mtinformation, [mbOk],0)
else begin
AssignFile(FTemp, 'temp.aspr');
{$I-}
rewrite(FTemp);
{$I+}
if IOResult <> 0
then
MessageDlg('Ошибка удаления temp файл недоступен', mtError, [mbOk],0)
else begin
seek(FReis, 0);
seek(Ftemp, 0);
While not Eof(FReis) do
begin
Read(FReis,Reis);
if StringGrid1.Row = FilePos(FReis)
then begin otvet:= messageDlg('Вы точно хотите удалить рейс" №'+
inttostr(reis.Nreisa), mtinformation, [mbYes,mbNo],0);
if otvet <> mrYes then write(FTemp, Reis);
end
Else write(FTemp, Reis)
end;
seek(FReis, FilePos(FReis))
end;
rewrite(FReis);
seek(FReis, 0);
seek(Ftemp, 0);
While not Eof(FTemp) do
begin
Read(Ftemp,Reis);
write(FReis, Reis);
seek(FTemp, FilePos(FTemp));
end;
rewrite(FTemp);
CloseFile(FTemp);
reisiExecute(self);
end;
end;
procedure Taeromain1.redacExecute(Sender: TObject);
begin
if stringgrid1.Visible=false
then messageDlg('Выведете список рейсов', mtinformation, [mbOk],0)
else begin
ochvvExecute(self);
aeromain1.Enabled:=false;
with aerovvod1 do
begin
Visible:=True;
Caption:='Редактировать рейс';
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit3.Visible:=true;
Edit4.Visible:=true;
Edit5.Visible:=true;
Label1.Visible:=true;
Label1.Caption:='Номер рейса';
Label2.Visible:=true;
Label3.Visible:=true;
Label4.Visible:=true;
Label5.Visible:=true;
BitBtn1.Visible:=true;
BitBtn1.OnClick:=BitBtn1Click2;
BitBtn1.Caption:='Изменить';
BitBtn2.Visible:=true;
BitBtn1.Top:=392;
BitBtn2.Top:=392;
end;
seek(FReis, 0);
While not Eof(FReis) do
begin
Read(FReis,aeromain.Reis);
if StringGrid1.Row = FilePos(FReis)
then begin
with reis do
begin
aerovvod1.Edit1.text:=Inttostr(Nreisa);
aerovvod1.Edit2.text:=reis.Pnazn;
aerovvod1.edit3.text:=Timetostr(Vvilet);
aerovvod1.edit4.text:=Timetostr(Vpribit);
aerovvod1.edit5.text:=Inttostr(Sbilet);
end;
end;
end;
reisiExecute(self);
end;
end;
end.