Футбольные команды и игроки

Министерство образования  и науки Российской Федерации

Государственное образовательное  учреждение высшего профессионального  образования

«Камская Государственная  инженерно-экономическая академия»

 

Кафедра ПИУ

 

 

 

 

 

 

 

 

 

 

КУРСОВАЯ РАБОТА

по дисциплине: «Базы данных»

на тему:  «Футбольные команды и игроки»

 

 

 

 

 

Выполнили:

Студенты  группы 4267-с

Паранин Александр  Александрович

номер зачетной книжки  4090967

Челнинский Антон Андреевич

номер зачетной книжки 4090810

 

Проверил:

Доцент кафедры ПИУ

Хузятов Шафик  Шаехович

 

 

 

 

 

 

 

 

Набережные Челны

2011 г.

 

Содержание

 

Введение

Постановка задачи

Таблицы БД и связи между ними

Описание внешнего вида пользовательского интерфейса

Описание алгоритма работы программы

Приложения

Текст проекта  football.dpr

Текст модуля gl_form.pas

Текст модуля gl_per.pas

Текст модуля igroki.pas

Текст модуля komandi.pas

Текст модуля dob_klyb.pas

Текст модуля stadioni.pas

Текст модуля transfer.pas

Текст модуля ist_trans.pas

 

Введение

Футбол (англ. football, от foot нога и ball мяч), командная спортивная игра на специальной площадке (поле) размером 100-110 м х 64-75 м с воротами 7,32 х 2,44 м; в команде по 11 человек на поле; цель игры забить мяч ногами или любой другой частью тела (кроме рук) в ворота соперников.

В настоящее  время самый популярный и массовый вид спорта в мире.

Согласно  заявлению ФИФА в 2001 году в футбол на планете играло около 250 миллионов человек. Из них более 20 миллионов — женщины. Зарегистрировано около 1,5 миллиона команд и 300000 профессиональных клубов.

Футбольный  клуб — базовая ячейка всей футбольной структуры. Он является связующим звеном между футболистами, персоналом и  организациями. По сути это команда  футболистов, входящая в одну из организаций, имеющая определённую инфраструктуру и обслуживающий персонал.

В связи  с постоянно растущим числом футбольных команд остро встает вопрос о разработке программных продуктов по работе в футбольном направлении.

 

Постановка задачи

Программа «Футбольные команды и игроки» разработана на языке высокого уровня Borland Delphi. В программе реализованы следующие компоненты:

    • База данных, состоящая из 6 таблиц, из которых 4 справочника, одна операционная таблица и одна вспомогательная таблица;
    • Пользовательский интерфейс работы с базой данных;
    • Защита от ввода неверных данных.

 

 

Таблицы БД и связи между  ними

Применяемые таблицы

1. strani.dbf   справочник стран

2. komandi.dbf  справочник команд

3. igroki.dbf   справочник игроков

4. stadioni   справочник стадионов

5. perehodi   трансферы футболистов

6. vspom   вспомогательная таблица

С Т Р У К Т У Р А  Ф А Й Л О В

Файл strani.DBF – справочник стран

Имя поля

Формат поля

Характеристика поля

Тип

Длина

nom_str

N

2

Номер страны

naim_str

C

17

Название страны


 

Файл komandi.DBF – справочник команд

Имя поля

Формат поля

Характеристика поля

Тип

Длина

nom_kom

N

3

Номер команды

naim

C

16

Название команды

nom_st

N

2

Номер страны команды

nom_stad

N

3

Номер стадионы команды

osnov

N

4

Год основания

prez

C

36

Президент футбольного клуба

tren

C

36

Тренер футбольного клуба

kap

C

36

Капитан футбольного клуба

gorod

C

16

Город команды

sait

C

18

Сайт


 

 

Файл igroki.DBF – справочник игроков

Имя поля

Формат поля

Характеристика поля

Тип

Длина

nom_igr

N

4

Номер игрока

fam

C

15

Фамилия игрока

ima

C

14

Имя игрока

otch

C

15

Отчество игрока

nom_kom

N

3

Номер команды игрока

dat_rozd

D

8

Дата рождения

mest_rozd

C

30

Место рождения

ampl

C

25

Амплуа (позиция) игрока

ves

N

3

Вес игрока

rost

N

3

Рост игрока


 

Файл stadioni.DBF – справочник стадионов

Имя поля

Формат поля

Характеристика поля

Тип

Длина

nom_stad

N

3

Номер стадиона

naim_st

C

17

Название стадиона

mesto

C

24

Место расположения

vmest

N

6

Вместимость стадиона


 

Файл perehodi.DBF – трансферы футболистов

Имя поля

Формат поля

Характеристика поля

Тип

Длина

nom_igr

N

4

Номер игрока

st_nom_kom

N

3

Номер старого клуба

nw_nom_kom

N

3

Номер нового клуба

dat_per

D

3

Дата перехода

sym

N

8

Сумма трансфера


 

 

Файл vspom.DBF – вспомогательная таблица

Имя поля

Формат поля

Характеристика поля

Тип

Длина

famima

N

3

Фамилия и имя футболиста

s_kl

C

17

Название прежнего клуба игрока

n_kl

C

24

Название нового клуба игрока

data

D

6

Дата перехода

sym

N

6

Сумма трансфера


 

Тип данных обозначает:

    • N – числовой (Numeric);
    • C – текстовый (Character);
    • D – дата (Data);

 

 

Связь между  таблицами базы данных представлена на рис. 1.

 

Рис. 1

 

Описание внешнего вида пользовательского интерфейса

 

Запускается программа файлом football.exe, после чего появляется главное окно программы (рис. 2).

Рис.2

Навигация по программе осуществляется при помощи меню.

В пункте меню «Файл» содержится подпункт Выход, осуществляющий выход из программы.

Пункт меню «Справочники» содержит подпункты – «Игроки», «Команды», «Стадионы».

Пункт меню «Операции» содержит подпункты –  «Новый трансфер», «История трансферов».

 

 

 

Подпункт меню «Справочники» - «Игроки»(рис. 3).

 

Рис. 3

 

В окне «Игроки» представлена информация по игрокам. Есть возможность навигации  по игрокам, добавления игроков, изменения  информации и удаление футболистов. Также можно произвести поиск  футболистов по номеру и фамилии, и фильтр по амплуа, весу и росту.

 

Подпункт меню «Справочники» - «Команды» (рис.4).

Рис. 4

В окне «Команды» собрана информация по камандам. Имеется возможность  добавления, редактирования и удаления клубов, а также осуществлена навигация  по клубам. Также присутствует возможность поиска команд. В нижней части окна представлена информация по игрокам, выступающим за текущий футбольный клуб.

 

 

 

 

 

Подпункт меню «Справочники» - «Стадионы» (рис. 5).

Рис. 5

В окне «Стадионы» содержится информация по стадионам с возможностью навигации, добавления, удаления и редактирования стадионов.

 

Подпункт меню «Операции» - «Новый трансфер» (рис. 6).

Рис. 6

В окне «Новый трансфер» осуществляется переход игроков из одной команды в другую.

В окне «История трансферов» отражена история состоявшихся переходов игроков (рис. 7).

Рис. 7

 

Описание алгоритма программы

Программа работает с базой данных, разработанной в среде Visual Foxpro 9.0.

База данных состоит из пяти таблиц.

Добавление игроков осуществляется в окне «Игроки». Данное окно работает с таблицей «igroki», в которой содержатся все основные сведения о футболистах.

Работа с футбольными командами  происходит в окне «Команды» и  осуществляется с помощью таблицы  «komandi». Данная таблица связана с таблицей «igroki».

Таблица «strani» содержит все страны и не поддается редактированию.

Для осуществления перехода игрока из одного клуба в другой нужно  открыть окно «Новый трансфер». Данное окно работает с тремя таблицами  – «igroki», «komandi», «transfer». После выбора игрока происходит выбор его клуба из таблицы команд, после выбора нового клуба и суммы трансфера происходит запись в таблицу «transfer».

Для просмотра истории трансферов используется вспомогательная таблица  «vspom». Здесь на основе таблицы «transfer» и связанных с ней таблиц «igroki» и «komandi» происходит удобное для пользователя представление транферов.

 

ПРИЛОЖЕНИЯ

Текст программы

Текст проекта football.dpr

program Football;

 

uses

  Forms,

  gl_form in 'gl_form.pas' {Form1},

  avtors in 'avtors.pas' {Form2},

  gl_per in 'gl_per.pas',

  avt in 'avt.pas' {Form3},

  igroki in 'igroki.pas' {Form4},

  komandi in 'komandi.pas' {Form5},

  dob_klyb in 'dob_klyb.pas' {Form6},

  stadioni in 'stadioni.pas' {Form7},

  transfer in 'transfer.pas' {Form8},

  ist_trans in 'ist_trans.pas' {Form9};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.CreateForm(TForm1, Form1);

  Application.CreateForm(TForm3, Form3);

  Application.CreateForm(TForm6, Form6);

  Application.Run;

end.

 

Текст модуля gl_form.pas

 

unit gl_form;

 

interface

 

uses

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

  Dialogs, ComCtrls, Menus, gl_per, ExtCtrls, StdCtrls, jpeg, Grids,

  DBGrids, DB, DBTables;

 

type

  TForm1 = class(TForm)

    StatusBar1: TStatusBar;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N8: TMenuItem;

    Timer1: TTimer;

    N9: TMenuItem;

    N13: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N2: TMenuItem;

    N7: TMenuItem;

    procedure N2Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure N8Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure N11Click(Sender: TObject);

    procedure N12Click(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure N13Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

uses avtors, avt, igroki, komandi, stadioni, transfer, ist_trans;

 

{$R *.dfm}

 

 

procedure TForm1.N2Click(Sender: TObject);

begin

  if gp4=1 then begin

  form7:=tform7.Create(application);

  form7.Show;

  gp4:=2;

  end;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  gp1:=1;

  gp2:=1;

  gp3:=1;

  gp4:=1;

  gp5:=1;

  gp6:=1;

  form1.statusbar1.Font.Style:=[fsbold];

  kdr:=0;

end;

 

procedure TForm1.N8Click(Sender: TObject);

begin

  form3.showmodal;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  statusbar1.Panels[0].Text:=timetostr(now);

  statusbar1.Panels[1].Text:=datetostr(now);

  if GetKeyState(VK_CAPITAL) <> 0 then

    statusbar1.panels[2].text := ' CAP';

  if GetKeyState(VK_CAPITAL) = 0 then

    statusbar1.panels[2].text := '';

  if GetKeyState(VK_NUMLOCK) <> 0 then

    statusbar1.panels[3].text := ' NUM';

  if GetKeyState(VK_NUMLOCK) = 0 then

    statusbar1.panels[3].text := '';

  if GetKeyState(VK_SCROLL) <> 0 then

    statusbar1.panels[4].text := ' SCRL';

  if GetKeyState(VK_SCROLL) = 0 then

    statusbar1.panels[4].text := '';

end;

 

procedure TForm1.N11Click(Sender: TObject);

begin

  if gp2=1 then begin

  form4:=tform4.Create(application);

  form4.Show;

  gp2:=2;

  end;

end;

 

procedure TForm1.N12Click(Sender: TObject);

begin

  if gp3=1 then begin

  form5:=tform5.Create(application);

  form5.Show;

  gp3:=2;

  end;

end;

 

procedure TForm1.N9Click(Sender: TObject);

begin

  form1.Close;

end;

 

procedure TForm1.N13Click(Sender: TObject);

begin

  if gp5=1 then begin

  form8:=tform8.Create(application);

  form8.Show;

  gp5:=2;

  end;

end;

 

procedure TForm1.N7Click(Sender: TObject);

begin

  if gp6=1 then begin

  form9:=tform9.Create(application);

  form9.Show;

  gp6:=2;

  end;

end;

end.

 

Текст модуля gl_per.pas

 

unit gl_per;

 

interface

var

  gp1:byte;

  gp2:byte;

  gp3:byte;

  gp4:byte;

  gp5:byte;

  gp6:byte;

  kdr:byte;

implementation

 

end.

 

Текст модуля igroki.pas

 

unit igroki;

 

interface

 

uses

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

  Dialogs, gl_per, StdCtrls, Mask, DBCtrls, DB, DBTables, ExtCtrls, Grids,

  DBGrids, Buttons, Spin;

 

type

  TForm4 = class(TForm)

    DataSource1: TDataSource;

    Table1: TTable;

    DBEdit1: TDBEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    Label11: TLabel;

    DBEdit2: TDBEdit;

    DBEdit3: TDBEdit;

    DBEdit4: TDBEdit;

    DBEdit6: TDBEdit;

    DBEdit7: TDBEdit;

    DBEdit9: TDBEdit;

    DBEdit10: TDBEdit;

    DBEdit11: TDBEdit;

    Button1: TButton;

    Button2: TButton;

    Label13: TLabel;

    Timer1: TTimer;

    DataSource2: TDataSource;

    Table2: TTable;

    Timer2: TTimer;

    Table3: TTable;

    DataSource3: TDataSource;

    Label17: TLabel;

    Bevel2: TBevel;

    Bevel4: TBevel;

    Label18: TLabel;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Button7: TButton;

    Button8: TButton;

    Edit1: TEdit;

    Button9: TButton;

    Label21: TLabel;

    RadioButton5: TRadioButton;

    RadioButton6: TRadioButton;

    Button10: TButton;

    Label22: TLabel;

    ComboBox1: TComboBox;

    Button11: TButton;

    Edit2: TEdit;

    ComboBox2: TComboBox;

    ComboBox3: TComboBox;

    Timer3: TTimer;

    Label8: TLabel;

    SpinEdit1: TSpinEdit;

    SpinEdit2: TSpinEdit;

    Label12: TLabel;

    Label14: TLabel;

    Button12: TButton;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    DBGrid1: TDBGrid;

    Label15: TLabel;

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

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormActivate(Sender: TObject);

    procedure Timer2Timer(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure Button10Click(Sender: TObject);

    procedure Button11Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button12Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure Timer3Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form4: TForm4;

  tr:byte;

  a:byte;

implementation

 

{$R *.dfm}

procedure a1(n:integer);

var

  a:integer;

begin

  form4.Table2.Locate('nom_kom', n, [loCaseInsensitive,

    loPartialKey]);

    form4.Edit2.Text:=form4.Table2.fieldbyname('naim').AsString;

end;

 

procedure klyb;

begin

  form4.Table2.First;

  while not form4.Table2.eof do

   begin

     form4.ComboBox2.Items.Add(form4.Table2.fieldbyname('naim').AsString);

     form4.Table2.Next;

   end;

end;

 

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

begin

  action:=cafree;

  gp2:=1;

end;

 

procedure TForm4.FormCreate(Sender: TObject);

begin

  table1.Active:=true;

  table2.Active:=true;

  table3.Active:=true;

  table1.First;

  tr:=0;

end;

 

procedure TForm4.Timer1Timer(Sender: TObject);

begin

   label13.Caption:=inttostr(table1.Recordcount);

end;

 

procedure TForm4.Button2Click(Sender: TObject);

begin

  if table1.RecordCount>0 then begin

    table1.Next;

    a1(table1.fieldbyname('nom_kom').Value);

  end;

end;

 

 

procedure TForm4.Button1Click(Sender: TObject);

begin

  if table1.RecordCount>0 then begin

    table1.Prior;

    a1(table1.fieldbyname('nom_kom').Value);

  end;

 

end;

 

procedure TForm4.FormActivate(Sender: TObject);

begin

  button8.Enabled:=false;

  table1.Filtered:=false;

  combobox2.Hide;

  combobox3.Hide;

end;

 

procedure TForm4.Timer2Timer(Sender: TObject);

begin

  a1(table1.fieldbyname('nom_kom').Value);

  klyb;

  timer2.Enabled:=false;

end;

 

procedure TForm4.Button3Click(Sender: TObject);

begin

  table1.First;

end;

 

procedure TForm4.Button4Click(Sender: TObject);

begin

  table1.Last;

end;

 

procedure TForm4.Button9Click(Sender: TObject);

begin

    if radiobutton5.Checked=true then begin //поиск по номеру

       if edit1.text='' then exit;

      if not Table1.Locate('nom_igr', Edit1.Text, [loCaseInsensitive,

    loPartialKey])  then

      ShowMessage('Запись не найдена');

     end;

     if radiobutton6.Checked=true then

     begin         //поиск по фамилии

       if edit1.text='' then exit;

       if not Table1.Locate('fam', Edit1.Text, [loCaseInsensitive,

    loPartialKey])  then

       ShowMessage('Запись не найдена');

     end;

end;

 

procedure TForm4.Button10Click(Sender: TObject);

begin

table1.Filtered:=true;

table1.Filter:='ampl='+''''+combobox1.Text+'''';

end;

 

procedure TForm4.Button11Click(Sender: TObject);

begin

   table1.Filtered:=false;

end;

 

procedure TForm4.Button6Click(Sender: TObject);

begin

   tr:=1;

   dbedit1.Enabled:=true;

   dbedit2.Enabled:=true;

   dbedit3.Enabled:=true;

   dbedit4.Enabled:=true;

   dbedit6.Enabled:=true;

   dbedit7.Enabled:=true;

   dbedit9.Enabled:=true;

   dbedit10.Enabled:=true;

   dbedit11.Enabled:=true;

   button1.Enabled:=false;

   button2.Enabled:=false;

   button3.Enabled:=false;

   button4.Enabled:=false;

   button5.Enabled:=false;

   button7.Enabled:=false;

   button8.Enabled:=true;

     combobox3.Top:=234;

  combobox3.Left:=324;

  combobox3.Show;

  table1.Edit;

end;

 

procedure TForm4.Button12Click(Sender: TObject);

var

  a,b:integer;

begin

  if (radiobutton1.Checked=false) and (radiobutton2.Checked=false) then

  begin

    showmessage('Выберите  критерий фильтрации');

    exit;

  end;

  a:=spinedit1.Value;

  b:=spinedit2.Value;

  if (a>b) or (a=b) then begin

    showmessage('Фильтрация невозможна. Измените значение фильтрации!');

    exit;

  end;

  if radiobutton1.Checked then begin

    table1.Filtered:=true;

    table1.Filter:='ves>='+inttostr(a)+'and ves<='+inttostr(b);

  end;

  if radiobutton2.Checked then begin

    table1.Filtered:=true;

    table1.Filter:='rost>='+inttostr(a)+'and rost<='+inttostr(b);

  end;

end;

 

procedure TForm4.Button5Click(Sender: TObject);

var

  t:integer;

begin

   table1.Filtered:=false;

  tr:=2;

  table1.last;

  t:=table1.fieldbyname('nom_igr').Value;

  t:=t+1;

  table1.Insert;

  table1.FieldByName('nom_igr').Value:=t;

  combobox2.Top:=150;

  combobox2.Left:=324;

  combobox2.Show;

  combobox3.Top:=234;

  combobox3.Left:=324;

  combobox3.Show;

  button1.Enabled:=false;

  button2.Enabled:=false;

  button3.Enabled:=false;

  button4.Enabled:=false;

  button6.Enabled:=false;

  button5.Enabled:=false;

  button8.Enabled:=true;

   dbedit1.Enabled:=true;

   dbedit2.Enabled:=true;

   dbedit3.Enabled:=true;

   dbedit4.Enabled:=true;

   dbedit6.Enabled:=true;

   dbedit7.Enabled:=true;

   dbedit9.Enabled:=true;

   dbedit10.Enabled:=true;

   dbedit11.Enabled:=true;

end;

 

procedure TForm4.Button8Click(Sender: TObject);

var

  s:string;

begin

  if tr=2 then begin  //открыли добавление

  a:=1;

  if dbedit2.text='' then a:=2;

  if dbedit3.text='' then a:=2;

  if dbedit4.text='' then a:=2;

  if dbedit6.text='' then a:=2;

   if dbedit7.text='' then a:=2;

  if dbedit10.text='' then a:=2;

  if dbedit11.text='' then a:=2;

  if combobox2.text='' then a:=2;

  if combobox3.text='' then a:=2;

  if a=2 then begin showmessage('Введены не все данные'); exit; end;

  Table2.Locate('naim', combobox2.Text, [loCaseInsensitive,

    loPartialKey]);

  table1.FieldByName('nom_kom').Value:=table2.FieldByName('nom_kom').Value;

  table1.FieldByName('ampl').AsString:=combobox3.Text;

  table1.Append;

  table1.Refresh;

  button1.Enabled:=true;

  button2.Enabled:=true;

  button3.Enabled:=true;

  button4.Enabled:=true;

  button6.Enabled:=true;

  button5.Enabled:=true;

  button8.Enabled:=false;

  combobox2.Hide;

  combobox3.Hide;

  dbedit1.Enabled:=false;

   dbedit2.Enabled:=false;

   dbedit3.Enabled:=false;

   dbedit4.Enabled:=false;

   dbedit6.Enabled:=false;

   dbedit7.Enabled:=false;

   dbedit9.Enabled:=false;

   dbedit10.Enabled:=false;

   dbedit11.Enabled:=false;

   button7.Enabled:=true;

   a:=1;

   a1(table1.fieldbyname('nom_kom').Value);

end;      //закрыли редактирование

if tr=1 then     begin

  if combobox3.text='' then begin showmessage('Есть пустые поля'); exit;end;

  table1.FieldByName('ampl').AsString:=combobox3.Text;

   table1.Append;

  table1.Refresh;

  button1.Enabled:=true;

  button2.Enabled:=true;

  button3.Enabled:=true;

  button4.Enabled:=true;

  button6.Enabled:=true;

  button5.Enabled:=true;

  button8.Enabled:=false;

  combobox2.Hide;

  combobox3.Hide;

   dbedit1.Enabled:=false;

   dbedit2.Enabled:=false;

   dbedit3.Enabled:=false;

   dbedit4.Enabled:=false;

   dbedit6.Enabled:=false;

   dbedit7.Enabled:=false;

   dbedit9.Enabled:=false;

   dbedit10.Enabled:=false;

   dbedit11.Enabled:=false;

   button7.Enabled:=true;

   a:=1;

   table1.Refresh;

  end;

end;

 

procedure TForm4.Button7Click(Sender: TObject);

begin

    if application.MessageBox('Вы  действительно хотите удалить  текущую запись?','Удаление записи',

  mb_iconQuestion+mb_yesno)=idyes then

  table1.delete;

  button1.Enabled:=true;

  button2.Enabled:=true;

  button3.Enabled:=true;

  button4.Enabled:=true;

  button6.Enabled:=true;

  button5.Enabled:=true;

  button8.Enabled:=false;

  combobox2.Hide;

  combobox3.Hide;

  dbedit1.Enabled:=false;

   dbedit2.Enabled:=false;

   dbedit3.Enabled:=false;

   dbedit4.Enabled:=false;

   dbedit6.Enabled:=false;

   dbedit7.Enabled:=false;

   dbedit9.Enabled:=false;

   dbedit10.Enabled:=false;

   dbedit11.Enabled:=false;

end;

end.

 

Текст модуля komandi.pas

 

unit komandi;

 

interface

 

uses

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

  Dialogs, gl_per, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls,

  Buttons, ExtCtrls;

 

type

  TForm5 = class(TForm)

    DataSource1: TDataSource;

    DataSource2: TDataSource;

    DataSource3: TDataSource;

    komandi: TTable;

    igroki: TTable;

    stadioni: TTable;

    DBGrid2: TDBGrid;

    Button1: TButton;

    Button2: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    strani: TTable;

    DataSource4: TDataSource;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    DBEdit2: TDBEdit;

    DBEdit3: TDBEdit;

    DBEdit4: TDBEdit;

    DBEdit5: TDBEdit;

    DBEdit6: TDBEdit;

    DBEdit7: TDBEdit;

    DBEdit8: TDBEdit;

    DBEdit9: TDBEdit;

    Label10: TLabel;

    Label11: TLabel;

    Label12: TLabel;

    Label13: TLabel;

    DBEdit10: TDBEdit;

    DBEdit11: TDBEdit;

    Button3: TButton;

    Button4: TButton;

    Label14: TLabel;

    Button5: TButton;

    Button6: TButton;

    Button7: TButton;

    Label15: TLabel;

    Edit1: TEdit;

    Button8: TButton;

    Label16: TLabel;

    DBEdit1: TDBEdit;

    DBEdit12: TDBEdit;

    Label17: TLabel;

    BitBtn1: TBitBtn;

    Label19: TLabel;

    Label21: TLabel;

    Timer1: TTimer;

    Bevel1: TBevel;

    Bevel2: TBevel;

    Bevel3: TBevel;

    Label18: TLabel;

    Label20: TLabel;

    Label22: TLabel;

    Bevel4: TBevel;

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

    procedure FormActivate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form5: TForm5;

 

implementation

 

uses dob_klyb;

 

{$R *.dfm}

 

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

begin

  action:=cafree;

  gp3:=1;

end;

 

procedure TForm5.FormActivate(Sender: TObject);

begin

  komandi.Refresh;

  komandi.First;

  bitbtn1.Caption:='';

  label20.Caption:=komandi.fieldbyname('naim').AsString;

  label18.Caption:=inttostr(igroki.recordcount);

end;

 

procedure TForm5.Button1Click(Sender: TObject);

begin

  komandi.Prior;

  label20.Caption:=komandi.fieldbyname('naim').AsString;

  label18.Caption:=inttostr(igroki.recordcount);

end;

 

procedure TForm5.Button2Click(Sender: TObject);

begin

  komandi.Next;

  label20.Caption:=komandi.fieldbyname('naim').AsString;

  label18.Caption:=inttostr(igroki.recordcount);

end;

 

procedure TForm5.Button5Click(Sender: TObject);

var

  a:byte;

begin

  kdr:=1; //включаем режим  добавления команды

  komandi.Last;

  a:=komandi.fieldbyname('nom_kom').Value;

  form6.komandi.Insert;

  form6.komandi.FieldByName('nom_kom').Value:=a+1;

  form6.showmodal;

end;

 

procedure TForm5.Button7Click(Sender: TObject);

begin

  if application.MessageBox('Вы действительно хотите удалить текущую запись?',

  'Удаление записи',  mb_iconQuestion+mb_yesno)=idyes then

  komandi.delete;

end;

 

procedure TForm5.Button6Click(Sender: TObject);

begin

   kdr:=2; // включаем режим  редактирования команд