Свойства проекта

Visual Basic позволяет редактировать свойства проекта с помощью диалогового окна свойств проекта Project Properties. Для открытия этого окна необходимо в меню Project (Проект) выбрать команду <Имя проекта> Properties (Свойства проекта). Диалоговое окно Project Properties состоит из пяти вкладок (рис. 3.4):

Вкладка General диалогового окна Project Properties позволяет задать основные свойства проекта: можно указать тип проекта, выбрав требуемое значение из раскрывающегося списка Project Type - типы проектов:


В списке Startup Object - Объект запуска можно выбрать объект проекта, который будет выполняться первым при запуске приложения. По умолчанию запускается первое созданное окно проекта. Однако нередко требуется первым запустить другое окно. В списке Startup Object указаны все формы и диалоговые окна проекта. Используя значение Sub Main этого списка, можно назначить выполнение процедуры до загрузки диалоговых окон и форм. При этом работа приложения начнется с процедуры Main. В этом случае такая процедура должна быть в проекте.

В поле Project Name - Имя проекта вкладки General можно ввести полное имя проекта. Дополнительные примечания или пояснения к проекту вводятся в поле примечаний или пояснений к проекту Project Description - Описание проекта.



Пример приложения - вывод данных на форму

Задание

Сформировать массив из десяти случайных чисел в диапазоне от - 30 до +80,9. Найти среднее арифметическое квадратов сформированной последовательности. Для формирования данных создать процедуру пользователя.

Разместить на форме следующие элементы управления:



Рис. 3.5. Вывод данных на форму

Программный код имеет следующий вид:

Sub proca(a() As Single, n As Integer)          ‘Процедура пользователя
Rem Заполнение массива
Dim i As Integer
for i = 1 To n
a(i) = -30 * Rnd + 80.9 * Rnd
Next i
End Sub
    Private Sub Command1_Click()
    Rem
Вывод массива на форму
    Dim a(10) As Single
    Print: Print: Print
    proca a(), 10
    for i = 1 To 10
    Print “ “; Round(a(i), 3)
    Next i
    End Sub
Private Sub Command2_Click()
Rem
Вычисление среднего арифметического
Dim S As Single, a(10) As Single, i As Integer
s = 0
proca a(), 10
for i = 1 To 10
S = S + a(i) ^2
Next i
Text1.Text = S / 10
End Sub
    Private Sub Command3_Click()
    End
    End Sub

После запуска приложения, нажимая последовательно на кнопку «Массив», на форме появится информация о данных, на кнопку «Вычислить» - в текстовом окне число - среднее арифметическое, а кнопка «Финиш» закроет приложение.


Простые списки - ListBox

В системе программирования Visual Basic имеется два стандартных элемента управления, которые используются для хранения и обработки одномерных массивов некоторой информации:


Списки могут содержать разнообразную и разнородную информацию, как текстовую, так и числовую. Массивы данных, которые могут храниться в списках, требуют специального объявления, если к ним применяют такие действия, как сложение, сравнение и др. Данные в списках по умолчанию имеют тип String, поэтому для выполнения арифметических операций необходимо выполнить преобразования в числовой вид, для этого используется функция Val:


Y = cos(5.123) * Val (List3.List(2))

Количество элементов в списке не объявляется, но его можно определить в процессе выполнения программы. ListBox - управляющий элемент, который позволяет создать простой список, из которого пользователь может выбрать одно из предложенных значений. Значения в списке могут разместиться в одну или несколько колонок. Количество колонок можно задать свойством Columns (Колонки). В том случае, если элементы списка не помещаются в выделенную для них в форме область, появляются полосы прокрутки, позволяющие просмотреть весь список. Нумерация элементов списка начинается с 0.


Элементы в список могут добавляться и на этапе проектирования, и программно с использованием метода AddItem. При формировании списка на этапе создания приложения в свойстве List вручную задается весь необходимый список. Данные можно вводить в любом порядке, их можно упорядочить, установив для свойства Sorted - Сортировка значение True. Вновь вводимые элементы списка в этом случае также будут располагаться в алфавитном порядке.

Для добавления элементов в список программным способом предназначен метод AddItem, имеющий следующий синтаксис:

ListN.AddItem <выражение> [, index]

где:

ListN - наименование списка, которое задано свойством Name;
выражение - элемент списка, строковая переменная;
index - порядковый номер элемента в списке, целое число или переменная.
Если номер не указан, то по умолчанию текст строки добавляется в конец списка.
Если свойство Sorted = False, то строка вставляется в указанное место, если Sorted = True, то в место по алфавиту.
Для удаления элементов из списка применяется метод RemoveItem.

ListN.Removeltem index

где index - порядковый номер удаляемого элемента в списке.
Например, чтобы удалить из созданного списка List2 второй элемент следует записать:

List2 . RemoveItem 1

Для очистки всего списка, чтобы удалить все элементы, применяется метод Clear.
Например, List1.Clear- удалить все элементы из списка 1.
Свойство ListCount определяет количество элементов в списке.
Свойство ListIndex показывает номер выбранного элемента.
Для управления внешним видом списка используется свойство Style (Стиль), которое имеет два значения:
Standard- стандартный список, используется по умолчанию;
CheckBox - элементы списка оформлены в виде флажков.
Свойство Multiselect позволяет выбирать из списка несколько элементов сразу:

0-Non - стандартный список, используется по умолчанию, позволяет выбрать одно значение;
1-Simple - выбор нескольких элементов щелчком мыши или нажатием клавиши <Spacebar> (Пробел). Чтобы отменить выбор, кликнуть мышью или нажать клавишу <Spacebar>
2-Extended - выбор нескольких элементов аналогично Windows. Для выбора элементов, расположенных подряд, необходимо при нажатой клавише <Shift> выбрать первый элемент из выбираемых, а затем последний. При этом будут выбраны все размещенные между ними элементы. Если элементы следуют не по порядку, то для выбора элементов нажать клавишу <Ctrl> и в нажатом состоянии выделить элементы списка для выбора.

При использовании свойства Multiselect следует игнорировать свойство Listindex. Выбор нескольких элементов списка фиксируется в свойстве Selected. Размерность массива элементов списка определяется свойством ListCount. Выбранному элементу списка соответствует значение True соответствующего элемента свойства Selected, а остальным - значение False.


Пример для простых списков

Задание

Массив вещественных чисел сформирован случайным образом. Вывести элементы массива в Список1. Отсортировать элементы массива и вывести в Список2. На форму разместить необходимые элементы управления:

List1, List2
Label1, Label2
Command1, Command2

В окне свойств следует изменить свойства элементов в соответствии с заданием. Составить программный код и запустить приложение на выполнение. В качестве алгоритма реализован алгоритм на рис. 1.16. Результат работы приложения показан на рис. 3.6, программный код имеет следующий вид:

Private Sub Command1_Click()
Rem         Пузырьковая сортировка
Dim A(10) As Single, x As Single, i As Integer, В(10) As String
Randomize
    for i = 1 To 10
    A(i) = Rnd * 234
    B(i) = Str(Round(A(i), 2))
    List1.Addltem (B(i))
    Next i
for i = 2 To 10
j = 10
    Do While j >= i
    If A(j -1) >A(j) Then
    x = A(j - 1): A(j - 1) = A(j): A(j) = x
    End If
    j = j - 1
    Loop
Next i
                for i = 1 To 10
                B(i) = Str(Round(A(i), 2))
                List2.Addltem (B(i))
                Next i
End Sub
Private Sub Command2_Click()
    End
End Sub





Рис. З.6. Пример приложения с простыми списками




Пример простого списка при работе с файлами

Задание

Информация в виде «имя, фамилия» записывается в файл произвольного доступа. Необходимо организовать чтение из файла как всех записанных записей, тaк и отдельных полей. Например, вывести список фамилий.

Разместить на форме необходимые элементы управления и изменить свойства элементов в окне свойств в соответствии с интерфейсом на рис. 3.7.
Text1, Text2, Text3 - свойство Text для «имя, фамилия», номер записи установить как «пусто».
Text4 - многострочное текстовое окно, Multiline = True.
List1
Command1, Command2, Command3, Command4
Label1, Label2, Label3, Label4, Label5



Рис. З.7. Пример работы с файлами - вывод в текстовое окно и список

Программный код для данного приложения имеет следующий вид:

Private Type Pers          Пользовательский тип данных
ns As String * 3
Name As String * 15
SurName As String * 15
End Type
Option Explicit
     Private Sub Command1_Click()          Запись в файл произвольного доступа
     Dim ps As Pers
     Dim NCur, Lcur, i, fl As Integer
     Lcur = Len(ps)
Определение длины записи
    Open "C:\m_Student\Vbasic\Progi\text2.txt" for Random As #3 Len = Lcur
             ps.ns = Text3.Text          
Заполнение полей записи
             ps.Name = Text1.Text
             ps.SurName = Text2.Text
             fl = Val(Text3.Text)
             Put #3, fl, ps
            Text1.Text = " "
            Text2.Text = " "
            Text3.Text = " "
    Close #3
    End Sub
                         Private Sub Command2_Click()           Чтение из файла записей до конца файла в текстовое окно
                         Dim ps As Pers
                         Dim nz, Lcur, i As Integer, fl As String, fl1 As String * 33
                         Dim FAM(10) As String * 15
                         Lcur = Len(ps)
                         Open "C:\m_Student\Vbasic\Progi\text2.txt" for Input As #2
                         Do While Not EOF(2)
                         Line Input #2, fl
                         Text4.Text = Trim(fl)
                         Loop
                         Close #2
                         End Sub
Private Sub Command3_Click()           Формирование массива фамилий и вывод их в список List1
Dim nz, Lcur, i, j As Integer, fl As String, fl1 As String * 33
Dim FAM(10) As String * 15
j = 1
for i = 1 To 5
fl = Text4.Text
FAM(i) = Mid(fl, 18 + j, 15)
fl1 = MsgBox(Val(Mid(fl, j, 3)))
j = j + 33
Next
for i = 1 To 5
List1.Addltem FAM(i)
Next
End Sub

Процедуру для выхода из приложения для кнопки Command4 написать несложно. Запустить приложение. Левая часть приложения служит для записи в файл. Каждая компонента записи формируется из отдельных полей записи, причем каждая запись имеет свой номер. Сформированные записи можно вывести в текстовое окно, а отдельные фамилии, выделенные из каждой записи поля, выводятся в список1 (рис. 3.7).