Чемпионат по футболу




Скачать 328,17 Kb.
НазваниеЧемпионат по футболу
страница6/7
Дата публикации30.10.2013
Размер328,17 Kb.
ТипДокументы
pochit.ru > Информатика > Документы
1   2   3   4   5   6   7
^

Навигация по таблицам базы данных

  1. Форма Список команд


Активизируйте форму Список команд. Поместите на нее компонент DBGrid (таблица данных) со страницы Data Controls (управление данными). Для этого объекта следует прописать DataSource (источник данных). Откройте это свойство. Вы увидите, что выбирать пока не из чего. В модуле формы Список команд после служебного слова implementation запишите:

Uses UnitDModul;

Снова откройте свойство DataSource и выберите в нем единственную имеющуюся запись: DataModule1. DS_Team. Теперь компонент DBGrid и компонент DataSource связаны друг с другом. В компоненте DBGrid появились названия полей созданной таблицы Team.

Перейдите в окно DataModule1 и щелкните два раза мышью по объекту TableTeam. Откроется небольшое окно DataModule1. DS_Team. Щелкните на поле этого окна правой кнопкой мыши и в контекстном меню выберите строку Add all fields (добавить все поля).



Рис.10


Перейдите к форме ^ Список матчей и выполните двойной щелчок на объекте DBGrid. Открылось окно Editing DBGrid1.Columns (редактор столбцов). Щелкните на поле этого окна правой кнопкой мыши и в контекстном меню выберите строку Add All Fields (добавить все поля). В окне Editing DBGrid1.Columns появится список всех полей таблицы. Щелкните мышью на одном из появившихся названий полей. Откройте свойство Title (название) и для каждого поля в

свойстве ^ Caption запишите название: Код команды, Название команды, Город, Тренер (см. рисунок 10).

В результате этих действий русские названия полей отразятся в таблице Список матчей. Закройте окно Editing DBGrid1.Columns.
      1. ^

        Перемещение по записям


Для перемещения указателя текущей записи в наборе данных используются следующие методы:

процедура First – установка на первую запись;

процедура Next – установка на следующую запись (для последней записи указатель не перемещается);

процедура ^ Last – установка на последнюю запись;

процедура Prior – установка на предыдущую запись (для первой записи указатель не перемещается).

Delphi предоставляет возможность перемещаться по набору данных с помощью управляющих элементов, в качестве которых можно использовать компоненты DBGrid и DBNavigator. Управление этими элементами приводит к автоматическому вызову ранее перечисленных методов.

Перейдем на форму ^ Список команд. Добавим на форму компонент DBNavigator (навигатор базы данных) со страницы Data Controls (управление данными). Навигатор содержит кнопки, обеспечивающие выполнение различных операций с набором данных путем автоматического вызова соответствующего метода. Состав кнопок определяется свойством VisibleButtons. На рисунке 11 представлен общий вид компоненты DBNavigator.


Рис.11
Кнопки навигатора выполняют следующие действия:

Таблица 14

Номер кнопки на рисунке

Обозначение кнопки

Действие

1

First

Перемещение к первой записи

2

Prior

Перемещение к предыдущей записи

3

Next

Перемещение к следующей записи

4

Last

Перемещение к последней записи

5

Insert

Вставка новой записи перед текущей

6

Delete

Удаление текущей записи

7

Edit

Редактирование текущей записи

8

Post

Сохранение отредактированной информации в базе данных.

9

Cancel

Отмена результата редактирования или добавления новой записи

10

Refresh

Очистка буфера, связанного с набором данных

Внесите изменения в свойства компонента DBNavigator.

Таблица 15

Выделенная компонента

Окно инспектора объектов

Имя свойства

Действие

DBNavigator

Properties

DataSource

(источник данных)

DataModule1.DS_Team

(установление связи объектов)







ShowHint

(показать подсказку)

True







Hints

(подсказка)

Щелкнуть на кнопке с тремя точками, расположенными справа. В появившемся окне встроенного редактора  String List Editor заменить английские на русские названия кнопок:

Первая запись

Предыдущая запись

^ Следующая запись

Последняя запись

Вставка записи

Удаление записи

Редактирование записи

Сохранение изменений

Отменить изменения

Обновить изменения

Завершить работу, щелкнув на кнопке OK.

Сохраните изменения и запустите проект. Убедитесь, что все работает.
      1. ^

        Форма Список матчей


Активизируйте форму Список матчей. Поместите на нее компонент DBGrid и выполните аналогичные действия п.4.5.1 для таблицы Match.

По таблице можно перемещаться программно, без использования компоненты DBNavigator. Для этого внесем изменения в этот компонент, становим свойства, которые позволят использовать для навигации по таблице Match только четыре кнопки First, Prior, Next, Last (см. таблицу 12). Установите эти свойства в соответствии с рисунком 12.



Рис.12

Добавьте на форму компоненты Button (^ Изменить, Добавить, Удалить, Подтвердить, Отменить), Label для вывода состояния записи (Просмотр, Удаление, Редактирование, Вставка) и CheckBox для включения или выключения режима редактирования, как показано на рисунке 13. А так же разместите на форме компоненты меток и рядом с ними соответствующие компоненты для редактирования полей.


Рисунок 13

При заполнении полей ^ Команда – хозяин, Команда – гость таблицы Список матчей, целесообразно значения этих полей выбирать из списка. Если для поля задана таблица выбора, то в него можно ввести только значение, содержащееся в таблице выбора. Это гарантирует, что в поле не будет введено недопустимое значение. Для этого воспользуемся компонентом DBLookupComboBox, с помощью которого можно выбирать нужную информацию из таблицы Team.

Выполните действия, приведенные в таблице 16.

Таблица 16

Выделенная компонента

Окно инспектора объектов

Имя свойства

Действие

Label1

Properties

Caption

^ Дата матча

DBEdit1 со страницы Data Control

Properties

DataSource

DataModule1.DS_Match

DataField

Dat_M

Label2

Properties

Caption

^ Команда - хозяин

DBLookupComboBox1

Properties

DataSource

DataModule1.Ds_Match

DataField

HOST_M

ListSource

DataModule1.DS_Team

KeyField

ID_T

ListField

NAME_T

Label3

Properties

Caption

^ Команда - гость

DBLookupComboBox2

Properties

DataSource

DataModule1.DS_Match

DataField

GUEST_M

ListSource

DataModule1.DS_Team

KeyField

ID_T

ListField

NAME_T

Для того чтобы программа, которую мы будем писать, легко читалась, введем обозначения созданных кнопок и меток. Для этого необходимо изменить свойство Name у соответствующих компонентов (см. таблицу 17).

Таблица 17

Компонента

Условное обозначение

Свойство Name

TButton

Изменить

BtnEdit

TButton

Добавить

BtnInsert

TButton

Удалить

BtnDelete

TButton

Подтвердить

BtnChangeOK

TButton

Отменить

BtnChangeCancel

TButton

Закрыть

BtnClose

TLabel

^ Состояние записи

LblChangeKind

TDBEdit

Дата матча

DbeDat

TDBLookupComboBox

^ Команда - хозяин

DBLHost

TDBLookupComboBox

Команда - гость

DBLGuest

TDBGrid

Таблица

DBGridMatch

TCheckBox

^ Режим редактирования

cbCanEdit


В окне редактора форм перейдите в форму UnitMatch.
1. В разделе Use должны быть включены следующие стандартные модули:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

DB, DBTables, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Mask;
2. А в разделе описания переменных перед implementation должна быть запись:
var

FormSpisok: TFormSpisok;
3. После записи {$R *.dfm} вставим две вспомогательные процедуры:
procedure TFormMatch.StateChange(Sender: TObject);

begin

btnEdit.Enabled:=false;

btnInsert.Enabled:=false;

btnDelete.Enabled:=false;

btnChangeOK.Enabled:=true;

btnChangeCancel.Enabled:=true;

end;
procedure TFormMatch.StateBrowse(Sender: TObject);

begin

cbCanEditClick(Sender);

btnChangeCancel.Enabled:=false;

btnChangeOK.Enabled:=False;

end;
4. Перед разделом private { Private declarations }в раздел описания Type вставим две строки:

procedure StateChange(Sender: TObject);

procedure StateBrowse(Sender: TObject);
5. Для каждой кнопки напишите соответствующую процедуру.



^ BtnEdit – Изменить – OnClick
DataModule1.DS_Match.Dataset.Edit;

lblChangeKind.Font.Color:=clTeal;

lblChangeKind.Caption:='РЕДАКТИРОВАНИЕ ЗАПИСИ';

StateChange(Sender);

if DbeDat.CanFocus then DbeDat.SetFocus;


BtnInsert – ДобавитьOnClick
Var Nomer : Integer;

. . .

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

If MessageDlg('Добавить запись?',

mtConfirmation, [mbYes, mbNo], 0) <> mrYes then Exit;

DataModule1.DS_Match.Dataset.Last;

Nomer:=DataModule1.DS_Match.Dataset.FieldByName('ID_M').AsInteger;

DataModule1.DS_Match.Dataset.Append;

// Номер матча формируется автоматически, путем увеличения номера в последней записи

DataModule1.DS_Match.Dataset.FieldByName('ID_M').AsInteger:=Nomer+1;

lblChangeKind.Font.Color:=clGreen;

lblChangeKind.Caption:='ВСТАВКА ЗАПИСИ';

StateChange(Sender);

if DbeDat.CanFocus then DbeDat.SetFocus;


^ BtnDelete – Удалить – OnClick
// Запрос на подтверждение перехода в режим просмотра удаляемой записи

If MessageDlg('Удалить запись?',

mtConfirmation, [mbYes, mbNo], 0) <> mrYes then Exit;

lblChangeKind.Font.Color:=clRed;

lblChangeKind.Caption:='УДАЛЕНИЕ ЗАПИСИ';

StateChange(Sender);

if btnChangeCancel.CanFocus then btnChangeCancel.SetFocus;


^ BtnChangeOK – Подтвердить – OnClick
// Утверждение изменений в текущей записи (редактируемой или новой)

// или удаления текущей записи (просматриваемой)

If DataModule1.TableMatch.State in [dsEdit, dsInsert]

then

begin

// Проверка заполнения полей

If dbeDat.Text='' then

begin

Beep;

MessageDlg('Не задана дата матча', mtError, [mbOK], 0);

if DbeDat.CanFocus then DbeDat.SetFocus;

Abort;

end;

If DBLHost.Text='' then

begin

Beep;

MessageDlg('Не задана команда - хозяин', mtError, [mbOK], 0);

if DBLHost.CanFocus then DBLHost.SetFocus;

Abort;

end;

If DBLGuest.Text='' then

begin

Beep;

MessageDlg('Не задана команда - гость', mtError, [mbOK], 0);

if DBLGuest.CanFocus then DBLGuest.SetFocus;

Abort;

end;

DataModule1.TableMatch.Post

end

else if lblChangeKind.Caption='УДАЛЕНИЕ ЗАПИСИ'

then DataModule1.TableMatch.Delete;

StateBrowse(Sender);

BtnChangeCancel – Отменить – OnClick
// Если набор данных находился в режиме просмотра (при удалении записи),

// то никаких действий метод Cancel не выполняет

DataModule1.TableMatch.Cancel

StateBrowse(Sender);


^ BtnClose – ЗакрытьOnClick
Close;


cbCanEdit – OnClick
var bm1: TBookmark;

. . .

// Запоминание положения текущей записи

bm1:=DataModule1.Ds_Match.Dataset.GetBookmark;

// Отключение отображения изменений данных в визуальных компонентах

DataModule1.Ds_Match.Dataset.DisableControls;

If not cbCanEdit.Checked then begin

DataModule1.TableMatch.Active:=false;

DataModule1.TableMatch.ReadOnly:=true;

DataModule1.TableMatch.Active:=true;

// Блокировка элементов, связанных с переходом

// в режиме изменения записей

btnEdit.Enabled:=false;

btnInsert.Enabled:=false;

btnDelete.Enabled:=false;

btnChangeCancel.Enabled:=false;

btnChangeOK.Enabled:=false;

lblChangeKind.Font.Color:=clBlue;

lblChangeKind.Caption:='ПРОСМОТР ЗАПИСИ';

DBEDat.Enabled:=false;

DBLHost.Enabled:=false;

DBLGuest.Enabled:=false;

end

else begin

DataModule1.TableMatch.Active:=false;

DataModule1.TableMatch.ReadOnly:=false;

DataModule1.TableMatch.Active:=true;

// Разблокирование элементов, связанных с переходом

// в режиме изменения записей

btnEdit.Enabled:=true;

btnInsert.Enabled:=true;

btnChangeCancel.Enabled:=true;

btnChangeOK.Enabled:=true;

DBEDat.Enabled:=true;

DBLHost.Enabled:=true;

DBLGuest.Enabled:=true;

// Если набор данных пуст, то удаление записей запрещено

If DataModule1.Ds_Match.Dataset.RecordCount>0

then btnDelete.Enabled:=true

else btnDelete.Enabled:=false;

end;

// Возврат в текущую запись

If DataModule1.Ds_Match.Dataset.BookmarkValid(bm1)

then DataModule1.Ds_Match.Dataset.GotoBookmark(bm1);

If DataModule1.Ds_Match.Dataset.BookmarkValid(bm1)

then DataModule1.Ds_Match.Dataset.FreeBookmark(bm1);

// Включение отображения изменений данных в визуальных компонентах

DataModule1.Ds_Match.Dataset.EnableControls;

FormMatch – OnCreate
// Первоначально изменение записей запрещено

cbCanEdit.Checked:=false;

// Запрет автоматического перехода в режим редактирования

DataModule1.DS_Match.AutoEdit:=false;

DBGridMatch.Columns[0].ReadOnly:=True;

FormMatch – OnShow
// Исходное состояние управляющих элементов

StateBrowse(Sender);




      1. ^

        Форма Список голов


Самостоятельно разработайте процесс заполнения и навигацию в форме Список голов.
      1. Задание для самостоятельной работы


    1. На форме Список матчей добавить для каждой команды (команда-хозяин, команда-гость) информацию о городе команды и фамилии тренера.

    2. На форме Список матчей в таблице матчей убрать (видимость) поле код матча.

    3. На форме Список команд добавить кнопку Закрыть форму.

На оценку 5

Самостоятельно разработать форму поиска матчей:

  1. по дате

  2. по команде.

Для найденного матча показать список всех забитых голов и общий счет.

Описать процесс создания формы по примеру данного проекта.
1   2   3   4   5   6   7

Похожие:

Чемпионат по футболу iconЧемпионат Курской области по мини-футболу 2013г

Чемпионат по футболу iconЧемпионат Курской области по мини-футболу 2013г

Чемпионат по футболу iconПеречень дисциплинарных санкций и нарушений
Перечнем дисциплинарных санкций и нарушений, являющимся приложением к Регламенту областных соревнований «Чемпионат, Первенство, Кубок...
Чемпионат по футболу iconО проведении III
Открытый межрегиональный весенний чемпионат интеллектуальных игр (далее Чемпионат) проводится с целью популяризации форм интеллектуального...
Чемпионат по футболу iconСоставте и выполните комплекс утренний гимнастики. Б2 Основные требования...
Б2 Основные требования по обеспечению безопасности при проведении соревнований по баскетболу, футболу, волейболу
Чемпионат по футболу icon1963-64 Чемпионат России 1 Зона

Чемпионат по футболу iconТм и чемпионат мира 25. 12. 2012 Австралия 7

Чемпионат по футболу iconРегламент соревнований на Кубок УпоФКис ко по мини-футболу среди...
Регламент соревнований на Кубок УпоФКис ко по мини-футболу среди дворовых команд 2011
Чемпионат по футболу iconСтад Молико Чемпионат Мира, Групповой этап, 1 Тур " Франция " () " цар " () 3: 1

Чемпионат по футболу iconСтад Молико Чемпионат Мира, Групповой этап, 2 Тур " цар " () " Колумбия " () 1: 4

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2019
контакты
pochit.ru
Главная страница