Все разделы / Основы визуального программирования /


Страницу Назад
Поискать другие аналоги этой работы

(30 )

Основы визуального программирования. Лабораторные работы №1-5.

ID: 180956
Дата закачки: 22 Мая 2017
Продавец: growlist (Напишите, если есть вопросы)
    Посмотреть другие работы этого продавца

Тип работы: Работа Лабораторная
Форматы файлов: Исполняемые фалы (EXE), Microsoft Office, Delphi
Сдано в учебном заведении: ДО СИБГУТИ

Описание:
Лабораторная работа №1

Требования к оформлению отчета:

Отчет должен включать следующее:

файл .doc c текстом программы и видом форм приложения;

папку с проектом Project1
!!! Каждый новый проект, соответствующей одной лабораторной работе, сохраняйте в новой папке.
Тема: Работа с компонентами TPanel (закладка Standard); TDriveComboBox, TFilterComboBox, TDirectoryListBox, TFileListBox (закладка Win 3.1); Tsplitter, TImage (закладка Additional); TStatusBar (закладка Win32).
ЗАДАНИЕ 1: Создать форму как показано на рисунке 1.
Рис.1
1. Рекомендуемый порядок размещения на форме компонентов TPanel, TDirectoryListBox, TFileListBox и TSplitter:
- Panel1, Panel2 – в верхней и нижней частях клиентской области ;

- DirectoryListBox1– слева на клиентской области (свойство Align);

- Splitter1;

- FileListBox1 – на всю оставшуюся клиентскую область (свойство Align).

2. Для установки связей между списками DriveComboBox1, FilterComboBox1, DirectoryListBox1 и FileListBox1 определите следующие свойства (в Инспекторе объектов или в обработчике onCreate формы): DirList (для DriveComboBox1), FileList и DirLabel (для DirectoryListBox1), FileList (для FilterComboBox1),
3. Для вывода в строку состояния имени и размера выделенного файла создайте обработчик события onChange для FileListBox1
Для получения имени выделенного файла используйте свойства Items и ItemIndex (номер выделенного файла) компонента FileListBox1.

ТЕОРИЯ
Функция FindFirst
function FindFirst (const Path: string; Attr: Integer; var F: TSearchRec): Integer;
Осуществляет поиск первого экземпляра имени файла (параметр Path) в заданном каталоге (параметр Path; если каталог не указан – в текущем) с заданным набором аттрибут (параметр Attr). В параметр F возвращается информация о найденном файле в виде записи:

type

TFileName = string;

TSearchRec = record

Time: Integer;

Size: Integer;

Attr: Integer;

Name: TFileName;

ExcludeAttr: Integer;

FindHandle: THandle;

FindData: TWin32FindData;

end;

Таким образом, не открывая файл, можно получать необходимую информацию. Например, F.Name – имя файла (неполное); F.Size – размер файла.

Функция FindFirst возвращает значение 0, если поиск прошел успешно, в противном случае – генерируется код ошибки.

Аттрибуты файла (параметр Attr): faAnyFile, faReadOnly, faHidden, faSysFile, faVolumeID, faDirectory, faArchive . (Используйте в работе аттрибут faAnyFile).



Функции для работы с именем файла



Пр.1

ExpandFileName(F.Name) – полное имя файла F.Name;

Пр.2

FileName:=FileListBox1.FileName;

ExtractFileName(FileName); {извлечение имени файла}

ExtractFileExt(FileName); {извлечение расширения файла}

ExtractFilePath(FileName); {извлечение имени файла}






ЗАДАНИЕ 2: Изменить Form1 на рис. 1 (задание 1) следующим образом: использовать для реализации строки состояния вместо компонента TPanel компонент TStatusBar. Структура компонента TStatusBar показана на рис. 2.




Рис. 2


Размер первых двух панелей зависит от значения свойства Directory компонента DirectoryListBox1. Размер третьей панели, отображающей текущее время, не меняется.



ЗАДАНИЕ 3: 1. Поместить на форму компонент TImage как показано на рис.2. Отображать внутри компонента графическое изображение только в том случае, если в FileListBox1 выбран BMP-файл.



2. Поместить на Panel1 компонент TSpeedButton (быстрая кнопка) с изображением часов (или с любым другим). Выбор изображения – свойство Glyph.



При нажатии на эту кнопку:

· время в строке статуса должно выключаться;

· состояние кнопки - нажата.



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



- AllowAllUp:=True; - повторное нажатие на кнопку изменяет ее состояние

( False – для изменения состояния надо нажать другую кнопку) - GroupIndex:=1 {любое ненулевое целое значение}; – индекс группы (если 0 - нет группы);

- Down:=True; - нажата (False - отжата). Работает только при AllowAllUp=True и в группе (т.е. GroupIndex<>0)


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

Требования к оформлению отчета:

Отчет должен включать следующее:

файл .doc c текстом программы и видом форм приложения;

папку с проектом Project1



!!! Каждый новый проект, соответствующей одной лабораторной работе, сохраняйте в новой папке.

Тема: Компоненты MainMenu, PopupMenu, Memo, OpenDialog, SaveDialog.

Создание вложенного динамического меню.



ЗАДАНИЕ 1: Создание простейшего редактора, который работает с файлом memos.txt, находящемся в текущей папке.



1. Создайте главное меню – компонент MainMenu - с пунктами:

File

Help



New

About… F1

Open… F3



Close



Save F2



Save As…



Exit Alt+X







1.1. Создайте обработчики событий, поступающих от объектов:

Exit1 – закрытие формы;

About1 – информация об авторах в стандартном окне (MessageDlg).

(Примечание: для размещения текста в нескольких строчках используйте #13#10.

Например: ‘Авторы’#13#10’Студенты СибГУТИ’)

1.1. Запустите Приложение



2. Создать всплывающее меню – компонент PopupMenu, содержащее пункты: Save, About, Exit.

2.1. PopupMenu должно появляться во время работы Приложения при нажатии на правую кнопку мыши. Для того, чтобы форма могла использовать PopupMenu, определите значение свойства PopupMenu для формы.

2.2. Для обработки событий OnClick объектов About2 и Exit2 установите обработчики событий OnClick объектов About1 и Exit1.

2.3. Запустите Приложение и проверьте работу объекта PopupMenu.



3. Поместите на форму объект Label. Присвойте свойству Caption значение FileName.

4. Поместите на форму объект Edit под объектом Label. Измените значение свойства Text объекта Edit1 на memos.txt .

5. Поместите на форму объект Memo. Измените его размер и выровняйте компоненты, расположенные на форме, используя в главном меню Edit | Align. (Для выделения группы компонентов используйте ‘захват’ компонентов левой кнопкой мыши)

6. Уберите у свойства Lines объекта Memo1 его значение. Установите вертикальную и горизонтальную полосы прокрутки, используя свойство ScrollBar объекта Memo1.

7. Для создания обработчика события, заключающегося в выборе пункта Save в главном меню, в процедуру обработки события OnClick объекта Save1 главного меню запишите код: Memo1.Lines.SaveToFile(‘memos.txt’);

Для обработки события OnClick объекта Save2 всплывающего меню подключите ту же процедуру Save1Click.

8. В процедуру обработки события OnActive формы запишите следующий код:

If FileExists(‘memos.txt’) then Memo1.Lines.LoadFromFile(‘memos.txt’)

else Memo1.Lines.SaveToFile(‘memos.txt’);

Тогда, если при запуске Приложения файл memos.txt существует в текущей папке, то он загружается в окно Memo1. В случае отсутствия файла memos.txt в текущей папке создается новый пустой файл memos.txt (в файл записывается пустое значение свойства Lines объекта Memo1).

9. Для того, чтобы сразу после запуска Приложения курсор находился в окне объекта Memo1, установите значения свойства ActiveControl формы, равным Memo1.



10. Запустите Приложение и проверьте его работу.



ЗАДАНИЕ 2: Создание простейшего редактора, который работает с диалоговыми окнами открытия и сохранения файлов.



1. Модифицируйте ранее созданный редактор:

· Удалите с формы объекты Edit1, Label1;

· Очистите событие OnActive формы;

· Свойство PopupMenu формы сделайте пустым;

· Размер объекта Memo1 сделайте во всю клиентскую область (свойство Align );

· Добавьте на форму компоненты OpenDialog и SaveDialog;

· Определите свойства Default, Filter, FilterIndex, Title этих компонентов;

2. По событию OnClick объекта Open1 должны выполняться следующие действия:

· Открываться диалоговое окно открытия файла;

· При закрытии окна по кнопке Open:

- В Memo1 загрузить выбранный файл;

- В заголовок формы - полное имя файла;

- Memo1 сделать видимым;

- Save1, SaveAs1 – включить (т.е. сделать доступными);

3. По событию OnClick объекта Save1 должны выполняться следующие действия:

· Сохраняться текст Memo1 в том же файле без запроса (Имя текущего файла является значением свойства Caption формы – см. обработчик события OnClick объекта Open1)

(Запустите Приложение и проверьте работу Open1 и Save1, используя файл memos.txt)



4. По событию OnClick объекта SaveAs1 должны выполняться следующие действия:

· В диалоговом окне сохранения файла должно предлагаться имя, заданное в заголовке формы;

· Текст из окна объекта Memo1 сохраняется в файле с выбранным пользователем именем;

(Запустите Приложение и проверьте работу SaveAs1)



5. По событию OnClick объекта New1 должны выполняться следующие действия:

· Очистить поле Lines объекта Memo1;

· Memo1 сделать видимым;

· SaveAs1 – включить (т.е. сделать доступным);

· Save1 – выключить (т.е. сделать недоступным);

(Запустите Приложение и проверьте работу New1)



6. По событию OnClick объекта Close1 должны выполняться следующие действия:

· Memo1 сделать невидимым;

· SaveAs1, Save1 – выключить (т.е. сделать недоступными);

· В заголовок формы – Form1;



7. Запустите Приложение и проверьте его работу.



8. Сразу после запуска Приложения Memo1 должно быть невидимым;

При выборе пункта меню New, объект Memo1 должен становиться активным.

Установите свойство WindowState формы на значение wsMaximized.



Запустите готовое Приложение и проверьте его работу.

ЗАДАНИЕ 3: Создание пункта File главного меню текстового редактора с возможностью добавлять имена файлов во вложенное динамическое меню пункта Reopen, максимальный размер которого ограничен 4 пунктами.

1.


Создайте главное меню следующего вида:
Для создания вложенного меню пункта Reopen нажмите Ctrl+<&#8594;>. Доступность пункта меню определяет значение свойства Enabled, для пунктов Reopen, Save, Save As, Close установите это свойство равным False. Эти пункты становятся доступными после выполнения команды New или Open. Все пункты вложенного меню для Reopen невидимы (установите свойства Visible равным False) и заполнены фиктивными именами файлов.
Получить доступ к пунктам меню можно обращаясь к ним по именам, а также при помощи свойства Items компонентов MainMenu. Items – это объект класса TmenuItem, к нему можно обращаться как к массиву, причем индекс первого элемента массива равен 0. Например, File1.Items[3] определяет пункт Save. Кроме того, каждый пункт меню также является объектом класса TmenuItem и, поэтому, так же обладает свойством Items, которое обеспечивает доступ к пунктам подменю. Например, File1.Items[2].Items[0] или Reopen1.Items[0] определяют пункт Name0. При работе с несколькими пунктами меню удобнее пользоваться свойством Items. Свойство Count объектов класса TmenuItem равно количеству элементов в массиве Items.

2. Команды Save, Save As не имеют обработчиков событий.

3. В обработчике события OnClick пункта меню New должно быть реализовано следующее:

&#168; Пункты меню Save, Save As, Close становятся доступны.

&#168; Если пункт Reopen доступен (т.е. содержит список конкретных файлов), то убирается пометка с имени файла (свойство Checked пункта меню) в подменю Reopen.

4. В обработчике события OnClick пункта меню Close должно быть реализовано следующее:

&#168; Пункты меню Save, Save As, Close становятся недоступны.

&#168; Убирается пометка в списке имен ранее открывавшихся файлов.

5. Поместите на форму компонент OpenDialog.

6. Команда Open открывает диалоговое окно открытия файла и, в случае выбора файла, добавляет его в подменю Reopen в качестве нулевого пункта и помечает этот пункт. При добавлении нового имени весь список имён смещается вниз.
В обработчике события OnClick пункта меню Open должно быть реализовано следующее:

&#168; Открывается диалоговое окно открытия файла. Если пользователь выбрал файл для открытия, то выполняется следующее:

· Пункты меню Save, Save As, Close становятся доступны.

· Для пункта Reopen необходимо:

&#224; Установить доступность.

&#224; Выполнить смещение в имеющемся списке имен файлов на одну позицию вниз с сохранением свойства Visible от предыдущего элемента. При смещении списка изменяется нумерация в названии пунктов меню. Для изменения этой нумерации используйте процедуру Delete из модуля System ( Внимание! У пунктов меню тоже имеется метод Delete).

&#224; В качестве нулевой строки вложенного меню установить подчеркнутую цифру 0, а за ней полное имя файла, полученное из диалогового окна. Свойство Visible этой строки установить равным True.

&#224; Убрать старую пометку в списке имен файлов и установить пометку в нулевой строке.

&#168; Добавьте в процедуру обработку ситуации, когда открываемый файл уже имеется в списке ( запомните его номер и при смещение вниз в списке имен не изменяйте пункты полменю Reopen , следующие за этим номером). Для выделения из строки списка полного имени файла используйте процедуру Delete из модуля System.

7. В обработчике события OnClick пункта вложенного меню должно быть реализовано следующее:

&#168; Для пункта Reopen необходимо:

· Убрать старую пометку в списке имен файлов.

· Поставить пометку на том имени файла, по которому щелкнули мышкой, рассматривая параметр Sender, передаваемый в обработчик, как представитель класса TmenuItem.

8. Дополните написанные обработчики событий, используя функцию function ExtractFileName(const FileName: string): string для выделения неполного имени файла, таким образом, чтобы на месте заголовка формы, кроме самого заголовка формы, отображалось ещё и неполное имя выбранного файла.



Лабораторная работа №3 БД

Требования к оформлению отчета:

Отчет должен включать следующее:

файл .doc c текстом программы и видом форм приложения;

папку с проектом Project1



!!! Каждый новый проект, соответствующей одной лабораторной работе, сохраняйте в новой папке.

Задание 1:Создание простейшего приложения базы данных с использованием эксперта форм базы данных (DataBase Form Wizard).

1. Создайте новое приложение.

2. Выполните команду DataBase - Form Wizard (или File - New и на закладке Business выберите элемент DataBase Form Wizard).

&#168; В раскрывшемся окне DataBase Form Wizard выберите опции:

· Create a simple form;

· Create a form using Ttable objects.

Нажмите кнопку Next.

&#168; В следующем раскрывшемся окне выберите в комбинированных списках папку C:\\Program Files\\Borland\\Delphy3\\Demos\\Data. После этого, на панели слева выведится список таблиц. Выберите в этом списке таблицу Animals.dbf и нажмите кнопку Next.

&#168; В следующем окне переместите все поля из левого списка в список Selected с помощью кнопки >>. В этом же окне можно поменять порядок полей с помощью кнопок ­ и &#175;. Для перехода к следующему окну нажмите кнопку Next.

&#168; В следующем окне выберите компоновку формы In a grid для создания формы наподобие электронной таблицы, в которой можно просматривать и редактировать несколько записей сразу (по одной в каждой строке) и нажмите кнопку Next.

&#168; В следующем окне включите параметр Generate a main form и в списке переключателей Form generation выберите Form only и нажмите кнопку Finish.

3.


Через Менеджер проектов удалите из приложения Form1, которая осталась пустой, и, следовательно, бесполезной.

4. Установите свойство ShowHint для объекта DBNavigator равным True (для появления подсказок, когда курсор будет задерживаться над кнопкой панели). Замените свойство Align для объекта DBGrid1 и поместите на форму справа от объекта DBGrid1 компонент DBImage для просмотра поля BMP записи. Для объекта DBImage1 установите свойство Strech равным True для того, чтобы помещаемое изображение занимало всю область внутри DBImage1. Установите значения свойств DataSourse и DataField объекта DBImage1. Поместите на верхнюю панель кнопку Close.

5. Сохраните созданное приложение базы данных.

6. Запустите созданное приложение базы данных. На верхней панели работающего приложения расположен объект DBNavigator с кнопками управления базой данных.

Пиктограмма

Функция

Описание



Движение к началу

Перемещает к первой записи в таблице



Движение к предыдущему

Перемещает к предыдущей записи в таблице



Движение к следующему

Перемещает к следующей записи в таблице



Движение к последнему

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



Вставить

Вставляет новую запись в текущую позицию



Удалить

Удаляет текущую запись



Редактировать

Разрешает изменять поля текущей записи



Сохранить

Сохраняет изменения в записи



Отменить

Отменяет изменения в текущей записи



Обновить данные

Заново загружает текущую запись. Это удобно при множественном доступе к базе данных, когда текущая запись может оказаться измененной.





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

Задание 2:Создание новой базы с помощью утилиты Database Desktop.

1. Выполните команду Tools – Database Desktop для вызова утилиты.

2. Выполните команду File – Working Directory и установите в качестве рабочей директории ту, где находятся или будут находиться таблицы базы данных.

3. Выполните команду File – Private Directory и установите директорию для хранения временных файлов при создании и модификации таблиц базы данных (можно установить C:\\Temp).

4. В появившемся диалоговом окне Database Desktop выполните команду Tools – Alias Manager для создания нового псевдонима базы данных. (Псевдоним скрывает реальные устройства и маршруты, указывающие на расположение файлов базы данных. Обычно имя псевдонима совпадает с именем папки, где размещается база данных). В окне Alias Manager выполните следующие действия:

&#168; Щёлкните по кнопке New.

&#168; Введите новое имя псевдонима, установите Drive Type равным Standard. Для выбора полного пути к нужной папке щёлкните по кнопке Browse и осуществите установку нужного устройства и папки в списках.

&#168; Для сохранения установленного псевдонима щёлкните по кнопке Keep New.

&#168; Закройте окно Менеджера алиасов. Созданный алиас будет сохранён на период сеанса работы с Delphi.

5. Выполните команду File – New – Table для создания таблицы и в окне запроса выберите формат таблицы – таблица базы данных Paradox 7.

6. В таблице будем хранить информацию о работниках. Каждое поле должно быть занесено в список (Field Roster) диалогового окна Create Paradox 7 Table.

&#168; Введите первое поле с именем LastName. Для выбора типа данных этого поля щёлкните правой кнопкой мыши на поле Type и выберите тип Alpha (строка) из появившегося списка. Введите наибольший размер строки (для этого поля это - 10), отметьте, что поле LastName является ключом.

&#168; Продолжайте определять поля, используя информацию из следующей таблицы:

Имя поля

Тип

Размер

Ключ

LastName

A

10

*

FirstName

A

10

*

PhoneExt

N





HireDate

D





SalaryLast

I





SalaryCurrent

I





7. После ввода всех полей щёлкните по кнопке Save As, выберите созданный ранее псевдоним из раскрывающегося списка, введите имя таблицы, выберите параметр Показать таблицу и щёлкните по кнопке OK.

8. Выполните команду Table – Edit Data и введите три записи в таблицу:

Nelson

Roberto

250

28.12.1988

40000

41000

Jonhson

Leslie

410

05.04.1984

25000

24500

Weston

Terry

256

01.05.1990

33260

35800

9. Закройте утилиту Database Desktop.

10. Создайте новое приложение.

11. Поместите на форму компонент Table (на закладке Data Access). В Инспекторе Объектов установите свойства:

- DatabaseName равное псевдониму базы данных, в которой будет сохраняться таблица. Выберите этот псевдоним из раскрывающегося списка.

- TableName равное имени таблицы, выбрав имя из раскрывающегося списка имён таблиц для заданного псевдонима.

- Active равное True для того, чтобы при запуске приложения сразу открывалась таблица.

12. Поместите на форму компонент Data Sourse. Для связи этого компонента с таблицей установите его свойство DataSet.

13. Поместите на форму сетку для данных – объект DBGrid (закладка DataControl). Установите его свойство DataSourse.

14. Поместите на форму компонент DBNavigator. Установите его свойство DataSourse и ShowHint (для появления подсказок, когда курсор будет задерживаться над кнопкой панели).

15. Поместите на форму компонент DBEdit и установите для него свойства DataSourse и DataField (поле записи, которое будет отображаться в компоненте).

16. Запустите приложение. В работающем приложении добавьте записи таким образом, чтобы таблица имела вид:

Nelson

Roberto

250

28.12.1988

40000

41000

Yoing

Bruce

233

06.02.1989

28000

30000

Jonhson

Leslie

410

05.04.1984

25000

24500

Forest

Phil

229

17.04.1989

32300

31000

Weston

Terry

256

01.05.1990

33260

35800

17. Во многих случаях требуется ограничить количество отображаемых полей таблицы, или изменить порядок следования полей, или создать вычисляемые поля. Эту задачу можно выполнить путём создания и модификации виртуальных полей, полученных из физических полей с помощью редактора Field Editor. Переконфигурируйте информацию из базы данных следующим образом: оставьте в таблице столбцы LastName и FirstName, поменяв их местами, столбцы SalaryLast, SalaryCurrent и добавьте вычисляемый столбец Additions для определения прироста зарплаты. Для этого выполните следующее:

&#168; Выполните двойной щелчок на объекте Table1, чтобы попасть в окно редактора Fields Editor.

&#168; Щелчок правой кнопкой позволит выбрать нужные поля с помощью команды Add и создать новое виртуальное вычисляемое поле с помощью команды New.

&#168; В обработчик OnGetText виртуального вычислимого поля (выберите его через инспектор объектов) добавьте вычисления прироста зарплаты, определив параметр Text как разность свойств Value соответствующих полей.

18. С помощью редактора столбцов Column Editor можно ограничить количество отображаемых с помощью компонента DbGrid полей виртуальной таблицы. Для отображения в приложении столбцов LastName, FirstName и Additions выполните следующее:

&#168; Выполните двойной щелчок на объекте DbGrid1, чтобы попасть в окно редактора Column Editor.

&#168; Щёлкните по кнопке Add New Fields.

&#168; Из списка полей виртуальной таблицы удалите с помощью кнопки Delete те поля, которые не будут отображаться с помощью DbGrid1.

19. Запустите приложение.




Лабораторная работа №4 БД

Требования к оформлению отчета:

Отчет должен включать следующее:

файл .doc c текстом программы и видом форм приложения;

папку с проектом Project1



!!! Каждый новый проект, соответствующей одной лабораторной работе, сохраняйте в новой папке.


Тема: Базы данных



ЗАДАНИЕ 1

1. Создание таблиц.


Создайте таблицы: Faculty (Название факультета, Курс, Количество групп на курсе ),

Group (Название группы, Фамилия старосты, Количество студентов в группе),

Stud (ФИО, Домашний адрес, Телефон).

(см. лекцию, п.8.3)

Таблица Faculty

Filed name

Type

Size

Key











F_Num

+



*











F_Name

A

5













F_Kurs

I















F_KolGrp

I

















Таблица Group Таблица Stud

Filed name

Type

Size

Key



Filed name

Type

Size

Key

G_Num

+



*



St_Num

+



*

F_Num

I







G_Num

I





G_Name

A

10





St_FIO

A

50



G_Prefect

A

20





St_HomeAdr

A

80



G_KolStd

I







St_HomeTel

A

15







- При выполнении команды Save as… создайте новый каталог для хранения Приложения, а внутри – еще один каталог (н-р, Base) для хранения базы (в нем и сохраняйте таблицы).

- При необходимости видеть таблицу сразу после сохранения включите опцию Display table.

- Для удобства работы установите рабочую дирректорию: Working Directory.



2. Построение внешних ключей

1) Постройте внешние ключи так, чтобы

- в таблице Group отображались только записи с группами текущего факультета таблицы Faculty;

- в таблице Stud отображались только записи со студентами текущей группы таблицы Group.

Для построения внешнего ключа таблицы Stud:

Открыть таблицу Stud. Выбрать пункт меню Table|Restructure, в свойствах таблицы выбрать пункт Referential Integrity| - Define, выбрать главную таблицу (справа) и ключ (слева) для организации связи главный-подчиненный между таблицами Group и Stud, Ok.

Аналогично постройте внешний ключ таблицы Group для связи с таблицей Faculty



2) Посмотрите значения свойства Secondary Indexes у таблиц Group и Stud (Table | Info Restructure…). После построения внешнего ключа система автоматически индексирует (создает вторичный индекс) поле, по которому построен ключ.



Примечание: При работе (Restructure) с какой-либо таблицей, окна других таблиц лучше закрыть.

3. Разработка Приложения

1) Разместить на форме компоненты как показано на рисунке 1.



Рис.1

2) Сохранить Приложение в том же каталоге, где хранится каталог базы данных

3) Для удобства работы изменить названия компонентов TTable на tbF, tbGrp, tbStd и TDataSource на dsF, dsGrp, dsStd.

4) Связать компоненты и активизировать таблицы (см. лекцию, п.8.4).

Должны появиться пустые таблицы с заголовками полей.



4. Объединение таблиц.

1) Свойство MasterSource: TDataSource; - определяет имя главной таблицы в связи главный-подчиненный

Установите TbStd.MasterSourse - dsGrp;

TbGrp.MasterSourse - dsF;



2) Свойство MasterFields: String; - Содержит список полей главной таблицы, по которым в данной подчиненной таблице будет установлена связь главный - подчиненный



Работа с полем MasterFields компонента tbStd: в строке Available Indexes выбрать внешний ключ таблицы Stud, в Detail Fields выделить ключ, в Master Fields выделить первичный ключ, нажать Add (в Joined Fields появится отношение), Ok.



3) Сохраните Приложение



5. Заполнение таблиц.

- Запустите Приложение (обратите внимание на скорость запуска Приложения при первом запуске и при последующих) и заполните таблицы (поля F_Num, G_Num, St_Num заполняются автоматически).

Примечание: Удалить запись – Ctrl-Delete

- Измените у какой-нибудь записи таблицы Stud значение поля G_Num. Посмотрите, что получится.

- Завершите работу Приложения.



6. Редактирование полей

1) Чтобы работать с конкретным полем надо создать объект для этого поля.



Примечание: Если определен объект-поле, получить доступ к полю можно по имени этого объекта. После создания объектов-полей обратите внимание как образуются их имена.



Создание полей-объектов. Дважды щелкните по компоненту TTable (или щелкните правой кнопкой мыши и выберите Fields Editor). На экране появится пустое окно редактора полей. Щелкните правой кнопкой мыши и выберите Add Fields – будет показан список всех полей текущей таблицы. Выделите все поля и Ok.



2) Для настройки полей поочередно щелкайте мышью в списке редактора по каждому полю и в окне Object Inspector устанавливайте нужные значения свойств.

- DisplayLabel – заголовок поля (замените названия полей на русские);

- DisplayWidth – ширина поля;

- Alignment – расположение значений поля относительно границ;

- Index – номер поля в таблицы (нумерация поле начинается с 0) – не изменять;

- ReadOnly – только для чтения;

- Visible – видимость (можно сделать невидимыми ключевые поля, , которые необходимы для обеспечения уникальности, но не несут никакой смысловой нагрузки). (Для выполнения следующих пунктов изменять значения Visible на False не рекомендуется)



3) Сохраните Приложение



7. Проверка работы Приложения

1) Запустите Приложение и проследите за изменением индексированных полей во всех таблицах каждый раз при переходе на другую запись.

2) С помощью Database Desktop просмотрите содержимое и структуры таблиц.



ЗАДАНИЕ 2

Добавить в Приложение (см. рис. 2)

1. Для таблицы Facultу и Group – компонент TDBNavigator.

Установите свойства TDBNavigator: DataSource = dsF (dsGrp);

ShowHint = True

2. Для таблицы Stud:

- Перемещение на первую запись (First)

- Перемещение на одну запись назад (Prior)

- Перемещение на одну запись вперед (Next)

- Перемещение на последнюю запись (Last)

- Добавление новой записи (значение поля Фамилия - из Edit1) (Insert)

- Редактирование записи (значение поля Фамилия - из Edit1) (Edit)

- Удаление записи (Delete)

- Удаление всех записей (Del All)

- Перемещение на заданное количество записей, \'-\' – движение к первой записи (Move by)

- Включение режима сортировки (неотсортированный список/ сортировка по фамилиям).

Для возможности сортировки по полю Фамилия надо создать вторичный индекс таблицы Stud по двум полям: G_Num и St_FIO (Фамилия). Для этого выполните следующее:

· Установите значения свойства Active=False у всех таблиц (это необходимо, чтобы можно было реконструировать таблицы. При Active=True таблицы находятся в режиме работы с базой данных и изменять их нельзя)

· Запустите DBD и создайте вторичный индекс известным способом

· Вернитесь к Приложению и у всех таблиц установите значения свойства Active=True

– Поиск фамилии способом перебора (Фамилия набирается в Edit2)






Рис. 2

2. Для выполнения в таблице Stud Точного поиска и Поиска по символам необходимо:

· Установить значения свойства Active=False у всех таблиц

· Запустить DBD и создать вторичный индекс (inFIO) табл. Stud по полю St_FIO

· Вернуться в Приложение к табл. Stud и установить значение свойства Active=True (у таблиц Faculty и Group свойство Active=False)

· Запустить Приложение и проверить оба варианта поиска.



Примечание:

1) Поиск по символам - набирая последовательно буквы в строке Edit2, курсор должен перемещаться на запись с наиболее похожым значением поля Фамилия.

2) Точный поиск - набрав фамилию в строке Edit2, курсор должен перемещаться на запись с такой же Фамилией.

3) Для возвращения работы со всей базой надо: Установить значения свойства Active=True у всех таблиц; Текст обработчиков событий Точного поиска и Поиска по символам оформить как комментарий.

ЛАБОРАТОРНАЯ РАБОТА №5_БД
Требования к оформлению отчета:
Отчет должен включать следующее:
файл .doc c текстом программы и видом форм приложения;
папку с проектом Project1

!!! Каждый новый проект, соответствующей одной лабораторной работе, сохраняйте в новой папке.

Задание 1:Динамическое изменение SQL-запросов.
1. Разместите на форме компонент Query (закладка Data Access на панели компонентов) и определите для него следующие свойства:
• DatabaseName: DBDEMOS (выберите из списка)
• SQL (выбрать все поля из таблицы Country);
• Active.
2. Разместите на форме компонент DataSourse (определите для него свойство DataSet), DbGrid (определите для него свойство DataSourse).
3. Разместите на форме четыре метки для полей, по которым будет формироваться запрос, шесть кнопок для выполнения запросов по условиям, наложенным на поля таблицы Country и компонент TabControl (из закладки Win32).
4. Щелчки по кнопкам должны выполнять выполнение следующих запросов:
• для кнопки All отображается все поля и записи из таблицы Country;
• для кнопки C.. отображаются те записи таблицы, у которых поле Name начинается с буквы ‘C’;
• для кнопки ..C.. отображаются те записи таблицы, у которых поле Name содержит букву ‘C’;
• для кнопки South America отображаются те записи таблицы, у которых поле Continent принимает значение ‘South America’;
• для кнопки North America отображаются те записи таблицы, у которых поле Continent принимает значение ‘North America’;
• для кнопки Sort таблица отображается в отсортированном по полю Population виде.
Обработчики событий OnClick для всех кнопок должны содержать следующие действия:
• закрыть текущий запрос (метод Close объекта Query1);
• очистить список строк запроса (метод Clear свойства SQL);
• добавить новую строку в запрос (метод Add свойства SQL);
• обработать новый запрос (метод Open объекта Query1).
5. Названия закладок компонента TabControl1 определяются в обработчике OnCreate формы с помощью метода Add свойства Tabs объекта TabControl1.
6. С помощью обработчика событий OnChange объекта TabControl1 определите отображаемую информацию из таблицы (значения поля Capital должны начинаться на выбранную из закладки букву) при помощи параметризованного запроса, параметр которого будет определяться из названия закладки. В этом обработчике необходимо выполнить следующее:
• закрыть текущий запрос (метод Close объекта Query1);
• очистить список строк запроса (метод Clear свойства SQL);
• добавить новую строку параметризованного запроса (метод Add свойства SQL);
• определить с помощью метода ParamByName значение параметра с указанным именем:
ParamByName(‘<имя параметра>’).Value:=<значение закладки>+’%’
• обработать новый запрос (метод Open объекта Query1).
7. Определите порядок табуляции объектов, имеющих фокус с помощью команды Edit-Tab Order.
8. Для объекта DbGrid установите свойство TabStop равным False, свойство ReadOnly равным ReadOnly.
9. Запустите приложение. Проверьте работу всех кнопок и закладок.
Задание 2:Связывание и объединение таблиц (таблицы Orders.db и Items.db из базы данных, имеющей псевдоним DBDEMOS, связываются и объединяются по полю OrderNo).
1. Поместите на форму три метки, три компонента Query, три компонента DataSourse, три компонента DbGrid.
2. Свяжите соответствующие объекты Query, DataSourse, DbGrid между собой.
3. Для компонента Query1 (таблица Orders) определите SQL-запрос:
выбрать все записи с полями OrderNo, CustNo и SaleDate из таблицы Orders.
4. Для компонента Query2 (таблица Items) определите SQL-запрос:
выбрать те записи с полями OrderNo, PartNo и Qty из таблицы Items, в которых поле Orders принимает значение некоторого параметра. Значение этого параметра должно определяться набором данных, используемых объектом Query1, поэтому установите свойство DataSourse для объекта Query2 равным DataSourse1.
5. Для компонента Query3 (таблица Join) определите SQL-запрос:
выбрать те записи с полями OrderNo, CustNo, SaleDate из таблицы Orders и PartNo, Qty из таблицы Items, у которых совпадают значения полей OrderNo и упорядочить их по полю OrderNo.
6. Установите свойство Active для всех объектов класса TQuery равным True.
7. Запустите приложение.

Комментарии: Все работы зачтены с первого раза. Преподаватель -
Ситняковская Елена Игоревна

Размер файла: 3,8 Мбайт
Фаил: Упакованные файлы (.rar)
-------------------
Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
-------------------

   Скачать

   Добавить в корзину


    Скачано: 13         Коментариев: 0


Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них.
Опять не то? Мы можем помочь сделать!

Некоторые похожие работы:

ЛАБОРАТОРНЫЕ РАБОТЫ №1-3 по дисциплине «Современные технологии программирования (часть 2)». Вариант общий. 2019 год.
Лабораторные работы 1, 2, 3. Современные технологии программирования (часть 2). Все варианты (2019)
Курсовая работа по дисциплине: Проектирование информационных систем. Вариант №3
Лабораторные работы №№1-5 по дисциплине: Основы визуального программирования.
Курсовая работа по дисциплине: Основы криптографии. Вариант №07.
Лабораторные работы №1,2,3 по дисциплине: Современные технологии программирования (часть 2). Для всех вариантов (Новое)
Визуальное программирование и человеко-машинное взаимодействие (часть 1-я). Лабораторная работа 1, 2, 3. Общий вариант.
Ещё искать по базе с такими же ключевыми словами.



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Основы визуального программирования / Основы визуального программирования. Лабораторные работы №1-5.

Вход в аккаунт:

Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
Ю-Money WebMoney SMS оплата qiwi PayPal Крипто-валюты

И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!