Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic в примерах.docx
Скачиваний:
12
Добавлен:
18.08.2019
Размер:
1.1 Mб
Скачать

Практическое задание Создать базу данных «Записная книжка»

Описание:

Форма 1:

  1. При нахождении курсора мыши над надписью Создать базу данных «Записная книжка» она загорается красным. Вне надписи – черным

  2. При щелчке мышью на надписи все элементы формы (кроме кнопки «Добавить таблицу с …») становятся доступными, а элемент List1 заполняется предлагаемыми пользователю полями для записной книжки.

  3. Первая строка в первом листе выделена.

  4. При переносе строк во второй лист выделенная строка из первого списка удаляется.

  5. Все кнопки >, >>, <, << прописать аналогично.

  6. При появлении во втором листе первого выбранного поля кнопка «Добавить таблицу с …» становится доступной

  7. После щелчка по кнопке создания базы должно появиться сообщение об успешном создании базы по указанному пути. Или сообщения о следующих ошибках создания 1) База уже существует, 2) Путь для создания не найден. В этом случае предложить создать путь. (Помните – вложенные папки создаются по одной!)

  8. При создании таблицы сообщение об успешном создании таблицы. Также имеется возможность добавления нескольких таблиц с выбранными полями в базу.

  9. Под кнопками удаления запрашивать подтверждение.

  10. По нажатии кнопки «Работа с базой» открывается вторая форма:

где можно:

    1. Открыть форму для заполнения выбранной таблицы. Имена полей в форме пишутся в столбик (они выбираются из таблицы базы). Причем пишутся так, чтобы размеры формы соответствовали количеству полей выбранной таблицы. Рядом с именами полей выводятся текстовые поля для изменения полей БД. Все они привязаны к конкретным поля таблицы БД. На форме также имеются кнопки «Новая», «Сохранить», «Удалить», «Обновить», «Выход». В элементе управления данными отображается номер текущей записи из таблицы.

    2. Открыть таблицу в режиме таблицы (DBGrid)

    3. Добавить новое поле в таблицу.

    4. Удалить поле из таблицы (этого не делали – догадайтесь самостоятельно)

  1. Во время всего написания кода тестируйте программу – постарайтесь обнаружить всевозможные ошибки раньше пользователя! Помните – признаком хорошей программы является то, что она не разрешает пользователю выполнить некорректное действие!

Простейший графический редактор

Принципы, положенные в основу функционирования этого графического редактора, используются во всех графических редакторах.

  1. Открыть новый проект

  2. Дать ему имя Painter

  3. Установить свойство формы MousePointer = 2 - Cross, чтобы при движении мыши над формой курсор превращался в крестик

  4. В поле кода добавить:

'General

Dim AnchorX As Integer 'Начальная точка

Dim AnchorY As Integer 'Начальная точка

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

AnchorX = X

AnchorY = Y

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Me.Line (AnchorX, AnchorY)-(X, Y)

End Sub

При нажатии кнопки мыши на форме в переменных AnchorX и AnchorY будут сохранены коодинаты точки нажатия.

При отпускании кнопки в другом месте формы будет нарисована линия от начальной точки до конечной.

Запустите программу и проделайте это.

  1. Теперь, чтобы рисуемую линию можно было видеть в процессе рисования, надо добавить и обработать процедуру MouseMove:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Me.Line (AnchorX, AnchorY)-(X, Y)

E nd Sub

Запустите программу.

Теперь, как только Вы попали мышью на форму - начинается рисование веера линий от левого верхнего угла (координаты 0,0).

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

Линии рисуются безотрывно.

  1. Измените код:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button Then Me.Line (AnchorX, AnchorY)-(X, Y)

End Sub

Теперь только при нажатой кнопке будет рисоваться веер линий.

  1. В разделе общих объявлений задайте две переменные:

Dim OldX As Integer

Dim OldY As Integer

Затем в событии MouseMove добавьте:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button Then

Me.Line (AnchorX, AnchorY)-(OldX, OldY), &H8000000F

Me.Line (AnchorX, AnchorY)-(X, Y)

OldX = X

OldY = Y

End If

End Sub

Эти переменные (OldX, OldY) нужны для сохранения в них предыдущего значения координат. Используя их, можно затирать линию цветом фона (&h8000000F)

Теперь можно рисовать линии и видеть их при этом.

Редактор почти готов. Вот только при наложении линии на линию предыдущие линии затираются! (Видно из рисунка).

Это неизбежно. Поэтому во всех графических редакторах ВСЕГДА ПРИ РИСОВАНИИ (изменении рисунка) происходит перерисовка ВСЕГО предыдущего изображения! В Windows для этого существует специальный МЕТАФАЙЛ, который хранит все команды (а точнее, формулы) рисования и при рисовании каждое мгновение перерисовывает изображение. И при этом еще и пополняется новыми инструкциями (формулами рисунка)

Мы тоже будем использовать этот принцип постоянной перерисовки. Только вместо метафайла для хранения данных (координат) используем массив.

7. Объявим массив в General:

Dim MF() As Integer

Массив без элементов - динамический. Так как мы не знаем, сколько линий придется рисовать.

И при добавлении новой линии каждый раз будем его переопределять (на 1 элемент больше)

При движении мыши с нажатой кнопкой:

Координаты линий из массива считываются и по ним рисуются линии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]