Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Просмотр демонстрационной базы данных



 

Цель работы: Разработать приложение, предназначенное для просмотра демонстрационной базы данных, поставляемой вместе с Delphi.

Указания к работе

1. Перенесите на форму компонент Table со страницы BDE. Основные свойства компонента Тable – DatabaseName (база данных) и TableName (таблица базы данных). Они указывают, с какой базой данных и с какой таблицей в ней мы хотим связаться.

2. Нажмите кнопку со стрелочкой справа от свойства DatabaseName в инспекторе объектов и выберите из выпадающего списка DBDEMOS – одну из демонстрационных баз данных, поставляемых с Delphi. В свойстве Table Name выберите таблицу biolife. Это таблица, содержащая информацию о рыбах.

3. Выберите поля базы данных с помощью редактора полей. Для этого выполните двойной щелчок по компоненту Table1. Вы увидите пустое поле этого редактора. Щелкните правой кнопкой мыши и из всплывающего меню выберите раздел Add fields (добавить поля). Выберите поля Category –класс, Common_Name – семейство, Species Name – вид, Length (см) –длина, Notes – описание, Graphic – изображение). Для этого щелкните мышью по данным полям, держа нажатой клавишу Ctrl.

4. В свойствах объектов, соответствующих выделенным полям выберите DisplayLabel. В этом свойстве запишите русские названия полей. Они будут отображаться в окне нашего приложения.

5. Переместите на форму компоненты, отображающие содержание полей таблицы. Для этого захватите поле в окне редактора полей курсором мыши и перетащите его на форму. На форме автоматически создадутся компоненты отображения данных. Обратите внимание: создался компонент (один на все поля) – DataSourche1. Он связывает набор данных Table1 c компонентами отображения данных.

6. Повторите операцию перетаскивания для каждого поля и расположите компоненты примерно так, как показано на рис. 5.

 

Рис 5. Форма к лабораторной работе №6

7. Выделите на форме компонент Table1. В свойстве Active установите значение true.

8. Выделите на форме компонент DBMemo. В свойстве ScrollBars установите значение ssVertical – вертикальная.

9. Перенесите на форму компонент DBNavigator со страницы DataControl. Он необходим для просмотра записей базы данных. В его основном свойстве DataSource установите свойство DataSource 1.

Лабораторная работа №7

Разработка информационно-поисковой системы

 

Цель работы: Разработать информационно-поисковую систему в заданной предметной области на основе управления базой данных, созданной в каком-либо формате СУБД. Свой вариант предметной области возьмите из курсовой работы по дисциплине «Программирование на ЯВУ».

Указания к работе

Рассмотрим пример разработки информационно-поисковой системы.

Поля записи: Фамилия, Курс, Факультет, Специальность, Группа. Организовать поиск записей по полю фамилия.

Последовательность выполнения работы:

1) Загрузите программу Delphi. С помощью главного меню дайте команду: Пуск\Borland Delphi 6\Database Desktop.

2) C помощью команды File\New\Table выберете тип таблицы в формате dBase for Windows.

3) Задайте структуру базы данных, определив имена, типы и длины полей следующим образом:

 

Field Name Type Size Dec

Familia C 15

Кurs N 1

Fakultet C 15

Spez C 7

Gruppa N 2

 

Здесь тип С означает символьный тип, N – числовой тип.

 

4) Сохраните файл с помощью команды Save as под именем Stud в какую-либо произвольную папку, например в папку BAZA, находящуюся в корневом каталоге диска С.

5) На форму Delphi перенесите следующие 3 компонента:

a) компонент Dbgrid со страницы Data Controls;

б) компонент Data Source со страницы Data Access;

в) компонент Table со страницы BDE.

 

6) Установите связь между компонентами Dbgrid и Data Source. Для этого в компоненте Dbgrid свойству Data Source поставьте в соответствие Data Source1.

7) Установите связь между компонентами Data Source и Table. Для этого в компоненте Data Source свойству Data Set поставьте в соответствие Table1.

8) В компоненте Тable в свойстве DatabasName укажите путь к файлу базы данных \ BAZA. В свойстве ТableName укажите имя таблицы Stud.dbf. Значение свойства Active установите в True.

9) Перенесите на форму компонент Dbnavigator со страницы DataControls. Свойству Data Source поставьте в соответствие Data Source 1.

10) Запустите программу на исполнение. Введите 8 -10 записей (+ на компоненте Dbnavigator), удалите произвольную запись (- на компоненте Dbnavigator).

11) Перенесите на форму две кнопки. В свойствах Caption этих кнопок запишите Поиск №1 и Поиск №2. Мы рассмотрим 2 способа поиска информации в базе данных. По кнопке Поиск №1 реализуем метод Lookup, который записывает найденную запись в вариантный массив. По кнопке Поиск №2 будет релизован метод Locate, который делает найденную запись текущей.

12) Перенесите на форму строки вывода Label, предназначенные для вывода найденной записи по методу Lookup (см. рис. 6).

 

Рис 6. Форма к лабораторной работе №7

 

13. Для кнопок напишите следующие обработчики событий.

 

procedure TForm1.Button1Click(Sender: TObject);

var

LookupResults: Variant;

begin

LookupResults: =Table1.Lookup('FAMILIA', Edit1.text, 'familia; kurs; fakultet; spez;

gruppa');

if VarType(LookupResults)< > varNull then

begin

label7.caption: =lookupResults[0];

label8.Caption: =lookupResults[1];

label9.Caption: =lookupResults[2];

label10.Caption: =lookupResults[3];

label11.Caption: =lookupResults[4];

end

else

begin

label7.caption: =' ';

label8.caption: =' ';

label9.caption: =' ';

label10.caption: =' ';

label11.caption: =' ';

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

LocateSuccess: Boolean;

SearchOptions: TLocateOptions;

begin

SearchOptions: =[loPartialKey];

LocateSuccess: =Table1.Locate('familia', edit1.text, SearchOptions);

end;

 

14. Просмотрите возможность фильтра в базе данных. Для этого в свойстве Filter компонента Table1 поставьте условие, например Familia='Иванов'. Свойству Filtered поставьте в соответствие True. Отмените фильтр.

15. Запустите программу на исполнение. Просмотрите оба способа поиска записи в базе данных.

 

16. Дополнительное задание

Самостоятельно организуйте фильтр в программном режиме. По нажатию кнопки Фильтр должна выводиться информация о всех студентах с фамилией, указанной в строке ввода. Для выполнения этого задания можно рекомендовать студентам изучить аналогичный пример, приведенный на стр. 51 монографии [ 3 ], см. список литературы.

 

Лабораторная работа №8

Разработка классов в Delphi

Цель работы: Разработать программу, реализующую графический редактор, который рисует окружности по нажатию левой кнопки мыши. Центр окружности совпадает с местоположением курсора. Радиус круга и цвет окружности должны настраиваться. Модуль, предназначенный для рисования окружностей, необходимо разработать в виде класса.

 

Последовательность выполнения работы:

1. Установите на форме компоненты в соответствии с рис. 7.

2. Компоненты, настраиваем с помощью Инспектора Объектов следующим образом:

Form1: Edit1:

Name: =MainForm; Name: =rEdit;

Caption: =’Графический редактор Окружности’; Text: =’’;

Image1: UpDown1:

Name: =Image; Name: =UpDown;

Label1: Associate: =rEdit;

Name: =rLabel; Button1:

Caption: =’Радиус круга’; Name: =ColorButton;

ColorDialog1 Button2:

Name: =ColorDialog Name: =ExitButton;

 

Здеськомпонент UpDown – счетчик, предназначенный для изменения значения в строке ввода, находится на странице Win 32.

Рис 7. Форма к лабораторной работе №8

 

2. Наберите главный модуль программы

unit Main;

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;

 

type

TMainForm = class(TForm)

Image: TImage;

rLabel: TLabel;

rEdit: TEdit;

ColorButton: TButton;

ExitButton: TButton;

UpDown: TUpDown;

ColorDialog: TColorDialog;

procedure FormActivate(Sender: TObject);

procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure UpDownClick(Sender: TObject; Button: TUDBtnType);

procedure ColorButtonClick(Sender: TObject);

procedure ExitButtonClick(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

MainForm: TMainForm;

 

implementation

 

{$R *.dfm}

Uses circle;

Var C: TMyCircle;

 

procedure TMainForm.FormActivate(Sender: TObject);

begin

Image.Canvas.Brush.Color: =clWhite;

Image.Canvas.Pen.Color: =clBlack;

end;

procedure TMainForm.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

// Если нажата левая кнопка мыши

if Button=mbLeft then

begin

// Если объект создан, то уничтожить его

C.Free;

// Конструировать

C: =TMyCircle.Create(Image, X, Y, strtoint(rEdit.Text), Image.Canvas.Pen.Color);

// Изобразить объект с заданными параметрами

C.Draw;

end;

end;

 

procedure TMainForm.UpDownClick(Sender: TObject; Button: TUDBtnType);

begin

// Если объект создан, то перерисовать с другим радиусом;

if C< > nil then

C.ReSize(strtoint(rEdit.Text));

end;

procedure TMainForm.ColorButtonClick(Sender: TObject);

begin

if ColorDialog.Execute then

Image.Canvas.Pen.Color: =ColorDialog.Color;

// Если объект создан, то перерисовать с другим цветом

if C< > nil then

C.ReColor(Image.Canvas.Pen.Color);

end;

procedure TMainForm.ExitButtonClick(Sender: TObject);

Begin Close; End;

Initialization

// Если объект создан, то уничтожить его

Finalization C.Free;

end.

3. Наберите модуль, предназначенный для рисования окружностей. Для того, чтобы добавить в состав проекта новый модуль используйте команду File \ New \ Unit

 

unit Circle;

interface

Uses extctrls, Graphics;

Type TMyCircle=class

private

x, y, r: Word; {координаты центра и радиус окружности}

Color: TColor; {цвет}

Image: TImage; {поле для рисования}

Procedure Clear; {стирание окружности}

Public

{конструктор}

Constructor Create(aImage: TImage; ax, ay, ar: Word; aColor: TColor);

Procedure Draw; {рисование}

Procedure ReSize(ar: Word); {изменение размеров}

Procedure Recolor(acolor: TColor); {изменение цвета}

end;

Implementation

Constructor TMyCircle.Create;

Begin inherited Create; {вызвать наследуемый конструктор}

 

Image: =aImage;

x: =ax; y: =ay; r: =ar; Color: =aColor;

End;

Procedure TMyCircle.Draw;

Begin

Image.Canvas.Pen.Color: =Color;

Image.Canvas.Ellipse(x-r, y-r, x+r, y+r); {нарисовать окружность}

end;

Procedure TMyCircle.Clear;

Var TempColor: TColor;

begin

Color: =Image.Canvas.Brush.Color;

Draw;

Color: =TempColor;

End;

Procedure TMyCircle.ReSize;

Begin Clear; r: =ar; Draw; End;

Procedure TMyCircle.ReColor(aColor: TColor);

Begin Clear; Color: =aColor; Draw; End;

End.

 

Лабораторная работа №9


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 472; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.079 с.)
Главная | Случайная страница | Обратная связь