Автор работы: Пользователь скрыл имя, 08 Апреля 2013 в 10:01, реферат
Программа «Футбольные команды и игроки» разработана на языке высокого уровня Borland Delphi. В программе реализованы следующие компоненты:
• База данных, состоящая из 6 таблиц, из которых 4 справочника, одна операционная таблица и одна вспомогательная таблица;
• Пользовательский интерфейс работы с базой данных;
• Защита от ввода неверных данных.
Введение
Постановка задачи
Таблицы БД и связи между ними
Описание внешнего вида пользовательского интерфейса
Описание алгоритма работы программы
Приложения
Текст проекта football.dpr
Текст модуля gl_form.pas
Текст модуля gl_per.pas
Текст модуля igroki.pas
Текст модуля komandi.pas
Текст модуля dob_klyb.pas
Текст модуля stadioni.pas
Текст модуля transfer.pas
Текст модуля ist_trans.pas
{ 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(
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:=[
kdr:=0;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
form3.showmodal;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[0].Text:=
statusbar1.Panels[1].Text:=
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(
form4.Show;
gp2:=2;
end;
end;
procedure TForm1.N12Click(Sender: TObject);
begin
if gp3=1 then begin
form5:=tform5.Create(
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(
form8.Show;
gp5:=2;
end;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
if gp6=1 then begin
form9:=tform9.Create(
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.
end;
procedure klyb;
begin
form4.Table2.First;
while not form4.Table2.eof do
begin
form4.ComboBox2.Items.Add(
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(
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
if table1.RecordCount>0 then begin
table1.Next;
a1(table1.fieldbyname('nom_
end;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
if table1.RecordCount>0 then begin
table1.Prior;
a1(table1.fieldbyname('nom_
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_
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='+''''+
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>='+
end;
if radiobutton2.Checked then begin
table1.Filtered:=true;
table1.Filter:='rost>='+
end;
end;
procedure TForm4.Button5Click(Sender: TObject);
var
t:integer;
begin
table1.Filtered:=false;
tr:=2;
table1.last;
t:=table1.fieldbyname('nom_
t:=t+1;
table1.Insert;
table1.FieldByName('nom_igr').
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').
table1.FieldByName('ampl').
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_
end; //закрыли редактирование
if tr=1 then begin
if combobox3.text='' then begin showmessage('Есть пустые поля'); exit;end;
table1.FieldByName('ampl').
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)=
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.
label18.Caption:=inttostr(
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
komandi.Prior;
label20.Caption:=komandi.
label18.Caption:=inttostr(
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
komandi.Next;
label20.Caption:=komandi.
label18.Caption:=inttostr(
end;
procedure TForm5.Button5Click(Sender: TObject);
var
a:byte;
begin
kdr:=1; //включаем режим добавления команды
komandi.Last;
a:=komandi.fieldbyname('nom_
form6.komandi.Insert;
form6.komandi.FieldByName('
form6.showmodal;
end;
procedure TForm5.Button7Click(Sender: TObject);
begin
if application.MessageBox('Вы действительно хотите удалить текущую запись?',
'Удаление записи', mb_iconQuestion+mb_yesno)=
komandi.delete;
end;
procedure TForm5.Button6Click(Sender: TObject);
begin
kdr:=2; // включаем режим редактирования команд