Разработка базы данных на языке Borland Delphi

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

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

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

Кафедра ПИУ

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

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

На тему: «Разработка базы данных на языке Borland Delphi»

Выполнили

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

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

номер зачетной книжки 4 090 967

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

номер зачетной книжки 4 090 810

Проверил

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

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

Набережные Челны 2011 г.

Введение

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

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

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

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

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

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

Программа «Футбольные команды и игроки» разработана на языке высокого уровня 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 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

orm4. 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]);

able1. 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; // включаем режим редактирования команд

form6. komandi. Locate ('nom_kom', dbedit12. text, [loCaseInsensitive,

loPartialKey]);

form6. komandi. Edit;

form6. ComboBox1. text:=strani. fieldbyname ('naim_str'). asstring;

form6. ComboBox2. Text:=stadioni. fieldbyname ('naim_st'). AsString;

form6. Caption:='Редактирование команды

+komandi. fieldbyname ('naim'). AsString;

form6. ShowModal;

end;

procedure TForm5. Button8Click (Sender: TObject);

begin

if edit1. text='' then exit;

if not komandi. Locate ('naim', Edit1. Text, [loCaseInsensitive,

loPartialKey]) then

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

end;

procedure TForm5. BitBtn1Click (Sender: TObject);

begin

edit1. text:='';

end;

procedure TForm5. Timer1Timer (Sender: TObject);

begin

label21. Caption:=inttostr (komandi. RecordCount);

end;

procedure TForm5. Button3Click (Sender: TObject);

begin

komandi. First;

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

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

end;

procedure TForm5. Button4Click (Sender: TObject);

begin

komandi. Last;

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

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

end;

end.

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

unit dob_klyb;

interface

uses

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

Dialogs, StdCtrls, DB, DBTables, Mask, DBCtrls, gl_per;

type

TForm6 = class (TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

DataSource1: TDataSource;

DataSource2: TDataSource;

komandi: TTable;

strani: TTable;

stadioni: TTable;

DataSource3: TDataSource;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

ComboBox1: TComboBox;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

ComboBox2: TComboBox;

DBEdit8: TDBEdit;

Button1: TButton;

Button2: TButton;

procedure FormActivate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses komandi;

{$R *. dfm}

Procedure stran;

begin

form6. strani. First;

while not form6. strani. Eof do

begin

form6. ComboBox1. Items. Add (form6. strani. fieldbyname ('naim_str'). AsString);

form6. strani. Next;

end;

end;

Procedure stadion;

begin

form6. stadioni. First;

form6. ComboBox2. Items. Clear;

while not form6. stadioni. Eof do

begin

form6. ComboBox2. Items. Add (form6. stadioni. fieldbyname ('naim_st'). AsString);

form6. stadioni. Next;

end;

end;

procedure TForm6. FormActivate (Sender: TObject);

begin

stran; stadion;

komandi. Refresh;

end;

procedure TForm6. Button1Click (Sender: TObject);

var

a2: byte;

begin

a2: =0;

if kdr=1 then begin //режим добавления клуба

if dbedit1. text='' then a2: =1;

if dbedit2. text='' then a2: =1;

if dbedit3. text='' then a2: =1;

if dbedit4. text='' then a2: =1;

if dbedit5. text='' then a2: =1;

if dbedit6. text='' then a2: =1;

if dbedit7. text='' then a2: =1;

if dbedit8. text='' then a2: =1;

if combobox1. text='' then a2: =1;

if combobox1. text='' then a2: =1;

if a2=1 then begin showmessage ('Введены не все данные');

exit; end;

strani. Locate ('naim_str', Combobox1. Text, [loCaseInsensitive,

loPartialKey]);

komandi. FieldByName ('nom_st'). value:=strani. fieldbyname ('nom_str'). Value;

stadioni. Locate ('naim_st', Combobox2. Text, [loCaseInsensitive,

loPartialKey]);

komandi. FieldByName ('nom_stad'). value:=stadioni. fieldbyname ('nom_stad'). Value;

komandi. Append;

komandi. Refresh;

kdr: =0;

form5. komandi. Refresh;

form6. Close;

end;

a2: =0;

if kdr=2 then begin //режим редактирования клуба

if dbedit1. text='' then a2: =1;

if dbedit2. text='' then a2: =1;

if dbedit3. text='' then a2: =1;

if dbedit4. text='' then a2: =1;

if dbedit5. text='' then a2: =1;

if dbedit6. text='' then a2: =1;

if dbedit7. text='' then a2: =1;

if dbedit8. text='' then a2: =1;

if combobox1. text='' then a2: =1;

if combobox1. text='' then a2: =1;

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

komandi. Edit;

strani. Locate ('naim_str', Combobox1. Text, [loCaseInsensitive,

loPartialKey]);

komandi. FieldByName ('nom_st'). value:=strani. fieldbyname ('nom_str'). Value;

stadioni. Locate ('naim_st', Combobox2. Text, [loCaseInsensitive,

loPartialKey]);

komandi. FieldByName ('nom_stad'). value:=stadioni. fieldbyname ('nom_stad'). Value;

komandi. Append;

komandi. Refresh;

kdr: =0;

form5. komandi. Refresh;

form6. Close;

end;

end;

procedure TForm6. Button2Click (Sender: TObject);

begin

komandi. Cancel;

if kdr=1 then komandi. Delete;

form6. Close;

end;

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

begin

form6. Caption:='Добавление команды';

if kdr=1 then komandi. Delete;

end;

end.

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

unit stadioni;

interface

uses

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

Dialogs, gl_per, StdCtrls, Mask, DBCtrls, DB, DBTables, Buttons;

type

TForm7 = class (TForm)

DataSource1: TDataSource;

Table1: TTable;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Label5: TLabel;

Edit1: TEdit;

Button9: TButton;

BitBtn1: TBitBtn;

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

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button8Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure Button6Click (Sender: TObject);

procedure Button7Click (Sender: TObject);

procedure Button9Click (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

a: byte;

implementation

{$R *. dfm}

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

begin

action: =cafree;

gp4: =1;

end;

procedure TForm7. Button1Click (Sender: TObject);

begin

table1. Prior;

end;

procedure TForm7. Button2Click (Sender: TObject);

begin

table1. next;

end;

procedure TForm7. Button3Click (Sender: TObject);

begin

table1. First;

end;

procedure TForm7. Button4Click (Sender: TObject);

begin

table1. Last;

end;

procedure TForm7. FormCreate (Sender: TObject);

begin

a: =0;

end;

procedure TForm7. Button5Click (Sender: TObject);

var

r: integer;

begin

a: =1; //добавление

table1. Last;

r: =table1. fieldbyname ('nom_stad'). Value;

table1. Insert;

table1. fieldbyname ('nom_stad'). Value:=r+1;

button1. Enabled:=false;

button2. Enabled:=false;

button3. Enabled:=false;

button4. Enabled:=false;

button6. Enabled:=false;

button5. Enabled:=false;

button8. Enabled:=true;

dbedit2. ReadOnly:=false;

dbedit3. ReadOnly:=false;

dbedit4. ReadOnly:=false;

end;

procedure TForm7. Button8Click (Sender: TObject);

var

a1: byte;

begin

a1: =0;

if a=1 then begin //добавление

if dbedit2. text='' then a1: =1;

if dbedit3. text='' then a1: =1;

if dbedit4. text='' then a1: =1;

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

table1. Append;

table1. Refresh;

end;

if a=2 then begin //редактирование

table1. Append;

table1. Refresh;

end;

button1. Enabled:=true;

button2. Enabled:=true;

button3. Enabled:=true;

button4. Enabled:=true;

button6. Enabled:=true;

button5. Enabled:=true;

button8. Enabled:=false;

dbedit2. ReadOnly:=true;

dbedit3. ReadOnly:=true;

dbedit4. ReadOnly:=true;

end;

procedure TForm7. FormActivate (Sender: TObject);

begin

button8. Enabled:=false;

bitbtn1. Caption:='';

end;

procedure TForm7. Button6Click (Sender: TObject);

begin

a: =2; //редактирование

table1. Edit;

button1. Enabled:=false;

button2. Enabled:=false;

button3. Enabled:=false;

button4. Enabled:=false;

button5. Enabled:=false;

button6. Enabled:=false;

button8. Enabled:=true;

dbedit2. ReadOnly:=false;

dbedit3. ReadOnly:=false;

dbedit4. ReadOnly:=false;

end;

procedure TForm7. Button7Click (Sender: TObject);

begin

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

mb_iconQuestion+mb_yesno)=idyes then

table1. delete;

end;

procedure TForm7. Button9Click (Sender: TObject);

begin

if edit1. text='' then exit;

if not table1. Locate ('naim_st', Edit1. Text, [loCaseInsensitive,

loPartialKey]) then

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

end;

procedure TForm7. BitBtn1Click (Sender: TObject);

begin

edit1. text:='';

edit1. SetFocus;

end;

end.

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

unit transfer;

interface

uses

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

Dialogs, gl_per, DB, DBTables, Grids, DBGrids, StdCtrls, ComCtrls, Spin,

ExtCtrls, Buttons;

type

TForm8 = class (TForm)

igroki: TTable;

komandi: TTable;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

Label1: TLabel;

Label2: TLabel;

perehodi: TTable;

DBGrid1: TDBGrid;

Label3: TLabel;

Edit1: TEdit;

Button1: TButton;

Label4: TLabel;

Edit2: TEdit;

Label5: TLabel;

ComboBox1: TComboBox;

Label6: TLabel;

DateTimePicker1: TDateTimePicker;

SpinEdit1: TSpinEdit;

Label7: TLabel;

Button2: TButton;

Timer1: TTimer;

ComboBox2: TComboBox;

BitBtn1: TBitBtn;

Label8: TLabel;

Edit3: TEdit;

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

procedure Button3Click (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure DBGrid1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure DBGrid1KeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

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

procedure Button2Click (Sender: TObject);

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

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

procedure Button1Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

tkl, nkl: integer;

implementation

{$R *. dfm}

procedure new_klyb;

begin

form8. komandi. First;

form8. ComboBox1. Clear;

while not form8. komandi. Eof do

begin

form8. ComboBox1. Items. Add (form8. komandi. fieldbyname ('naim'). AsString);

form8. komandi. next;

end;

end;

procedure tek_klyb;

var

a: integer;

begin

a: =form8. igroki. fieldbyname ('nom_kom'). Value;

form8. komandi. Locate ('nom_kom', a, [loCaseInsensitive,

loPartialKey]);

form8. edit2. text:=form8. komandi. FieldByName ('naim'). AsString;

tkl: =Form8. komandi. fieldbyname ('nom_kom'). Value;

end;

procedure tek_igr;

var

s: string;

begin

s: =form8. igroki. fieldbyname ('fam'). AsString+' '+

form8. igroki. fieldbyname ('ima'). AsString+' '+

form8. igroki. fieldbyname ('otch'). AsString;

form8. edit3. text:=s;

end;

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

begin

action: =cafree;

gp5: =1;

end;

procedure TForm8. Button3Click (Sender: TObject);

begin

tek_klyb;

end;

procedure TForm8. Timer1Timer (Sender: TObject);

begin

new_klyb;

tek_klyb;

tek_igr;

timer1. Enabled:=false;

end;

procedure TForm8. DBGrid1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

tek_klyb;

tek_igr;

end;

procedure TForm8. DBGrid1KeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

tek_klyb;

tek_igr;

end;

procedure TForm8. DBGrid1KeyPress (Sender: TObject; var Key: Char);

begin

tek_klyb;

tek_igr;

end;

procedure TForm8. Button2Click (Sender: TObject);

var

s: string;

a: byte;

begin

a: =0;

s: =combobox1. Text;

komandi. Locate ('naim', s, [loCaseInsensitive,

loPartialKey]);

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

if edit2. text='' then a: =1;

if combobox1. text='' then a: =1;

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

if edit2. text=combobox1. Text then begin

showmessage ('Трансфер невозможен. Новый и текущий клубы совпадают!');

exit;

end;

if spinedit1. Value<100 then begin

showmessage (`Сумма трансфера слишком мала! Такого не может быть!!!');

exit;

end;

perehodi. Insert;

perehodi. FieldByName ('nom_igr'). Value:=igroki. fieldbyname ('nom_igr'). Value;

perehodi. FieldByName ('st_nom_kom'). Value:=tkl;

perehodi. FieldByName ('nw_nom_kom'). Value:=nkl;

perehodi. FieldByName ('dat_per'). Value:=datetimepicker1. Date;

perehodi. FieldByName ('sym'). Value:=spinedit1. Value;

perehodi. Append;

perehodi. Refresh;

igroki. Edit;

igroki. FieldByName ('nom_kom'). Value:=nkl;

igroki. Append;

igroki. Refresh;

showmessage ('Успешная операция!');

end;

procedure TForm8. ComboBox2KeyPress (Sender: TObject; var Key: Char);

begin

key: =#0;

end;

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

begin

if combobox2. text='' then begin

showmessage ('Выберите критерий поиска'); edit1. text:=''; exit; end;

if combobox2. text='по номеру' then begin

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

Key := #0;

end;

end;

procedure TForm8. Button1Click (Sender: TObject);

begin

if edit1. text='' then begin showmessage ('Нет информации для поиска');

exit; end;

if combobox2. text='по номеру' then begin

if not igroki. Locate ('nom_igr', edit1. text, [loCaseInsensitive,

loPartialKey]) then showmessage ('Запись не найдена');

end;

if combobox2. text='по фамилии' then begin

if not igroki. Locate ('fam', edit1. text, [loCaseInsensitive,

loPartialKey]) then showmessage ('Запись не найдена');

end;

end;

procedure TForm8. FormActivate (Sender: TObject);

begin

bitbtn1. Caption:='';

end;

procedure TForm8. BitBtn1Click (Sender: TObject);

begin

edit1. Clear;

end;

end.

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

unit ist_trans;

interface

uses

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

Dialogs, gl_per, DB, DBTables, StdCtrls, Grids, DBGrids, ExtCtrls, Spin;

type

TForm9 = class (TForm)

perehodi: TTable;

komandi: TTable;

igroki: TTable;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

Label1: TLabel;

vspom: TTable;

DataSource4: TDataSource;

DBGrid1: TDBGrid;

Timer1: TTimer;

Label2: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Label3: TLabel;

Edit2: TEdit;

Button4: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label4: TLabel;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

Label5: TLabel;

Label6: TLabel;

Button5: TButton;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Button3: TButton;

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

procedure Timer1Timer (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

{$R *. dfm}

procedure zap_vspom;

var

a1,a2,a3: integer;

s, s1, s2: string;

begin

form9. vspom. First;

while not form9. vspom. Eof do

begin

form9. vspom. Next;

form9. vspom. Delete;

end;

form9. perehodi. First;

while not form9. perehodi. eof do

begin

form9. vspom. insert;

s: ='';

a1: =form9. perehodi. fieldbyname ('nom_igr'). Value;

form9. igroki. Locate ('nom_igr', a1, [loCaseInsensitive,

loPartialKey]);

s: =form9. igroki. fieldbyname ('fam'). AsString+' '

+form9. igroki. fieldbyname ('ima'). AsString;

form9. vspom. FieldByName ('famima'). asstring:=s;

a2: =form9. perehodi. fieldbyname ('st_nom_kom'). Value;

form9. komandi. Locate ('nom_kom', a2, [loCaseInsensitive,

loPartialKey]);

s1: =form9. komandi. fieldbyname ('naim'). AsString;

form9. vspom. FieldByName ('s_kl'). AsString:=s1;

a3: =form9. perehodi. fieldbyname ('nw_nom_kom'). Value;

form9. komandi. Locate ('nom_kom', a3, [loCaseInsensitive,

loPartialKey]);

s2: =form9. komandi. fieldbyname ('naim'). AsString;

form9. vspom. FieldByName ('n_kl'). AsString:=s2;

form9. vspom. FieldByName ('data'). Value:=

form9. perehodi. fieldbyname ('dat_per'). Value;

form9. vspom. FieldByName ('sym'). Value:=

form9. perehodi. fieldbyname ('sym'). Value;

form9. vspom. Append;

form9. vspom. Refresh;

form9. perehodi. Next;

end;

end;

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

begin

action: =cafree;

gp6: =1;

end;

procedure TForm9. Timer1Timer (Sender: TObject);

begin

zap_vspom;

timer1. Enabled:=false;

end;

procedure TForm9. Button1Click (Sender: TObject);

begin

if edit1. text='' then exit;

vspom. Filtered:=true;

vspom. Filter:='famima='+''''+edit1. Text+'''';

end;

procedure TForm9. Button2Click (Sender: TObject);

begin

vspom. Filtered:=false;

end;

procedure TForm9. Button4Click (Sender: TObject);

begin

if edit2. text='' then exit;

vspom. Filtered:=true;

if radiobutton1. Checked=true then

vspom. Filter:='s_kl='+''''+edit2. Text+'''';

if radiobutton2. Checked=true then

vspom. Filter:='n_kl='+''''+edit2. Text+'''';

end;

procedure TForm9. Button5Click (Sender: TObject);

var

a, b: integer;

begin

a: =spinedit1. Value;

b: =spinedit2. Value;

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

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

exit; end;

vspom. Filtered:=true;

vspom. Filter:='sym>'+inttostr (a)+'and sym< '+inttostr (b);

end;

procedure TForm9. Button3Click (Sender: TObject);

begin

vspom. IndexFieldNames:='sym';

end;

procedure TForm9. FormCreate (Sender: TObject);

begin

button3. Hide;

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой