2 вида массивы: управляющие и массивы переменных (обычные массивы или списки).

Управляющие массивы состоят из нескольких однотипных элементов управления, использующих общие свойства, по отличающимся порядковым номерам или индексам. Может быть не более 255 элементов в таком массиве. При этом новые элементы на форме помещаются на место исходных элементов управляющего массива. Поэтому при размещении на форме их следует позиционировать и двигать, чтобы они не перекрывали друг друга. Например, можно создать на форме матрицу надписей или текстовых полей.

Одномерные массивы или списки определяются именем и положением элемента в списке. Например данные о выпуске продукции за 12 месяцев.

Могут быть фиксированные и динамические списки. Размеры их могут быть велики и определяются объемом свободной памяти.

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

Динамические списки более гибки в работе.

Списки могут быть видимыми всему приложению, данной форме (модулю) или только одной процедуре.

Создание фиксированного списка:

а) в форме (модуле). Описание помещается в разделе деклараций формы (модуля)

Dim Massiv$(20)

доступен любой процедуре модуля или формы;

б) в пределах всего проекта (глобальный)

Public Massiv(20) As String - 21 элемент от 0 до 20

или Global

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

Private Sub ...........

Static Massiv A(20)

Создание динамических массивов.

а) в форме

В размере декларации формы Dim DYNMAS() As String

А внутри процедуры выделяем нужный размер

Private Sub ...........

Dim N %

ReDim DYNMAS(N) As String

При работе команды ReDim информация в массиве теряется.

Для сохранения информации при изменении размера массива

ReDim Preserve DYNMAS(N+1) As String

или (N-1) удалит последний элемент

б) Глобальный динамический список, видимого в пределах всего проекта

Public DYNMAS() As String

или Global

Далее можно использовать ReDIM в любой процедуре всего проекта.

Ввести данные в массив можно с помощью INPUT BOX, текстового поля.

Для изменения нумерации в массиве не с 0, а с 1 - оператор Option Base 1 в разделе деклараций формы (модуля).

Можно задавать массив диапазоном значений

вместо Dim A(19)

Dim A (1980 TO 2000)

Освобождение ОП от динамический массивов Erase DYNMAS/ Для фиксированных списков Erase только очищает массив.

Окна ввода

Окна ввода- это другая возможность, помимо текстовых полей, для ввода информации. Функция InputBox$ выводит на экран модальную диалоговую панель, которая в отличие от текстовых полей имеет фиксированный размер окна. У окна ввода есто строка заголовка и 4 элемента: подсказка, командные кнопки OK и Cancel и поле ввода. Синтаксис функции: Строковая переменная=

InputBox(“подсказка”[,заголовок][поумолчанию][,X][,Y][,файл справки, контекст])

где подсказка- текстовая строка или строковая переменная (1024 символа),

заголовок -содержание строки заголовка окна,

по умолчанию - начальное содержимое окна ввода,

X,Y- расстояние между левым (верхним) краями экрана и окна ввода. Если параметры не заданы, то окно располагается по центру на 1/3 высоты экрана.

Например, MyInput$=InputBox(“Введи число”, “Запрос”,”0”,100,200)

Вывод информации

Для вывода информации непосредственно на форме используется метод Print. Его синтаксис:

Имя формы.Print выражение

Например: frmHello.Print “Привет !”

VB5 выводит информацию, начиная с того места, которое определяют свойства CurrentX и CurrentY- горизонтальная и вертикальная позиции. При использовании метода Cls для очистки содержимого формы CurrentX и CurrentY=0 и метод Print выводит информацию, начиная с левого верхнего угла.

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

ИмяОбъекта-контейнера.Font.свойство=значение

?Например, frmHello.Font.Name=“Arial”

 frmHello.Font.Size =20

frmHello.Font.Bold=True и т.д.

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

Печать табличных данных

В VB5 печать текста можно осуществлять в заданном формате. Зона имеет размер в 14 символов. В основном зоны используются при печати непропорциональными шрифтами типа Courier, т.к. каждая колонка по ширине равна среднему значению ширины символа. Если параметры в методе Print разделены запятыми, то данные выводятся в нескольких зонах. Например:

Me.Print Family$,Name$

После обработки выражения методом Print, производится переход на новую строку. Если используется Print без параметров, выводится пустая строка. Если не нужно переходить на новую строку, в конце строки вставляется символ”;”. Для печати с заданной колонки можно использовать функцию Tab, Например:

Print Tab (номер колонки %);

Для вставки указанного числа пробелов, начиная с текущей позиции, используется функция Spc (число пробелов %)

Функция Format

Для вывода числовых данных в нужном формате используется функция

 Format( числовое выражение, строка формата $)

Результатом данной функции является строка, в которой выражение представлено по заданному формату. Например:

Me.Print Format(123.456789,”###.###”)

дают результат 123,46. Незначащие нули в начале и конце числа игнорируются. Для вывода незначащих нулей используется формат “000.00”. Если необходимо вывести символы “- “, “+”, “$”,”(“,”)” или пробел, их размещают непосредственно в формате. Например:

Me.Print Format(Amount,”$###.###”)

 

Именованные форматы

Именованные форматы являются встроенными форматами VB5 и облегчают работу по форматированию выводимого текста.

Именованный формат

Описание

General Number

Строка цифр без разделителя для тысяч

Currency

Выводит 2 цифры справа от дес. точки и учитывает разделителя для тысяч

Fixed

По крайней мере одна цифра слева и две справа от десятичной точки

Standard

То же и разделитель тысяч

Percent

Число в виде процента. Выводит две цифры справа от дес.точки

Scientific

Научная форма

Yes/No

Если число равно 0, то выводит No, иначе Yes

True/False

Если число равно1, то выводит True, иначе False

On/Off

Если число равно1, то выводит On , иначе Off

General Date

Выводит дату и/или время. Если отсутствует дробная часть, выводится только дата, если целая часть, то- время.Например 23.12.98 10:30:45

Long Date

Полный формат Windows для вывода даты

Wedn 23 Dec 1998

Medium Date

 

Обычный формат Windows для вывода даты 23- Dec-98

Short Date

Сокращенный формат Windows для вывода даты 23.12.98

Long Time

 

Время в час, мин, сек

Medium Time

Время в12-часовом формате: час, мин и AM/PM

Short Time

Время в час, мин в 24-часовом формате

Например,

Me.Print Format(Amount, “Currency”)

Me.Print Format(Amount, “###,###.##”)

Me.Print Format(Now, “General Date”)

 

Объект Printer

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

Команда PrintForm выводит на принтер графический образ окна формы. Ее синтаксис: ИмяФормы.PrintForm

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

Обычный способ вывода информации на принтер состоит в использовании метода Print, связанного с объектом Printer. Метод Print учитывает ориентацию страницы и может использовать свойства CurrentX и CurrentY для точного позиционирования текста и точек на странице. Его синтаксис:

Printer. Print текст

При этом сохраняются возможности метода Print : “;” “,” Tab, Spc, а также возможность управления свойствами шрифта:

Printer. Font.Name = “Aryal”

Printer. Font.Size = 18

А изменение шрифта принтера не влияет на предыдущий текст.

 

Свойства объекта Printer:

 

 

Свойство

 

 

Назначение

 

Значения

ColorMode

 

определяет тип принтера

1-монохромный

2- цветной

Page

 

номер текущей страницы

Pages

 

количество страниц

Copies

 

количество печатных копий

PrintQuality

 

качество печати (если это поддерживает драйвер принтера)

1- черновая печать

2-низкое разрешение

3-среднее разрешение

4-высокое разрешение

CurrentX, CurrentY

Текущие координаты текста

Fonts

доступные шрифты принтера

FontCount

кол. доступных шрифтов принтера

Font.Name,Font.Size, Font.Bold,Font.Italic...

характеристики шрифта

ScaleMode

 

ед. измерения масштаба страницы

0-пользователя

1-твипы (по умолчанию)

2-пункты

3-пикселы

4-символы

5-дюймы

6-мм

7-см

ScaleLeft

 

Расстояние от левой границы

ScaleTop

 

ScaleWidth

 

ScaleHeight

 


Методы объекта Printer:

 

Метод

Содержание

Print

Печать страницы

NewPage

Перейти на новую страницу

EndDoc

Закончить работу с документом. (Освобождение памяти и пересылка страниц в диспетчер печати)

Scale

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

TextHeight

Определяет высоту символа

TextWidth

Определяет ширину символа

 

Пример. Форма содержит командную кнопку “Печать”. Программный код выводит на печать 2 страницы. На первой печатается “Стр.1”. На второй “Стр.2” .

Private Sub cmdPrint_Click()

Printer.Print “Стр.”+Str(Printer.Page)

Printer. NewPage

Printer.Print “Стр.”+Str(Printer.Page)

Printer. EndDoc

EndSub

 

Объект Screen.

 

Объект Screen позволяет управлять размещением форм и выводом информации на экране.

Свойства Объекта Screen.

 

 

Свойство

 

 

Назначение

MousePointer

указатель мыши

Fonts

доступные шрифты экрана

FontCount

кол. доступных шрифтов экрана

Width

 

ширина экрана (в твипах)

Height

 

высота экрана

 

Методов нет.

 Пример. Установить размер формы равной 50% от размера экрана.

Private Sub Form_Load()

Me. Width=Screen. Width/2

Me. Height=Screen. Height /2

EndSub

 

Работа с файлами.

Элементы управления для работы с файлами

FileListBox- список файлов.

Списки файлов выводят по умолчанию имена файлов в текущем каталоге. Большинство свойств списка файлов аналогичны обычному списку (размеры, расположение на форме, цвет, шрифт, вертикальная линейка прокрутки). Аналогично списки файлов могут реагировать на все события обычных списков. Однако для выбора файлов обычно используется не одинарный, а двойной щелчок мыши DblClick.

Основные свойства Списка файлов:

 

Свойство

Содержание

List

Массив членов списка файлов

ListCount

Кол. членов списка файлов

ListIndex

Индекс массива

FileName

Обозначение файла

Path

Текущий Путь для списка файлов

Pattern

Фильтр, шаблон. Задает вид отображаемых в списке файлов

 

Например, имя выбранного файла можно определить как filFile.List(ListIndex) или как свойство FileName. Вывести список файлов в массив FileNames$( I%) можно с помощью следующего кода:

For I%=0 to filFile.ListCount - 1

FileNames$(I%) = filFile.List(I%)

Next I%

Свойство Pattern задает тип отображаемых файлов или шаблон * , ?. По умолчанию фильтр установлен в значение *.* . Несколько фильтров отделяются друг от друга “; “ . Изменение свойства Pattern активизирует событие PatternChange.

Свойство Path устанавливает или возвращает текущий путь для списка файлов. Однако для изменения текущего пути в операционной системе следует использовать команду ChDir. Изменение свойства Path активизирует событие PathChange. Изменение свойства FileName активизирует событие и PatternChange и PathChange.

События Списка файлов:

 

События

Описание

Click

DoubleClick

MouseDawn

MouseUp

MouseMove

KeyUp,KeyDawn,KeyPress

DragDrop, DragOver

GotFocus,LostFocus

PathChange

Изменение текущего пути для списка файлов

PatternChange

Изменение шаблона для отображения файлов в списке

Пример события PathChange

Sub File1_PathChange ()

Label1.Caption = "Path: " & Dir1.Path ' Show path in label.

End Sub

Sub Dir1_Change ()

File1.Path = Dir1.Path ' Set file path.

End Sub

Sub Form_Load ()

Label1.Caption = "Path: " & Dir1.Path ' Show path in label.

End Sub

 

Sub Drive1_Change ()

Dir1.Path = Drive1.Drive ' Set Dir path.

End Sub

Sub Dir1_Change ()

File1.Path = Dir1.Path ' Set File path.

End Sub


DirectoryListBox- список каталогов.

 

Элемент управления DirListBox - отображает дерево каталогов текущего диска. Содержимое списка каталогов обновляется при двойном щелчке мыши. Подкаталоги текущего каталога нумеруются от 0 до ListCount - 1. Сам текущий каталог имеет индекс -1, родительский -2, выше -3 , ...При двойном щелчке мыши вызывается событие Change и меняется значение свойства Path.

 

Основные свойства Списка каталогов.

 

Свойство

Содержание

List

Массив членов списка каталогов

ListCount

Кол. членов списка каталогов

ListIndex

Индекс массива

Path

Текущий Путь для списка каталогов

Parent

Для доступа к свойствам, событиям и методам родительской формы данного элемента

 

События Списка каталогов

 

События

Описание

Click

MouseUp, MouseUp, MouseMove

KeyUp,KeyDawn,KeyPress

DragDrop, DragOver

GotFocus,LostFocus

Change

Изменение в списке каталогов

 

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

Private Sub dirBox_ Change()

filFile1.Path = dirBox.Path

End Sub

При этом для списка каталогов Path указывает выбранный каталог, а для списка файлов - каталог, файлы которого отражаются в списке.

DriveListBox- список дисков.

 

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

 

Основные свойства Списка дисков

 

Свойство

Содержание

Drive

Определяет текущий диск

ListCount

Кол. членов списка дисков

ListIndex

Индекс массива дисков

List

Массив членов списка дисков

Parent

Для доступа к свойствам, событиям и методам родительской формы данного элемента

 

События Списка дисков

 

События

Описание

KeyUp,KeyDawn,KeyPress

DragDrop, DragOver

GotFocus,LostFocus

Change

Изменение в списке дисков

 

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

 

Private Sub drvBox_ Change()

dirBox.Path = drvBox. Drive

Ch Drive drvBox. Drive ‘ Если нужно изменить текущий диск ОС

End Sub

 

Файлы последовательного доступа

Используются когда:

а) редко вносятся изменения

б) информация в файле обрабатывается от начала до конца

в) если нужно добавлять информацию в конец файла.

Для совершения операции чтения или записи с файлом его нужно открыть командой Open. После Open следует имя файла, строковая переменная или строка в двойных кавычках. Если файл не текущем каталоге, нужно указать путь к нему.

Запись информации в файл:

Open “имя файла” for Output as # 1

# 1 - это идентификатор файла - число от 1 до 255 с символом #. Максимальное число одновременно открытых файлов определяются параметром в Config.sys.

По команде Open резервируется файловый буфер в памяти компьютера. По мере заполнения буфера активируются соответствующий диск и весь блок информации посылается непрерывным потоком на диск (количество будет устанавливаться в Config.sys). После окончания работы с файлом он закрывается командой Close # идентификатор файла. Команда Close сбрасывает информацию на диск и очищает буфер. Для сброса содержимого буфера на диск (в критических ситуациях) используется команда Reset. Для ввода информации в файл можно использовать команду Print #

“ Запись в файл

Open “File 1” For Output As #1

Print #1, “1 2 3 4 5 ” или Print #1, txtDisplay.Text

Close #1

Если в текущем каталоге есть файл с таким именем, то этой командой он будет уничтожен.

Close без параметров закрывает все файлы.

Для определения размера открытого файла можно использовать команду LOF (идентификатор файла)

Open “File 1” For Output As #1

Print #1, “1 2 3 4 5 ”

Print LOF(1)

Вместо Print можно использовать Write # идентификатор файла, список переменных.

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

Open ”имя файла” For Input As # идентификатор файла

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

FileNumber % = FreeFile

Open “имя файла” For Input As # FileNumber %

После этого можно использовать оператор Line Input # для построчного чтения информации из файла:

Open “File1” For Input As #1

Line Input #1, A$ принимает в A$ всю информацию до Enter

Print A$

Close #1

Либо Input # идентификатор файла, список переменных, если запись с помощью Write, txtDisplay

Если файл сложной структуры, состоит из полей и записей, то файл будет читаться целыми записями командой LineInput, либо можно информацию читать из отдельных полей командой Input #

Например, чтение записей из файла Spisok в массив


Информация о работе «Курс лекций по V B 5.0»
Раздел: Информатика, программирование
Количество знаков с пробелами: 94257
Количество таблиц: 19
Количество изображений: 0

Похожие работы

Скачать
293733
5
0

... метод доступа с передачей полномочия. Охарактеризовать метод множественного доступа с разделением частоты. Какие существуют варианты использования множественного доступа с разделением во времени? Лекция 5.ЛВС и компоненты ЛВС Компьютерная сеть состоит из трех основных аппаратных компонент и двух программных, которые должны работать согласованно. Для корректной работы устройств в сети их нужно ...

Скачать
245763
0
5

... университет П. Е. Матвеев ЭТИКА. Основы хозяйственной этики Владимир 2003 Министерство образования Российской Федерации Владимирский государственный университет П.Е. Матвеев ЭТИКА. Основы хозяйственной этики Курс лекций Ч а с т ь в т о р а я Владимир 2003 ББК 87.715.4 М 33 Рецензенты:Доктор философских наук, доктор юридических наук, профессор Владимирского юридического института ...

Скачать
209470
9
2

... . М., НОРМА,2003. 10. Теория государства и права. Учебник./ Под ред. В.М. Корельского, В.Д.Перевалова. М., НОРМА, 2001. 11. Теория государства и права. Курс лекций./ Под ред. М.Н.Марченко. М., Зерцало, 1998. 12.Правоведение. Учебник./ Под ред О.Е.Кутафина. М., Юристъ,2001. 13.Варывдин В.А. Право.Курс лекций. М.,1999. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 14. Козлова Е.Н., ...

Скачать
534689
13
0

... платы. 4.Расширение общественных фондов потребления снижало заинтересованность личности в результатах своего труда. 1 В Полном собрании сочинений В.И.Ленина нет никаких высказываний, о которых говорит И.В.Сталин. В.Н. Гузаров и Н.И. Гузарова Курс лекций «История России: 1861-1995 гг. Томск - 1999Глава 1. Введение к курсу «Истории России» Территория современной России, огромной страны, ...

0 комментариев


Наверх