logo
ИТвМ-12-09-осень2013

Чтение из файла

Для извлечения записи из файла произвольного доступа применяется оператор:

Get # ДескрипторФайла[, НомерЗаписи], ИмяПеременной

Где:

НомерЗаписи - это номер извлекаемой из файла записи. Если номер не указан, считывается текущая запись.

ИмяПеременной - это имя переменной пользовательского типа, значением которой является запись, извлекаемая из файла.

Пример решения задачи создания и обработки файла прямого доступа:

Private Type ДанныеСтудент

Фамилия As String * 15

Имя As String * 10

Группа As String * 4

ОцМатем As Integer

ОцИнфор As Integer

ОцФилос As Integer

End Type

Private Sub Command1_Click()

Dim Студент As ДанныеСтудент, i As Integer

Open "danst" For Random As #1 Len = Len(Студент)

For i = 1 To 5

Студент.Фамилия = InputBox("Фамилия")

Студент.Имя = InputBox("Имя")

Студент.Группа = InputBox("Группа")

Студент.ОцМатем = Val(InputBox("Оценка по математике"))

Студент.ОцИнфор = Val(InputBox("Оценка по информатике"))

Студент.ОцФилос = Val(InputBox("Оценка по философии"))

Put #1, i, Студент

Next

Close 1

End Sub

Private Sub Command2_Click()

Dim Студент As ДанныеСтудент, i As Integer

Open "danst" For Random As #1 Len = Len(Студент)

Print

For i = 1 To LOF(1)/Len(Студент)

Get #1, i, Студент

Print " " & Trim(Студент.Фамилия) & " " & _ Trim(Студент.Имя) & " " & Trim(Студент.Группа)

Next i

Close #1

End Sub

Рис. 71. Результат решения задачи создания и обработки файла прямого доступа

Файлы двоичного доступа

Для открытия двоичного файла применяется оператор:

Open ИмяФайла For Binary As # ДескрипторФайла

Как и в файл произвольного доступа в двоичный файл можно помещать записи с полями различного типа. Однако этот файл может содержать записи различной длины. Поэтому при объявлении типа данных у строковых полей длина может быть не фиксирована.

Запись данных в файл происходит при помощи оператора:

Put # ДескрипторФайла, НомерБайта, ИмяПеременной

Где:

НомерБайта -номер байта в файле, т.е. то место в файле, куда надо поместить данные.

Чтение данных из двоичного файла осуществляется оператором:

Get # ДескрипторФайла, НомерБайта, ИмяПеременной

Где:

НомерБайта -номер байта в файле, т.е. то место в файле, откуда надо прочитать данные.

Найти этот номер байта бывает очень трудно. В этом заключается недостаток двоичного доступа.

Пример:

Private Type ФамИм

Фамилия As String

Имя As String

End Type

Dim фаим As ФамИм

Dim mas() As String * 1

Private Sub Command1_Click()

Open "Faim.bin" For Binary As #1

L% = 1

For i = 1 To 2

фаим.Фамилия = InputBox("Фамилия")

Lf% = Len(фаим.Фамилия)

фаим.Имя = InputBox("Имя")

Li% = Len(фаим.Имя)

Put #1, L, фаим.Фамилия

Put #1, L + Lf, фаим.Имя

L = L + Li + Lf

Next

Close 1

End Sub

Private Sub Command2_Click()

Open " Faim.bin" For Binary As #1

k = LOF(1)

ReDim mas(k)

For i = 1 To k

Get #1, i, mas(i)

Print mas(i);

Next

Close #1

EndSub

Типы интерфейсов. Элементы интерфейса.

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

VISUAL BASIC позволяет разрабатывать интерфейс трех типов:

однодокументный SDI (Single – Document Interface) интерфейс;

многодокументный MDI (Multiple – Document Interface);

интерфейс типа проводник (Explorer).

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

главное меню;

панели инструментов с элементами управления;

окна приложения для размещения элементов управления данными;

элементы управления для работы с данными, строка состояния.

MDIинтерфейс – это интерфейс с одним главным и некоторым количеством дочерних окон, которые открываются внутри главного. Главное окно называется родительским. Дочерние окна могут находиться только внутри родительского окна.MDIинтерфейс состоит из элементов:

главное окно приложения (MDI-окно);

главное меню;

панель инструментов с элементами управления;

дочерние окна;

элементы управления, расположенные в дочерних окнах для работы с данными;

строка состояния.

Интерфейс типа проводник представляет собой однооконный интерфейс аналогичный SDIинтерфейсу для отображения иерархических древовидных структур (пример: интерфейсExplorerWindows). В дополнение к перечисленным вSDI-интерфейсе элементам интерфейса, данный интерфейс имеет элемент – иерархический список элементов древовидной структуры.

Основным элементом интерфейса любого типа является окно. Окно приложения в VISUALBASICстроится на основе форм.

Форма. Основные свойства и события формы.

Форма является основой любого приложения. Любой проект VISUALBASICсодержит как минимум одну форму, которая представляет собой главное окно приложения.

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

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

К элементам управления, размещенным в форме можно обращаться как к переменным, присваивая значения их свойствам или считывать их.

Свойства определяют внешний вид и функционирование элемента управления.

Значения свойствам элементов управления могут быть присвоены двумя способами:

В окне Properties(свойства) для выбранного в форме элемента управления.

В процедуре модуля формы:

[Форма.]Объект.Свойство = Значение

Например: Text1.Text=”Иванов”

Значение свойства элемента управления может быть присвоено переменной:

Переменная = [Форма.]Объект.Свойство

Например: Fam=Text1.Text

Основные свойства формы:

Name– задает уникальное имя (идентификатор) формы, который затем используется в программных модулях при обращении к форме.

Caption– задает текст, выводимый в заголовок окна.

Height (высоту)и Width(ширину)– задают размер формы.

Left (расстояние от левого края экрана) и (расстояние от верхнего края экрана) - определяют положение формы на экране.

ScaleMode- задает единицу измерения свойств Height, Width, LeftиTop. По умолчанию стандартной единицей является твип.

BorderStyleопределяет вид и установку рамки окна. С помощью рамки можно менять не только внешний вид окна, но и размеры. Свойство может иметь значения:

0-Окно без рамки. Размер окна изменяться не может. Нет строки заголовка. Окно не может перемещаться. Минимизация и максимизация окна не возможны.

1 - Фиксированная рамка. Есть заголовок, кнопки минимизации и максимизации окна, но размер окна меняться не может.

2 - Значение по умолчанию. Возможны все изменения размера окна.

3 - Окно окаймляется толстой рамкой. Изменения размера невозможны. Нет кнопок минимизации и максимизации. Минимизировать и максимизировать можно только из системного меню.

ControlBox - определяет, отображается ли системное меню, с помощью которого пользователь может выйти из программы.

MaxButton определяет наличие кнопки максимизации. При значении False кнопка будет отсутствовать, а команда Развернуть удалится из системного меню.

MinButton определяет наличие кнопки свертывания окна. При значении False кнопка затемняется, а из системного меню удаляется строка Свернуть.

Fontзадает шрифт в окне.

ForeColor задает цвет выводимого в окне текста.

Icon задает значок для формы.

WinwowState управляет состоянием окна при запуске и может принимать следующие значения: нормальное окно, свернутое окно и полное окно.

MDIChild управляет превращением окна типа MDI в дочернее. Форма дочерняя, если свойство имеет значение True. Значение по умолчанию False.

Основные события формы

К наиболее важным событиям формы относятся следующие:

Initialize – происходит в момент создания экземпляра объекта типа форма.

Load - происходит при загрузке формы в память до ее визуального отображения. Используется для инициализации объектов и переменных, принадлежащих форме.

Aktivate – происходит в тот момент, когда форма становится активной (момент отображения на экране или переключения из другой формы).

GotFocus – происходит при установке фокуса на активизируемой форме.

Deactivate – происходит при удалении формы с экрана, или при переключении на другую форму.

Unload - вызывается, когда форма удаляется из памяти.

Resize – происходит при изменении размеров формы.

Порядок возникновения событий при работе с формой следующий: Initialize, Load, Activate, GotFocus. После загрузки формы в память событияActivate, GotFocus, Deactivateмогут возникать многократно.

Процедуры обработки события формы имеют следующий синтаксис:

Form_Событие[(Аргументы)]

Отображение формы

При запуске приложения автоматически отображается так называемая стартовая форма. Стартовая форма – это первичное (главное или родительское) окно приложения.

Имя стартовой формы задается в окне Project Properties, которое открывается при выполнении команды Project Properties из меню Project или из контекстного меню проекта в окне проводника.

Если проект содержит несколько форм, то необходимо обеспечить взаимодействие форм друг с другом.

На текущее состояние формы влияют:

Оператор Load – выполняет загрузку формы в память, форма при этом она не отображается на экране. Формат оператора:

Load ИмяФормы

Оператор Load загружает форму явным образом. Однако форма может быть загружена и неявным способом (автоматически). Это произойдет, если в процедуре выполняется обращение к свойству, методу самой формы или любого элемента управления размещенного в форме.

Метод Show формы позволяет загрузить форму неявным способом и отобразить ее на экране. Вызов метода:

ИмяФормы.Show

Форма может быть отображена в обычном или модальном окне. Обычная форма позволяет пользователю переходить в другую форму. Модальная же форма держит фокус до тех пор, пока окно не будет закрыто. Чтобы отобразить форму в модальном окне следует в качестве параметра указать константу vbModal.

Например: Student.Show vbModal

Метод Hide удаляет форму с экрана, не выгружая ее из памяти. Метод используется для скрытия формы, предоставляю приложению возможность пользоваться введенной в нее информацией.

Оператор UnLoad убирает форму с экрана и выгружает ее из памяти. Формат оператора:

UnLoad ИмяФормы

Оператор UnLoad можно использовать для выгрузки текущей формы. Ссылку на текущую форму можно получить с помощью свойства Me. Тогда для выгрузки текущей формы можно написать оператор: UnLoad Me.

Меню. Создание меню.

Меню – один из основных элементов интерфейса. Оно представляет собой средство быстрого доступа ко всем командам (задачам) приложения.

VISUAL BASIC позволяет создавать иерархическое меню. Максимальное количество уровней – шесть.

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

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

Например: Файл, Правка, Вид, ?(Справка)

На рис. 72 приведен пример двухуровнего меню.

Создание меню в VISAUL BASIC осуществляется с помощью редактора меню. Открывается окно редактора меню командой Tools\Menu\Editor…

Каждая строка (пункт) меню является элементом управления этого меню и имеет набор свойств. Значения свойствам задаются в окне редактора меню (см. рис.73).

Редактор состоит из двух групп элементов:

элементы управления свойствами;

элементы конструирования структуры меню.

С помощью элементов управления свойствами можно задать значения свойствам, имеющим следующее назначение:

Свойство Caption задает наименование пункта меню (вводится текст, который будет виден в строке меню).

Свойство Name назначает имя элементу управления меню, используемое в программном коде. Имя не назначается по умолчанию и должно быть обязательно задано.

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

Свойство Index определяет численный идентификатор пункта меню, если он является элементом массива элементов управления.

Свойство Shortcut назначает комбинацию клавиш для быстрого вызова команды без обращения к меню.

Свойство HelpContextId позволяет определить ссылку на тему в справочной системе, для выдачи контекстно-зависимой справки по приложению.

Checked определяет свойство команды меню, являющейся параметром. Свойство может принимать значения: True – рядом с пунктом появиться галочка, False – галочка не отображается.

Свойство Enabled определяет доступ к пункту меню. Значение False для свойства означает, что команду в данный момент времени выполнить нельзя (команда видна, но не доступна).

Свойство Visible определяет, будет ли виден на экране элемент меню.

Свойство WindowList определяет для интерфейса типа MDI будет ли автоматически формироваться динамический список всех активных дочерних окон (список выводиться в меню Window(Окно)).

Элементы конструирования структуры предназначены для формирования структуры меню и позволяют:

перемещать пункты меню (команды) по иерархии меню (кнопки , ) и по структуре (кнопки и );

добавлять и удалять пункты меню (команды).

Для создания процедуры выполнения команды меню следует во время проектирования выбрать соответствующий пункт меню в форме. При этом создается процедура обработки события Click для выбранного элемента меню.

VISUAL BASIC позволяет создавать контекстное или всплывающее меню.

Контекстное меню создается также как и обычное меню в окне редактора меню (см. рис. 74).

Так как в исходном состоянии формы контекстное меню должно быть скрыто, свойству Visible элементаконтекстного меню верхнего уровня нужно присвоитьзначение False. Для отображения контекстного меню на экране нужно вызвать метод PopUpMenu формы.

Отображение контекстного меню связано с щелчком правой кнопкой мыши на форме. С действием – щелчок кнопкой мыши – связано событие MouseUp (отпускание кнопки). На рис. 75 приведена процедура отображения контекстного меню. При возникновение этого события процедуре обработки событий передаются следующие параметры:

Button – содержит информацию о том какая кнопка была нажата. Константа VbRightButton определяет правую кнопку мыши;

X, Y – определяют координаты указателя мыши в момент щелчка.

В форме может быть создано произвольное количество контекстных меню. Отображаться они будут после щелчка правой кнопки мыши в различных областях формы. Параметры x, y определяют координаты указателя.

Основные элементы управления.

Стандартные элементы управления для работы с данными размещены в блоке инструментов (панель ToolBar) и становятся доступными пользователю при работе в режиме конструктора форм.

Первоначально на панели размещены так называемые внутренние (intrinsic) элементы управления. Это, однако, неполный список элементов, которые входят в поставку VISUAL BASIC. Для размещения в блоке инструментов других элементов предназначена команда Project\Components.

Кнопка

Кнопка (CommandButton) используется для инициирования пользователем необходимых действий, которые начинают выполняться после щелчка мышью по кнопке.

Событие Click возникает:

а) при непосредственном щелчке по кнопке мышью;

б) при перемещении фокуса на кнопку с помощью клавиши Tab с последующем нажатием клавиши Enter.

Свойства:

Caption – задает название кнопки (текст на кнопке). С помощью свойства можно назначить для кнопки клавиши быстрого доступа. Для этого следует перед буквой, соответствующей желаемой клавиши поместить символ &.

Например, если задать свойству значение Ф&ормат, то кнопке будут назначена команда Alt+о, на кнопке будет выведен текст Формат.

Default - определяет, что данная кнопка активна по умолчанию. Если в форме несколько кнопок, то на одну из них можно по умолчанию поместить фокус, задав свойству Default этой кнопки значение True. Такая кнопка называется стандартной (default button). Если нажать клавишу Enter, то автоматически генерируется событие Click стандартной кнопки, независимо от того какой элемент имеет фокус (обычно это свойство имеет кнопка Ok).

Cancel – позволяет назначить кнопку отмены операции (cancel button). Для такой кнопки событие Click возникает после нажатия клавиши Esc ( обычно это свойство имеет кнопка Cancel).

Style – определяет стиль оформления кнопка. Если свойство имеет значение Standard, то на кнопку выводиться текст свойства Caption. Если свойство имеет значение Graphical – на кнопке графическое изображения, задаваемое свойством Picture.

С помощью свойств Desabled Picture и Down Picture можно задать для кнопки два графических изображения: изображение неактивной кнопки и изображение, отображаемое при нажатии кнопки.

Надпись

Надпись(Label) предназначена для отображения текста в форме, который пользователь не может изменить с клавиатуры. Чаще всего используется для создания подписей к другим элементам управления.

Свойства:

Caption - содержит отображаемый текст. Максимальное количество символов в тексте 65528. Размеры надписи можно задавать:

мышью или командами Shift+{|||};

свойствами Height и Width;

свойствами Autosize и WordWrap.

Autosize имеет два значения:

значение False – размер надписи постоянный и не зависит от длины текста в свойстве Caption;

значение True – размер надписи автоматически подстраивается под значение свойства Caption.

При этом изменение размеров элемента зависит от значения свойства WordWrap. Если значение свойства False, то размеры надписи будут увеличиваться только в горизонтальном направлении, пока весь текст не будет виден на экране. Если свойство имеет значение True, то увеличение размеров будет выполняться по вертикали. При этом будет происходить автоматический перенос слов на новую строку.

Примечание: Первоначально значение присваивается свойству WordWrap, а затем значение True свойству AutoSize.

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

поместить в текст константу vbCrLf;

поместить в текст символы с кодами 13 (перевод строки) и 10 (возврат каретки).

BorderStyle - способ отображения текста - с рамкой или без нее.

Font – задает тип, гарнитуру, размер и стиль шрифта отображаемого текста.

ForeColor и BackColor задают цвет текста и фона;

Appearance определяет внешний вид: объемный (1-3d) или плоский (0 – Flat).

Текстовое поле (TextBox)

Является основным элементом управления, предназначенным для ввода данных.

События:

Change - вызывается при изменении содержимого текстового поля. Происходит каждый раз при вводе, удалении или изменении символа. Событие возникает до потери.

Пример контроля вводимых данных (ввод в текстовое поле только числового значения):

Private Sub txtNomGr_Change()

If Not IsNumeric(txtNomGr) Then

MsgBox “Вводите только цифры”

EndIf

End Sub

Validate – используется для проверки введенного в текстовое поле значения. Событие Validate возникает только в том случае, если для текстового поля свойству Causes Validation задано значение True.

Пример контроля вводимых данных (на соответствие вводимого значения заданному диапазону значений):

Private Sub txtNomGr_Validate(Cancel_

As Boolean)

If Val(txtNomGr.Text)<100 Or _

Val(txtNomGr.Text)>9999 Then

MsgBox “Номера групп от 100 до 9999”

EndIf

End Sub

Примечание: При проверке работы процедуры примера для перемещения между элементами лучше использовать клавишную команду Tab.

LostFocus - используется для анализа введенного в поле текста. Событие возникает, когда текстовое поле становится неактивным (после передачи фокуса другому элементу). Однако, если это поле является единственным элементом в форме, то оно не может потерять фокус.

Первым возникает событие Validate, затем LostFocus.

GotFocus - используется для удаления или инициализации содержимого текстового поля. Вызывается, когда курсор устанавливается в текстовое поле.

Пример:

Private Sub txtNomGr_LostFocus()

Stud.NomGr=txtNomGr.Text

End Sub

Свойства текстового поля:

Text - содержит отображаемый в поле текст.

Enabled – определяет, будет ли элемент управления реагировать на событие или нет. Если свойству задано значение False, то элемент недоступен.

Visible – управляет видимостью элемента на экране. Если значение свойства False, то элемент “скрыт” от пользователя

Пример:

Private Sub Command1_Click()

Command1.Enabled = False

Command2.Visible = False

End Sub

ToolTipText – содержит текст всплывающей подсказки.

PasswordChar – задает символ, отображаемый в поле вместо вводимых символов.

– определяет максимальное число символов, вводимых в текстовое поле.

С помощью свойства PasswordChar и MaxLength можно предназначить текстовое поле для ввода пароля.

Примечание: В VISUAL BASIC существует стандартный шаблон формы Log in Dialog создания диалогового окна для ввода пароля пользователя.

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

MultiLine - для ввода в текстовое поле нескольких строк.

ScrollBars - определяет, какую полосу прокрутки будет иметь текстовое поле (горизонтальную, вертикальную или обе).

SelStart - определяет начальную позицию выделенного текста в символах.

SelLength - содержит количество выделенных символов.

SelText - можно прочитать или изменить выделенный текст.

Пример выделения всего текста в текстовом поле и замена его новым:

Private Sub Text1_GotFocus()

Text1.SelStart =0

Text1.SelLength = Len(Text1.Text)

End Sub

Флажок(CheckBox)

Флажок(CheckBox) предназначен для выбора опции. Позволяет отобразить в форме логические данные. Флажок может иметь оно из трех различных состояний: быть отмеченным, не отмеченным, отображаться как отмеченным, но недоступным.

События:

Click - щелчок мыши.

Свойства:

Value – задает значение флажка:

0 - отмечен;

1 - не отмечен;

2 - третье состояние.

Style – определяет внешний вид флажка:

0-Standard – обычный;

1-Graphical – графический. В этом случае элемент имеет вид кнопки (утопленной/приподнятой).

Переключатель (OptionButton)

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

События:

Click - щелчок мыши. Это событие вызывается, если пользователь с помощью мыши или клавиш управления курсором выбирает элемент в списке.

Свойства:

Value - состояние переключателя (True или False).

Переключатели чаще всего образуют группу элементов. Создать группу переключателей можно следующими способами:

Создать массив переключателей. В этом случае для программирования действий при установке переключателя можно использовать процедуру:

Private Sub optBut1_Click(Index As Integer)

Select Case Index

Case 0

MsgBox “Выбрали первый переключатель”

Case 1

MsgBox “Выбрали второй переключатель”

End Select

End Sub

Переключатели следует разместить в элементе управление Группа (Frame). Для определения состояния переключателя можно использовать оператор If:

If optBut1=True Then

MsgBox “Выбрали первый переключатель”

Else

MsgBox “Выбрали второй переключатель”

EndIf

Рамка (Frame)

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

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

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

Например: Если для рамки свойство Visible равно False, то все входящие в рамку элементы тоже станут невидимыми.

События рамки обычно не анализируются.

Список (ListBox)

Позволяет пользователю выбирать из списка один или несколько элементов. В любое время в список можно добавлять новые элементы или удалять существующие. Если не все элементы могут одновременно отобразиться в поле списка, то в нем автоматически отображаются полосы прокрутки.

События:

Click - щелчок мыши. это событие вызывается, если пользователь с помощью мыши или клавиш управления курсором выбирает элемент в списке.

Методы:

Необходимы для обработки элементов списка - добавления или удаления.

AddItem - для добавления новых элементов:

ListBox.AddItem Элемент[, Индекс]

Параметр Элемент задает добавляемый элемент списка. С помощью параметра Индекс указывается место вставки в список нового элемента. Данный метод должен вызываться при вставке каждого элемента. Как правило, заполнение списка выполняется при загрузке формы.

Пример: Создание списка разрядов

Private Sub Form_Load()

lstRasr.AddItem "10"

lstRasr.AddItem "11"

lstRasr.AddItem "12"

lstRasr.AddItem "13"

lstRasr.AddItem "14"

lstRasr.AddItem "15"

lstRasr.AddItem "16"

lstRasr.AddItem "17"

End Sub

RemoveItem - для удаления элемента из списка:

ListBox. RemoveItem Индекс_элемента

Индекс_элемента - индекс удаляемого элемента. Индексация начинается с 0.

Clear - для удаления всех элементов списка

ListBox. Clear

Свойства:

Text - текст выбранного элемента списка.

List() - определение текста элементов списка в окне свойств (переход на новую строку в списке выполняется командой Ctrl+Enter).

Sorted - определяет способ расположения элементов в списке (по алфавиту).

ListIndex - определение индекса выбранного элемента. Если в списке не выбран ни один элемент, то значе­ние свойства = -1.

Пример. Обращение по индексу к элементу списка с помощью свойства List()

ls = lstBox.List(lstBox.ListIndex)

ListCount - текущее количество элементов в списке. Используется при обработке содержимого всех элементов списка в цикле.

For i=0 to lstBox.ListCount-1

‘ обработка lstBox.List(i)

Next i

Style – определяет внешний вид списка: стандартный список (0) или список флажков (1).

Columns – определяет количество колонок в тексте:

0 – обычный список;

1 – одна колонка с горизонтальной линейкой;

2 – две колонки.

MultiSelect - одновременный выбор нескольких элементов списка: 0 - множественный выбор невозможен.

1 - простой множественный выбор. Элементы списка выбираются щелчком мыши или нажатием Space

2 - расширенный множественный выбор. Пользователь может выбрать несколько элементов с помощью мыши или клавиш управления курсором с использованием клавиш Shift и Ctrl.

Selected() - показывает, выделен данный элемент списка или нет. Свойство Selected содержит массив значений, соответствующих количеству элементов в списке. Если значение элемента в массиве равно True, то данный элемент выбран.

Пример:

For i=0 to lstBox.ListCount-1

If lstBox.Selection(i) then

‘ обработка lstBox.List(i)

EndEf

Next i

Itemdata – позволяет задать список значений (тип Long Integer), элементы которого соответствуют элементам списка ListBox.

Пример. Создать список lstFam. Элементами списка являются фамилии студентов существующего файла данных. Свойству ItemData присвоить список значений – номера зачетной книжки студентов.

Private Sub Form_Load()

Open “Stud” For Random As#1 Len=Len(Stud)

For i=1 to Lof(1)\Len(Stud)

Get#1,i,Stud

LstFam.AddItem Stud.Fam

LstFam.ItemData(lstFam.NewIndex)=Stud.NomSt

Next

End Sub

‘ Свойства NewIndex содержит индекс последнего добавленного в список элемента

Private Sub lstFam_Click()

‘ действие над значением – номер зачетной книжки, полученным после выбора фамилии студента из списка

n=lstFam.ItemData(lstFam.ListIndex)

End Sub

Поле со списком (ComboBox)

Это комбинированный список, представляет собой комбинацию двух элементов управления - самого списка со значениями и поля ввода текста (текстового поля). Используется, когда нельзя заранее определить значения, которые следует включить в список, или список содержит слишком много элементов. В таком списке нужное значение можно не только выбирать, но и вводить непосредственно в поле ввода. Новое значение поля автоматически помещается в список.

События:

Click - Щелчок мыши. Используется для выбора элемента списка.

Change - Для изменения записи в поле ввода текста.

Свойства:

Поле со списком имеет почти все свойства текстового поля и списка (за исключением MultiLine)

Style - определяет внешний вид и функционирование поля со списком:

0 - ComboBox представляет собой текстовое поле для редактирования и открывающийся список (задано по умолчанию).

1 - ComboBox представляет собой текстовое поле для редактирования и постоянно открытый список.

2 - отличается от 0 тем, что пользователь не может вводить текст в текстовое поле.

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

Создать справочник персонала. Для ввода сведений о работнике разместить в форме элементы управления: текстовые поля, список, переключатели (см.рис.77).

Рис. 77. Форма для ввода сведений о работнике

Private Sub Command1_Click()

Dim фамилия As String, имя As String, отчество As String

Dim номер As String, разряд As String, пенсия As String

Dim пол As String

Open "c:\person.txt" For Append As #1

Do Until txtFam.Text = ""

фамилия = txtFam.Text

имя = txtName.Text

отчество = txtOtch.Text

номер = txtTab.Text

разряд = lstRasr.Text

If Option1.Value = True Then

пол = "м"

Else

пол = "ж"

End If

If Check1 = 0 Then

пенсия = "да"

Else

пенсия = "нет"

End If

txtFam.Text = ""

txtName.Text = ""

txtOtch.Text = ""

txtTab.Text = ""

Print #1, фамилия; ","; имя; ","; отчество; ","; номер; ","; _

разряд; ","; пенсия; ","; пол

Loop

Close #1

End Sub

Private Sub Form_Load()

lstRasr.AddItem "10"

lstRasr.AddItem "11"

lstRasr.AddItem "12"

lstRasr.AddItem "13"

lstRasr.AddItem "14"

lstRasr.AddItem "15"

lstRasr.AddItem "16"

lstRasr.AddItem "17"

End Sub