<<<назад | Часть1 | Часть2 | Часть3 | Часть4 | Часть5 | вперёд>>>

Глава 2. Основы

Таблица 2.1

Название свойства

Для каких элементов управления используется

Описание действия

Возмо жность измнения

Action

Common dialog

Определяет тип диалога

-/+

Action (OLE)

OLE

Определяет тип действия

-/+

Alignment

Check box. label, option button, text box

Определяет способ выравнивания (по левому краю, по правому или по центру)

+/-

Auto Redraw

Form, picture box

Определяет возможность автоматического перерисования

+/-

AutoSize

Label, picture box

Определяет возможность автоматического изменения размера при заполнение

+/-

BackColor, Fore Color

Form, check box, combo box, command button (TWibKoBackColor) data control, directory list box, drive list box, file list box, frame, grid, label, list box, OLE control, option button, picture box, Printer object (только ForeColor), shape (только BackColor), text box

Определяют соответственно цвет фона и цвет выводимой ин4юрмации

+/+

BackStyle

Label, shape

Определяет прозрачность фона

+/+

BorderColor

Line, shape

Определяет цвет рамки

+/+

BorderStyle

Form, grid, image, label, line, OLE control, picture box, shape, text box

Определяет вид рамки

Для Form и text

box+/-+/+

BorderWidth

Line, shape

Определяет ширину границы

+/+

Cancel

Command button

Определяет, что элемент выполняет функцию Cancel на форме

+/+

Caption

Form, MDI form, check box, command button, data control, frame, label, menu, option button

Определяет текст, выводимый на элемент или возле него Для формы -заголовок

+/+

CellSelected

Grid

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

-/-

Class

OLE control

Определяет класс объекта OLE

+/-

ClipControls

Form, frame, picture box

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

+/+

Clip

Grid

Определяет содержимое выделенных ячеек таблицы

-/+

Col, Row

Grid

Определяет выделенную колонку или строкуа таблицы

-/+

ColAlignment

Grid

Выравнивание данных в колонке таблицы

-/+

Cols, Rows

Grid

Определяет число колонок,столбцов таблицы

+/+

Columns

List box

Определяет число колонок в списке

+/+

ColWidth

Grid

Ширина колонки

-/+

ControlBox

Form

Определяет наличие кнопки системного меню на форме

+/-

CuncntX, CurrentY

Form, picture box, Printer object

Текущие координаты по горизонтали и вертикали (для рисующих или печатающих методов)

-/+

DatabaseName

Data control

Имя и расположение базы данных

+/+

DataChanged

Check box, image, label, picture box, text box

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

-/+

DataField

Check box. image, box

Определяет связь

с полем записи файла

+/+

 

 

Check box, image, label, picture box, text box

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

+/-

Default

Command button

Определяет, является ли данная командная

командной кнопкой по умолчанию

+/+

 

 

box. Printer object, shape.

рисуемой линии (точки)

-/+

DrawWidth

Form, picture box, Printer object

Определяет ширину рисуемой линии (точки)

-/+

Enabled

Form, MDI form, check box, combo box, command button, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, list box, menu, option button, picture box, text box, timer, vertical scroll bar

Определяет возможность доступа к элементу (элемент реагирует на действия пользователя)

+/+

FillColor

Form, picture box, Printer object, shape

Определяет цвет заполнения

+/+

FillStyle

box. Printer object,

заполнения

 

 

FixedCols, Fixed Rows

Grid

Число выделенных колонок,столбцов

+/+ •

FontBold, Fontltalic, FontStrikethr. FontTranspar. FontUnderline

Form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, label, list box, optionbutton, picture box, Printer object, text box

Вид выводимого текста(жирный, курсив, зачеркнутый, “ясный”)

+/+

FontNarne

Form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, label, list box, optionbutton picture box. Printer object, text box

Тип шрифта выводимого текста

+/+

FontSize

Form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, label, list box, optionbutton, picture box, Printer object, text box

Размер шрифта выводимого текста

+/+

BackColor, ForeColor

Form, check box, combo box, command button (только BackColor), data control, directory list box, drive list box, file list box, frame, grid, label, list box, OLE control, option button, picture box, Printer object (только ForeColor), shape (только BackColor), text box

Цвет фона и основной цвет выводимой информации

 

 

Format

 

 

Определяет формат получаемых и пере

-/+

GridLines

Grid

определяет видимость сетки таблицы

+/+

GridLineWidth

Grid

Определяет ширину линий сетки таблицы

+/+

Height, Width

Form, MDI form, check box, combo box, command button, data control, directory list box, drive list box, file

horizontal scroll bar, image, label

Определяют размеры объекта (высота и ширина)

+/+

Highlight

Grid

ку выделенной ячейки таблицы.

+/+

 

 

 

 

иконки формы в ее свернутом состоянии

 

 

Index (Control Arrays)

Check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, line, list box, menu. OLE control, option button,

box, timer, vertical scroll bar

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

+/- .

Interval

 

 

миллисекунд в задаваемом интервале

+/+

I tern Data

Combo box, list box

Массив значений индексов элементов списка (первоначально значения индексов совпадают с позицией элемента в списке)

-/+

KeyPreview

Form

Определяет, вызываются ли процедуры обработки события клавиатуры формы перед событиями клавиатуры элементов управления

+/+

LargeChange

Horizontal scroll bar, vertical scroll bar

Определяет изменение при щелчке мыши по полю линейки прокрутки между движком и стрелкой

 

 

SmallChange

Horizontal scroll bar, vertical scroll bar

Определяет изменение при щелчке мыши по стрелке

+/+

Left, Top

Form, MDI form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, list box, OLE control, option button, picture box, shape, text box, timer, vertical scroll bar

Определяют координату верхнего левого угла элемента управления (Left- расстояние до левой границы, Тор- расстояние до верхней границы)

+/+

Linkltem

Label, picture box, text box

Определяет спецификацию данных, передаваемых, в элемент от других приложений (DDE)

+/+

List

Combo box, directory list box, drive list box, file list box, list box

Определяет список элементов окна

-/+

Listlndex

Combo box, directory list box, drive list box, file list box, list box

Определяет индекс выбранного элемента списка

-/+

Max, Min

Horizontal scroll bar, vertical scroll bar

Определяет максимальное и минимальное значение линейки прокрутки

+/+

 

 

Для каких элементов управления используется

Описание действия

Возможн-ость измен-ения

MaxButton, Min Button

Form

Наличие кнопки максимизации и минимизации

+/-

Max Length

Text box

Определяет максимальное число символов

+/+

MousePointer

Form, check box, combo box, command button, data control, directory list box, drive list box, file list box, frame, horizontal scroll bar, image, label, list box, option button, picture box, Screen object, text box, vertical scroll bar

Определяет тип указателя мыши при его перемещении по элементу

+/+

MultiLine

Text box

Определяет многострочное текстовое окно

+/-

MultiSeIect

File list box, list box

Возможность и способ множественного выбора

+/-

Name

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

Определяет имя элемента, используемое при написании программы

+/-

Newlndex

Combo box, list box

Индекс добавляемого в список элемента

-/-

Parent

Check box, combo box, command button, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, line, list box, menu, OLE control, option button, picture box, shape, text box, timer, vertical scroll bar

Определяет форму, на которой находится элемент

-/-

 

 

Text box

Определяет шифровку выводимых в окне символов

+/+

PasteOK

OLE control

Определяет возможность ввода из Clipboard

-/-

Path

Арр object, directory list box, file list box

Путь в файловой системе

-/-

Pattern

File list box

Выводимое имя файла

-/+

Picture

Form, image, OLE control, picture box

Определяет выводимую картинку

+/+

Prev Instance

Арр object

Определяет, что объект - приложение уже запущено

-/-

PrinterDefault

Common dialog (print dialog)

Определяет выбор принтера по умолчанию

 

 

Readonly

Data control, file list box

Определяет указатель на открытие базы данных только на чтение или в списке файлов есть файлы с атрибутом ReadOnly

+/+

RecordCount

Table object. Dynaset object, Snapshot object

Определяет число записей

-/-

Recordset

Data control

Определяет источник данных

-/+

RecordSource

Data control

Определяет источник данных

+/+

RowHeight

Grid

Определяет высоту выделенной строки

-/+

ScaleHeight, ScaleWidth

Form, MDI form, picture box, Printer object

Определяет число единиц измерения по вертикали и горизонтали

+/+

ScaleLeft, ScaleTop

Form, picture box, Printer object

Определяет координаты верхнего левого утла

+/+

ScaleMode

ScaleMode

Определяет единицы измерения координат

+/+

Scroll Bars

MDI form, grid, text box

Определяет наличие линейки прокрутки

+/-

SelCount

List box

Определяет число выделенных элементов списка

-/+

Selected

File list box, list box

Определяет выделенные элементы списка

-/+

SelEndCol, SelStartCol, SelEndRow, SelStartRow

Grid

Определяет начало и конец выделенных ячеек

-/+

Sel Length, SelStart, SelText

Combo box, text box

Определяют длину выделения, начальную позицию и выделение

-/+

Shortcut

Menu

Определение клавиш

+/-

SizeMode

OLE control

Определяет преобразование размера для представления

+/+

Sorted

Combo box, list box

Определяет упорядочение элементов в списке по алфавиту или по порядку ввода

+/-

Source Doc

OLE control

Имя файла

+/+

Source I tern

OLE control

Определение данных

+/+

Style

1

Combo box

Определяет тип комбинированного списка

+/-

Tablndex

Check box, combo box, command button, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, label, list box, option button, picture box, text box, vertical scroll bar

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

+/-

TabStop

Check box, combo box, command button, directory list box, drive list box, file list box, grid, horizontal scroll bar list box, option button, picture box, text box, vertical scroll bar

Определяет быструю установку фокуса

+/+

Tag

Form, MD1 form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, line, list box, menu, OLE control, option button, picture box, shape, text box, timer, vertical scroll bar

Определяет идентификацию внешних данных

+/+

Text

Combo box, list box, text box

Определяет данные текстового окна или выбранного элемента списка

+/+

Top Row

Grid

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

-/+

UpdateOptions

OLE control

Определяет изменение данных элемента при изменении данных в связанном объекте

-/+

Value

Check box, command button, field object, horizontal scroll bar, option button, vertical scroll bar

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

-/+

Verb

OLE control

Спецификация действий при запуске OLE—объекта

+/+

Visible

Form, MDI form, check box, combo box, command button, common dialog, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, line, list box, menu, OLE control, option button, picture box, shape, text box, vertical scroll bar

Определяет видимость элемента

+/+

WindowState

Form, MD1 form

Определяет видимость формы при выполнении программы

+/+

Wordwrap

Label

Определяет направление (вертикальное или горизонтальное) изменения поля метки при ее заполнении текстом

+/-

XI, Yl, X2, Y2

Line

Определяют начальные и конечные координаты

+/+

Каждому диалоговому элементу (форме и элементам управления) в Visual Basic поставлен в соответствие определенный набор событий, происходящих в период выполнения программы. Например, событие Load (Загрузка) происходит при загрузке формы, событие Clik (Щелчок) вызывается щелчком кнопки мыши, событие DblClick (Двойной щелчок) вызывается двойным щелчком кнопки мыши и т.д.

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

Более подробную информацию о приведенных в таблице событиях и особенностях их использования можно найти в встроенной справочной системе Visual Basic.

Каждому приведенному в таблице событию ставится в соответствие процедура обработки события (процедура (procedure) - в языках программирования набор операторов, выполняемых при вызове процедуры). Событие может вызывать при наличии в приложении процедуры обработки данного события программируемое изменение данных. Как было показано выше. Visual Basic содержит автоматически формируемые заготовки для таких процедур (первый и последний операторы процедур) в поле для записи программы (вызываются из окна проекты (Project) Главного меню). Имя процедуры формируется автоматически и состоит из двух частей, разделенных подчеркиванием: имя выделенного диалогового элемента и имя выделенного события.

Таблица 2.2

Название события

Элементы управления, для которых используется события

Описание действия

Activate, Deactivate

Form, MD1 form

Активизация (окно формы становится активным), дезак-тивизация формы

Change

Combo box, directory list box, drive list box, horizontal scroll bar, label, picture box, text box, vertical scroll bar

Изменение содержания элементов управления (например, набор символа в текстовом окне)

Click

Form (кроме MD1 form), check box, combo box, command button, directory list box, file list box, frame, grid, image, label, list box, menu, OLE control, option button, picture box, text box

Одинарный щелчок мыши по управляющему элементу

DblClick

Form (кроме MD1 form), combo box, file list box, frame, grid, image, label, list box, OLE control, option button, picture box, text box

Двойной щелчок мыши по управляющему элементу

DragDrop

Form, MD1 form, check box, combo box, command button, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, list box, OLE control, option button, picture box, text box, vertical scroll bar

После перемещения управляющего элемента мышью и отпускания клавиши мыши (определяет результирующую позицию элемента).

DragOver t •’•

Form, MD1 form, check box, combo box, command button, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, list box, OLE control, option button, picture box, text box, vertical scroll bar

Процесс перемещения управляющего элемента мышью (определяет текущую позицию элемента)

Drop Down

Combo box (кроме случая, когда свойство Style равно 1)

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

Error

Data control

Ошибка при обращении к базе данных

GotFocus

Form (кроме MDI form), check box, combo box, command button, directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE control, option button, picture box, text box, vertical scroll bar

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

KeyDown, KeyUp

Form, check box, combo box, command button, directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE control, option button, picture box, text box, vertical scroll bar

Нажатие или отпускание какой-либо клавиши в момент, когда элемент управления находится в фокусе

KeyPress

Form, check box, combo box, command button, directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE control, option button, picture box, text box, vertical scroll bar

Нажатие и отпускание какой-1 либо клавиши

LinkClose

Form, MDI Form, label, picture box, text box

Конец динамического обмена данными (DDE) с другими приложениями

LinkError

Form, MDI Form, label, picture box, text box

Ошибка при динамическом обмене данными (DDE) с другими приложениями

LinkExecute

Form, MDI Form

Командная строка посылается в приложение, с которым устанавливается режим динамического обмена данными (DDE)

Название события

Элементы управления, для которых используется события

Описание действия

LinkNotify

Label, picture box, text box

Изменение данных в приложении, с которым установлен режим динамического обмена данными (DDE)

LinkOpen

Form, MDI Form, label, picture box, text box

Инициализация связи с приложением для динамического обмена данными (DDE)

Load

Form, MDI form

Загрузка формы

LostFocus

Form, check box, combo box, command button, directory list box, drive list box, file list box, grid, horizontal scroll bar, list box, OLE control, option button, picture box, text box, vertical scroll bar

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

Mouse Down Mouse Up

Form (кроме MDI form), check box, command button, data control, directory list box, file list box, frame, grid, image, label, list box, option button, OLE control, picture box, text box

Нажатие. Отпускание кнопки мыши

MouseMove

Form (кроме MDI form), check box, command button, data control, directory list box, file list box, frame, grid, image, label, list box, OLE control, option button, picture box, text box

Перемещение мыши

Paint

Form, picture box

Новое представление на экране после изменения размера или после удаления закрывающего объекта на экране

PathChange

File list box

Изменение перехода (установка нового имени файла (FileName) или перехода (Path))

PattemChange

File list box

Изменение модели названия файла (например, .)

Query Unload

Form, MD1 form

Предшествует закрытию формы или приложения

Reposition

Data control

Запись становится текущей

Resize

Form, MDI form. OLE control, picture box

при изменении размера элемента

RowColChange

Grid

Переход от одной ячейки

Scroll

Horizontal scroll bar. vertical scroll bar

Перемещение движка линейки прокрутки

SelChange

Grid

диапазона ячеек к другому .

Timer

Timer

времени

Unload

Form, MD1 Form

 

 

Updated

OLE control

Изменение данных в объекте OLE

Validate

Data control

Перед тем, как другая запись становится текущей

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

Для того чтобы вызвать метод, указывается имя объекта и через точку имя метода:

{ [имя_формы. ] 1 [имя_формы. ] имя_элемента_управления. }имя_метода

Например, Debug.Print обеспечивает вывод (печать) текста в специальном отладочном окне (Debug - имя окна, Print - имя

метода).

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

Таблица 2.3

Название метода

Элементы управления, для которых используются события

Описание действия

Addltem

List box, combo box, grid control.

Добавление элемента в список (List box, combo box) или строки (grid)

AddNew

Data control

Очистка буфера и подготовка создания новой записи

Arrange

MDI Form

Представление окон и иконок на MDI Form

Circle

Form, picture box, Printer object

Рисование дуги, эллипса или окружности

Clear

List box, combo box

Удаление всех элементов списка

Close

Data control

Закрытие базы данных

CIs

Form, picture box

Очистка от графических элементов или текста

DDEMetods (LinkExecute, LinkSend, LinkPoke, LinkRequest)

Label, picture box, text box.

Динамический обмен данных с другими приложениями

Delete

Data control

Удаление текущей записи

Drag

Все, кроме Line, Menu, Shape, Timer

Перемещение объекта

Edit

Data control

Открытие текущей записи для редактирования

EndDoc

Printer

Конец передачи документа принтеру

Execute

Data control

Выполнение запроса к базе данных

ExecuteSOL

Data control

Выполнение SQL запроса к базе данных

FieldSize

 

 

Определение числа байт в тексте или двоичных знаков

FindFirst, FindLast, FindNext, Find Previous

Data control

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

GetChunk

 

 

Выделенные FieldSize число байтов или двоичных знаков

GetData GetFormat GetText

Clipboard

Работа с буфером обмена

Название метода

Элементы управления, для которых используются события

Описание действия

Hide

Form, MD1 form

Спрятать форму с экрана без ее выгрузки

Line

Form, picture box. Printer

Рисование линии или прямоугольника

Move

Все, кроме timer и menu

Перемещение элемента

MoveFirst, Move Last, MoveNext, Move Previous

Data control

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

NewPage

Printer

Переход при печати к следующей странице

Point

Form, picture box

RGB (red-green-blue) цвет точки

PopupMenii

Form

Вывод всплывающего меню в заданной точке формы

Print

Form, picture box. Debug, Printer

Печать строки на объекте

PnntForm

Form

Побитовая распечатка формы

PSct

Form, picture box. Printer

Точка на объекте

Refresh

Все

Немедленная перерисовка на экране

Remove Item

List box, combo box, grid

Удаление элемента списка или ячеек в сетке

Scale

Form, picture box. Printer

Координаты объекта

Set Data

Clipboard

Запись графики в Clipboard с заданным форматом

SetFocus

CheckBox, ComboBox, CommandButton, DiiListBox, DnveListBox, FileListBox, Form, HScrollBar, ListBox, MDIForm, OLE Container, OptionBiitton. PictureBox, Text Box. VScrollBar

Установка курсора

SetText

Clipboard

Запись строки в Clipboard с заданным форматом

Show

Form

Вывод формы на экран

TextHcight

Form, picture box. Printer

Высота текстовой строки при печати с текущим шрифтом

TextWidth

Form, picture box. Printer

Ширина текстовой строки при печати с текущим шрифтом

Название метода

Элементы управления, для которых используются события

Описание действия

Update

Data control

Сохранение буфера копирования

UpdateControls

Data control

Контроль изменения данных

Update Record

Data control

Сохранение изменения данных

ZOrder

App, CheckBox, ComboBox, CommandButton, DirListBox, DnveListBox, FileListBox, Form, Frame, Grid, HScrollBar, Image, Label, Line, ListBox, MDIForm, OptionBiitton, PictureBox, Shape, TextBox, VScrollBar

Расположение на переднем или заднем плане

Более подробную информацию об использовании методов можно получить из встроенной в Visual Basic справочной системы.

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

2.2. ФОРМА

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

BorderStyle (Тип границ) принимает одно из четырех стандартных значений, изменение которых допускается только на этапе разработки формы и определяют вид и поведение формы в процессе выполнения приложения (но не влияют на вид формы при разработке):

О - None - границы окна отсутствуют;

/ - Fixed Single - окно постоянного размера, определяемого на этапе разработки, с одинарной линией границы; 2 - Sizeable - окно изменяемого размера с двойной линией границы;

3 - Fixed Double - окно постоянного размера, определяемого на этапе разработки, с двойной линией границы.

Caption (Название) - заголовок окна.

ControlBox (Кнопка системного меню) принимает одно из двух стандартных значений, изменения которых допускается только на этапе разработки формы:

True - кнопка системного меню в левом верхнем углу окна;

False - кнопка отсутствует.

Enabled (Доступ) принимает одно из двух стандартных значений:

True - форма доступна (по умолчанию);

False - форма недоступна (блокирована от воздействия любых событий, связанных с мышью или клавиатурой).

FontName (Имя), FontSise (Размер), FontBold (Полужирный), Fontltalic (Курсив), FontStrikethru (Зачеркнутый), FontUnderline (Подчеркнутый) определяют шрифты выводимого на форму текста.

Размер шрифта определяется в пунктах (point) - стандартная типографская единица измерения (1 пт равен 1/72 дюйма или 0,035 см).

BackColor (Цвет фона) и ForeCoIor (Основной цвет) определяют цвет фона формы и выводимого на форму текста или изображения.

Height (Высота), Width (Ширина) определяют высоту и ширину формы. Единица измерения 1 twip равна 1/1440 дюйма или 0,0018 см.

MaxButton (Кнопка развернуть), MinButton (Кнопка свернуть) опеделяют наличие на форме соответствующих кнопок.

Name (Имя) - имя формы. Используется при написании текста программы и изменяться не может.

Тор (Верхняя координата), Left (Левая координата) определяют координаты левого верхнего угла формы.

Visible (Видимость), WindowsState (Состояние окна) определяют видимость формы на экране (True - видима, False - невидима) и отображение (0 - нормальное, 1 - свернутое в значок, 2 -развернутое).

Наиболее часто используются следующие события:

Click (Щелчок) или DblClick (Двойной щелчок) мышью в любом месте формы вызывает процедуры обработки события Form_Click или Form_DblClick.

KeyPress (Нажатие клавиши) вызывает процедуру обработки события Form_KeyPress, на вход которой подается значение ASCII-кода нажатой клавиши.

Load (Загрузка) - событие происходит при загрузке формы (например, при запуске приложения) и удобна для инициализации свойств и переменных при запуске программы.

Из методов рассмотрим:

CIs очищает форму от всех изображений и текста. Синтаксис:

[имя формы.] CIs;

Print выводит текст на форму и очень удобен для вывода на форму простой информации. Синтаксис:

[имя формы.]Print [[выражение][{;!,}]]...

Если после выражения стоит “;”, то за последним символом предыдущего выражения сразу выводится следующее. Если стоит “,”, то вывод производится по зонам, каждая из которых имеет размер 14 символов. Отсутствие после последнего выражения “;” или “,” переводит позицию вывода в начало следующей строки.

Пример программы.

Создадим новый проект с именем project2.mak, в котором открывается форма Forml. Используя кнопку View Code, откроем окно программы и введем тексты программ для процедур обработки событий Click и KeyPress для объекта Form.

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

При нажатии клавиши Enter изменяются исходное положение и размер формы, задается шрифт “курсив” и его размер, которым выводится на форму продолжение текста. Запустив проект на выполнение кнопкой Run Главного меню, увидим пустую форму. Щелкнув на ней мышью, увидим изменение положения и размеров и начало текста. Нажав клавишу Enter, увидим измененную форму с окончанием текста .

2.3. МЕТКА

Label (Метка) - поле, заполняемое текстовой информацией, которая может изменяться только программно. Наиболее часто используемыми свойствами являются:

Alignment (Выравнивание) определяет размещение названия метки. По умолчанию значение равно 0 - выравнивание по левой границе (Left Justify). Значение равно / - выравнивание по правой границе (Right Justify), 2 — выравнивание по центру (Center).

AutoSize (Автоподстройка размера) позволяет автоматически-подогнать размер поля метки под размер текста, заданный свойством Caption (значение True). При значении False размер не меняется, лишние символы отсекаются.

BorderStyle (Тип границ) принимает значение 0 (по умолчанию) - контур поля метки отсутствует или / - контур поля метки очерчивается одинарной линией.

Caption (Название) - текст поля метки.

Enabled (Доступ) принимает по умолчанию значение True. При значении False текст метки поблекнет и обработка событий, связанных с действием мыши, блокируется.

FontBold, Fontltalic, FontName, FonfSize, FontUnderline определяют шрифты текста метки.

BackColor (Цвет фона) ForeColor (Основной цвет ) определяют цвет фона поля метки и выводимого текста.

Height (Высота), Width (Ширина) определяют высоту и ширину поля метки.

Name (Имя) - имя метки. Используется при написании текста программы и изменяться не может. Top (Верхняя координата). Left (Левая координата) определяют координаты левого верхнего угла поля метки.

Visible (Видимость) определяет видимость метки (True -видима, False - невидима).

События Click (Щелчок) или DblClick (Двойной щелчок) мышью в поле метки вызывает процедуры обработки события Label_Click или Label_DblClick.

2.4. ТЕКСТОВОЕ ОКНО

Текстовое окно определяет область экрана для ввода или вывода информации и обладает уже рассмотренными свойствами BorderStyle (Тип границ), Enabled (Доступ), FontBold, Fontltalic, FontName, FontSize, FontUnderline, BackColor (Цвет фона), ForeColor (Основной цвет ), Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата), Left (Левая координата), Visible (Видимость), которые имеют те же функции и значения параметров.

MaxLength (Максимальная длина) по умолчанию принимает значение 0, что позволяет вводить или выводить любое количество символов. Другое значение определяет возможное число символов.

MultiLine (Несколько строк) может принимать значение False (позволяет вводить или выводить одну строку текста) или True (позволяет вводить или выводить несколько строк). При вводе, нажимая клавишу Enter, можно продолжать набор текста с новой строки.

ScrollBars (Линейки прокрутки) принимает значения О (линеек прокрутки в текстовом окне нет), 7 (появляется горизонтальная линейка прокрутки), 2 (появляется вертикальная линейка прокрутки), 3 (появляются горизонтальная и вертикальная линейки прокрутки).

SelLenght (Количество, выделенных символов), SelStart (Начало выделеннго блока), SelText (Выделенный текст) доступны только при написании текста программы и не содержатся в списке свойств. Определяют соответственно число выделенных символов, позицию первого символа выделяемого блока (О—первый символ, 1 - второй и т.д.), выделенную строку.

Text (Текст) также не содержится в списке свойств. Определяет вводимую или выводимую в текстовое окно строку.

 

Из событий чаще используются:

Change (Изменение) вызывается изменением свойства Text пользователем или программно. Набор каждого нового символа определяет данное событие и вызов процедуры его обработки.

Click (Щелчок) или DblClick (Двойной щелчок) мышью в текстовом окне вызывает соответствующие процедуры обработки события Имя_окна_С\\с\(. или Ямя_о/сна_ОЬ1СИсР.

GotFocus (Установка фокуса) и LostFocus (Уход из фокуса) определяются тем, что в Windows-приложениях в каждый момент может быть активен только один объект (объект находится в фокусе). События определяются соответственно активизацией и дезактивизацией объекта, в данном случае - активизацией или дезактивизацией текстового окна.

Метод SetFocus позволяет установить курсор в выбранное текстовое окно. Синтаксис: [имя текстового окна.} SetFocus

Пример программы.

Разместим на форме управляющие элементы: два текстовых окна (okhoi и окно2) и метку .

Свойства управляющих элементов заданы по умолчанию. Введем для первого текстового окна (Text 1) процедуры

обработки событий GotFocus и LostFocus . В первой и второй процедурах первые два оператора изменяют размеры текстового окна. Третий оператор изменяет цвет фона окна (функция QBColor с параметром 0 определяет черный цвет фона окна, параметр 7 определяет белый цвет). Четвертый оператор определяет текст метки.

Щелкнув мышью по кнопке Run Главного меню запустим программу. Если щелкнуть мышью по первому текстовому окну (активизировать данный управляющий элемент), то первоначальная форма примет другой вид . Щелчок мышью по второму окну (первое окно становится не активным) изменяет вид формы .

2.5. Командная кнопка

Command button (Командная кнопка) обычно активизирует какую-то операцию (вызывает выполнение команды) и обладает уже рассмотренными свойствами BackColor (Цвет фона). Caption (Заголовок), Enabled (Доступ). FontBold, Fontltalic, FontName, FontSize, FontUnderline, Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата). Left (Левая координата). Visible (Видимость), которые имеют те же функции и значения параметров.

Cancel (Отмена) принимает значения True или False. Присвоение этому свойству значение True даст при нажатии клавиши Esc тот же эффект, что и щелчок мышью по кнопке. Значение True может иметь только одна командная кнопка на форме.

Default (По умолчанию) принимает значения True или False. Присвоение этому свойству значение True даст при нажатии клавиши Enter тот же эффект, что и щелчок мышью по кнопке (например, щелчок мышью по кнопке ОК диалогового окна эквивалентен нажатию клавиши Enter). Значение True может иметь только одна командная кнопка на форме.

Командная кнопка реагирует на уже рассмотренные события Click (Щелчок), Keypress (Нажатие клавиши), GotFocus (Установка фокуса) и LostFocus (Уход из фокуса), которые вызывают соответствующие Процедуры обработки этих событий.

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

[имя_Командной кнопки.] SetFocus.

2.6. ФЛАЖОК

Управляющий элемент Check box (Флажок) устанавливает или сбрасывает определенный параметр: если на квадратике флажка обзднетач-зттачок X, то-параметр включен (активен), нет значка - параметр выключен. Щелчок мышью по флажку устанавливает или сбрасывает параметр. Любой флажок функционально независим от других флажков.

Флажок обладает уже рассмотренными свойствами:

BackColor (Цвет фона). Caption (Заголовок), Enabled (Доступ), FontBold, Fontltalic, FontName, FontSize, FontUnderline. Height (Высота), Width (Ширина), Name (Имя). Top (Верхняя координата), Left (Левая координата). Visible (Видимость), которые имеют те же функции и значения параметров. Value (Состояние) принимает значения: 0 - флажок не помечен; 7 - флажок установлен; 2 - флажок затенен (имеет блеклый вид и не доступен для действия с ним).

Флажок реагирует на события Click (Щелчок), Keypress (Нажатие клавиши), GotFocus (Установка фокуса) и LostFocus (Уход из фокуса), которые вызывают соответствующие процедуры обработки этих событий.

Метод SetFocus позволяет привлечь внимание и установить курсор в выбранный флажок. Синтаксис:

[имя_ Флажка.] SetFocus.

2.7. ПЕРЕКЛЮЧАТЕЛЬ

Управляющий элемент Option Button (Переключатель) обычно задается в группе и позволяет выбрать какой-либо вариант из нескольких возможных. Если один из переключателей группы активен, остальные отключены.

Переключатель обладает уже рассмотренными свойствами:

BackColor (Цвет фона), Caption (Заголовок), Enabled (Доступ), FontBoId, Fontltalic, FontName, FontSize, FontUnderline, Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата), Left (Левая координата), Visible (Видимость), которые имеют те же функции и значения параметров.

Value (Состояние) принимает значения: True - переключатель активен, в центре кружка жирная точка; False - не активен.

Переключатель реагирует на уже рассмотренные события Click (Щелчок), DblClick (Двойной щелчок). Keypress (Нажатие клавиши), GotFocus (Установка фокуса) и LostFocus (Уход из фокуса), которые вызывают соответствующие процедуры обработки этих событий.

Метод SetFocus применяется аналогично рассмотренному для флажка.

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

2.8. РАМКА

Управляющий элемент Frame (Рамка) служит для разделения на форме различных групп объектов. Применительно к переключателям, рамки влияют и на поведение кнопок. Для остальных элементов формы рамки выступают в роли визуального разделителя и функции, регулирующей доступ к группе объектов.

Рамка обладает уже рассмотренными свойствами: BackColor (Цвет фона). Caption (Заголовок), FontBoId, Fontltalic, FontName, FontSize, FontUnderline, Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата), Left (Левая координата), Visible (Видимость), которые имеют те же функции и значения параметров.

Enabled (Доступ) принимает значение True или False (при значении False текст в названии рамки и границы блекнут).

Рамка реагирует на рассмотренные события Click (Щелчок), DblClick (Двойной щелчок), которые вызывают соответствующие процедуры обработки этих событий.

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

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

Названия управляющих элементов (Начало, Метод платежа, Наличными, Кредитная карта, Наличными, Рубли, Кредитная карта, Мостбанк, VISA) заданы значением свойств Caption перечисленных управляющих элементов формы.

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

  Щелчок мышью по кнопке Начало должен активизировать рамку выбора метода платежа и находящиеся в ней переключатели. Щелчок мышью по переключателю Наличными должен активизировать соответствующую рамку и находящийся в ней флажок. Щелчок мышью по переключателю Кредитная карта должен активизировать соответствующую рамку и находящиеся в ней переключатели (рамка Наличными и находящийся в ней флажок должны при этом стать не активными).

Такая логика работы диалоговой формы обеспечивается заданием следующего программного кода (используемые имена управляющих элементов Commandl (Управляющая кнопка), Checkl (Флажок), Framel, Frame2, Frame3 (Рамки), Optioni, Option2, Option3, Option4 (Переключатели) вводятся Visual Basic по умолчанию):

Private Sub Commandl Click() Framel.Enabled = True Optioni.Enabled = True Option2.Enabled = True

End Sub

Private Sub Optionl_Click()

Frame2.Enabled = True

Checkl.Enabled = True

Frame3.Enabled = False

Option3.Enabled = False

Option4.Enabled = False End Sub

Private Sub Option2_Click()

Frame3.Enabled = True

Option3.Enabled = True

Option4.Enabled = True

Frame2.Enabled = False

Checkl.Enabled = False End Sub

Процедура Sub Commandl_Click обработки события, связанного с щелчком мыши по командной кнопке, обеспечивает активизацию рамки Метод платежа и расположенных в ней переключателей.

Процедура Sub Optionl_ciick обеспечивает активизацию рамки “Наличные” и расположенный в ней флажок “Рубли”. Процедура Sub Option2_ciick обеспечивает активизацию рамки

“Кредитная карта” и расположенных в ней переключателей. Последние два оператора в каждой процедуре обеспечивают деакти-визацию соответственно рамок “Кредитная карта” и “Наличные” и элементов в них, если они ранее были активны.

 

Запустив данное приложение кнопкой Run Главного меню, увидим исходную форму (неактивные элементы обозначены бледно) . Щелкнув мышью по командной кнопке “Начало”, увидим форму . Щелкнув мышью по переключателю “Наличными”, активизируем рамку “Наличными” и флажок “Рубли”, который можно пометить . Щелчок мыши по переключателю “Кредитная карта” активизирует соответствующую рамку и переключатели в ней, один из которых можно активизировать.

2.9. СПИСОК

Управляющий элемент List box (Список) позволяет вывести на экран список вариантов (элементов списка—list entry), которые могут быть выбраны щелчком мыши. Минимальная высота списка составляет три строки. Длинный список, который не может быть выведен на экран целиком, снабжается линейкой прокрутки (scroll bars). Содержимое списка нельзя задать на этапе разработки формы.

Кроме уже рассмотренных свойств: BackCoIor (Цвет фона), Enabled (Доступ), FontBold, Fontltalic, FontName, FontSize, FontStrikethru, FontUnderline, ForeColor (Основной цвет), Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата), Left (Левая координата), Visible (Видимость), которые имеют те же функции и значения параметров, специфические свойства следующие:

Columns (Колонки) по умолчанию принимает значение 0 и элементы списка располагаются в одну колонку. Если значение больше 0, то элементы списка размещаются в соответствующем

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

MultiSelect (Множественное выделение) определяет, сколько элементов можно одновременно выделить в списке. Принимает значения: 0 — None - допускается выделение толька одного дле-мента; / — Simple - допускается выделение нескольких элементов;

2 - допускается ускоренное выделение нескольких элементов (щелчок мышью на первом выделяемом элементе, а затем, удерживая клавишу Ctrl,—на последний элемент).

Selected (Признак выделения) является массивом, значения которого либо True (элемент списка выделен), либо False (элемент списка не выделен). Для определения статуса конкретного элемента можно использовать выражение

имя списка. Selected (значение индекса).

Sorted (Сортировка) принимает значения True (элементы в списке располагаются по английскому алфавиту) или False (элементы в списке располагаются в порядке их ввода).

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

List (Список) список (массив) из элементов списка, доступ к каждому из которых обеспечивается записью:

имя cnucica.List (значение индекса).

ListCount (Количество элементов в списке) равно количеству элементов в списке.

Listlndex (Индекс текущего элемента в списке) определяет номер последнего выделенного подсветкой элемента в списке (первого — 0, второго — / и т.д.). Если элемент не выделен, значение равно /. Установка значения в тексте программы приводит к подсветке соответствующего элемента.

Text (Текст) содержит последний выделенный элемент списка.

Список реагирует на уже рассмотренные события: Click (Щелчок), DblClick (Двойной щелчок), KeyPress (Нажатие клавиши), GotFocus (Установка фокуса), LostFocus (Потеря фокуса), которые вызывают соответствующие процедуры обработки этих событий.

Наиболее используемые методы:

Addltem включает элемент (строку текста) в список. Синтаксис:

имя спнс/co.AddItem строка {.индекс}.

  Если индекс отсутствует, то элемент (строка) автоматически ставится в конец списка. Если значение свойства Sorted равно True, то индекс должен отсутствовать—элемент размещается в соответствии с алфавитным порядком.

Clear удаляет из списка все элементы. Синтаксис:

имя списка.(Леш

Removelen убирает из списка элемент с заданным индексом. Синтаксис:

имя списка. Removelen индекс.

2.10. КОМБИНИРОВАННЫЙ СПИСОК

Управляющий элемент Combo Box (Комбинированный список) объединяет текстовое окно (поле ввода) с обычным списком в один элемент управления. Комбинированный список не позволяет размещать элементы в несколько колонок.

Комбинированный список обладает уже рассмотренными свойствами: BackColor (Цвет фона). Enabled (Доступ), FontBold, Fontltalic, FontName, FontSize, FontStrikethru, FontUnderline, ForeColor (Основной цвет). Height (Высота), Width (Ширина), Name (Имя), Top (Верхняя координата), Left (Левая координата), Visible (Видимость), Sorted (Сортировка), которые имеют те же функции и значения параметров.

Style (Тип) определяет тип комбинированного списка и принимает значения 0 (раскрывающийся комбинированный список), 7 (простой комбинированный список), 2 (раскрывающийся список).

Раскрывающийся список вначале отображает одну строку со стрелкой справа. Щелчок мыши на стрелке открывает весь список, в котором можно выбрать один из элементов, как в обычном списке. Примером раскрывающегося списка является список Object в окне Properties. He позволяет вводить информацию в текстовое окно.

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

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

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

Комбинированный список реагирует на уже рассмотренные события Click (Щелчок), DblClick (Двойной щелчок), Keypress (Нажатие клавиши), GotFocus (Установка фокуса), LostFocus (Потеря фокуса), которые вызывают соответствующие процедуры обработки этих событий.

Методы:

Addltem включает элемент (строку текста) в комбинированный список. Синтаксис:

имя списка Addltem строка [, индекс}

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

Clear удаляет из списка все элементы. Синтаксис:

имя списка. Clear

Removelen убирает из списка элемент с заданным индексом. Синтаксис:

имя списка. Removelen индекс

Пример программы.

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

  Имена элементов задаются по умолчанию (последовательно слева направо списки: List! и List2, комбинированные списки:

Combol, Combo 2, СотЬоЗ).

Значения свойства Style: для комбинированного списка Combo! зададим /, для Combo2 - 0, для Combo 3 - 2. Размер окна для комбинированного списка Combol нужно определить при размещении элемента на форме. Форма имеет вид, показанный на .

Определим следующие процедуры обработки событий:

Listl.AddItem List2.Text List2.Removeltem List2.Listlndex End Sub

Процедура Form_Load обеспечивает формирование исходной информации списков. Процедуры Listl_DblClick и List2_DblClick обеспечивают при двойном щелчке мыши по одному из элементов списка перенос этого элемента в другой список. Процедуры Combo l_Key Press и Со mbo2_Key Press обеспечивают ввод набранного текста в строке ввода при нажатии клавиши Enter в соответствующий список. После запуска программы выводится исходная форма . Двойной щелчок мыши по одному из элементов верхних списков переносит этот элемент в другой список.

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

Элементы центрального комбинированного списка появляются в раскрывающемся окне после щелчка мыши по стрелке. Имеется возможность выбора элемента из списка и ввода нового элемента в список, набрав его в строке ввода.

Элементы правого комбинированного списка появляются в раскрывающемся окне после щелчка мыши по стрелке. Имеется возможность только выбора элемента из фиксированного списка .

Private Sub Combol_KeyPress(keyascii As Integer)

If keyascii = 13 Then

combol.Addltem combol.Text

End If End Sub

Private Sub Combo2_KeyPress(keyascii As Integer)

If keyascii = 13 Then

combo2.Addltern combo2.Text

End If End Sub

Private Sub Form_Load ()

Listl.AddItem “Иванов И.И.” Listl.AddItem “Петров П.П.” Listl.AddItem “Сидоров С.С.”

сотЬоЗ.Addltem “Неудовл.” combo 3.Add!tern “Удовлетв.” combo3.Addltem “Хорошо” сотЬоЗ.Addltem “Отлично” combo2.Addltem “Михайлов М.М.” combo2.Addltem “Николаев Н.Н.” combol.Addltem “Физика” combol.Addltem “Математика” combol.Addltem “История” End Sub

Private Sub Listl_DblClick() List2.Addltem Listi.Text Listi.Removeltem Listi.Listlndex

End Sub

Private Sub List2_DblClick()

2.11. ЛИНЕЙКИ ПРОКРУТКИ

Horizontal Scroll Bar и Vertical Scroll Bar (Горизонтальные и вертикальные линейки прокрутки) позволяют задавать значение какой-либо величины в определенном диапазоне и узнавать значение этой величины по позиции движка на линейке.

Линейки прокрутки обладают уже рассмотренными свойствами: Enabled (Доступ), Height (Высота), Width (Ширина), Name (Имя), Тор (Верхняя координата), Left (Левая координата), Visible (Видимость), которые имеют те же функции и значения параметров.

LargeChange (Постраничное изменение) определяет изменение текущей позиции движка и соответственно задаваемую величину (Value) при щелчке внутри линейки прокрутки.

Мах (Максимум) определяет максимальное значение задаваемой величины (соответствует крайней правой или нижней позиции движка). Диапазон значений: от -32768 до 32767.

Min (Минимум) определяет минимальное значение задаваемой величины (сответствует крайней левой или верхней позиции движка). Диапазон значений: от -32768 до 32767.

SmallChange (Построчное изменение) определяет изменение текущей позиции движка и соответственно задаваемую величину (Value) при щелчке по одной из стрелок направления прокрутки.

Value (Текущая позиция) отражает текущее значение и позицию движка. При изменении свойства программным путем движок перемещается в соответствующую позицию. При выходе за пределы, установленные Мах и Min, выводится сообщение об ошибке.

Линейки прокрутки реагируют на уже рассмотренные события Click (Щелчок), DblClick (Двойной щелчок), Keypress (Нажатие клавиши), GotFocus (Установка фокуса), LostFocus (Потеря фокуса), которые вызывают соответствующие процедуры обработки этих событий.

Scroll (Прокрутка) непрерывно генерируется при перемещении (мышью) движка по линейке и позволяет динамически отслеживать его позицию.

Change (Изменение) возникает при изменении позиции движка и определяет его конечное положение.

Рассмотренные ранее методы неприменимы к линейкам прокрутки.  Пример программы.

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

В окне Properties (Свойства) для объекта Hscrolll (имя присваивается по умолчанию) зададим следующие значения свойств:

LargeChange = 10, Мах = 100, Min = 0, SmallChange = 5.

Определим процедуры обработки событий НScrolll_Change и HScrolll_Scroll:

.Private Sub HScrolll_Change()

Textl.Text = HScrolll.Value End Sub

Private Sub HScrolll_Scroll()

Text2.Text = HScrolll.Value End Sub

Событие Change отражается в верхнем окне, событие Scroll - в нижнем окне. После запуска программы щелчок мыши по полю вызывает перемещение движка и изменение значения в верхнем окне на 10 единиц (Large Change), щелчок мыши по стрелкам вызывает перемещение движка и изменение значения в верхнем окне на 5 единиц (Small Change). Эти изменения не отражаются в нижнем окне . Перемещение движка мышью вызывает изменение значения, которые отражаются в обоих окнах.

2.12. ПРИМЕР СОЗДАНИЯ ФОРМЫ

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

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

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

На этапе загрузки формы заполняются комбинированные списки “Фирма”, “Цвет”, “Исполнение”, а также простой список “Фирм продавцов”:

Список “Фирмы”

Список “Цвет”

Список “Исполнение”

Список “Фирмы-продавцы”

Мерседес

Красный

Люкс

АЗР

Ауди

Белый

Стандарт

Musa Motors

Фольксваген

Черный

Минимум

ЛадаИнжинеринг

Шкода

Синий

 

 

Sawa

Рено

Зеленый

 

ЛогоВАЗ

Ситроен

 

 

 

 

 

 

Лада

 

 

 

 

 

 

Заполнение производится в процедуре Form_Load с помощью методов Additem.

В той же процедуре задаются названия меток Label4 и Label5 (соответственно значение мощности в киловаттах и в лошадиных силах). Эти названия должны изменяться соответственно значению текущего положения движка линейки прокрутки. Для преобразования мощности из киловатт в лошадиные силы и обратно надо использовать соотношение: 1Л.С.=735,499 Вт.

Для определения названия метки необходимо преобразовать численное значение свойства HScrolll. Value в текст с использованием встроенной функции Str$ (выражение Str$(HScrolll. Value)).

В таблицах приведены операторы процедур обработки событий примера и поясняющие их комментарии.

Процедура

Комментарии

Sub Form Load()

 

 

LabeM.Caption = Str$(HScrolll. Value * 735.499 / 1000)

Определение названия (свойство

Label5.Caption = Str$(HScrolll. Value)

Caption) метки Label4 Определение названия метки Label5

Combo 1.Add Item “Мерседес”

Combol - имя списка “Фирмы”

Combo 1.Add I tern “Ауди”

Additem - метод, осуществляющий

Combo 1.Add Item “Фольксваген”

добавление элементов в список с

Combol.Additem “Шкода”

указанным именем

Combo 1.Additem “Рено”

“Мерседес” - Значение добавляемого

Combol.Additem “Ситроен”

элемента

Combol.Additem “Лада”

 

 

 

Метод Additem одинаково действует

Combo2.AddItem “Красный”

и для комбинированных списков и

Combo2.AddItem “Белый”

для простых

Combo2.AddItem “Черный”

 

 

Combo2.AddItem “Синий”

 

Combo2.AddItem “Зеленый”

 

 

СотЬоЗ.Additem “Люкс”

 

 

Combo3.AddItern “Стандарт”

 

 

Combo3.AddItem “Минимум”

 

 

Listl.Additem “Musa Motors”

 

 

Listl.Additem “ЛадаИнжинеринг”

 

Listl.Additem “Sawa”

 

Listl.Additem “A3P”

 

Listl.Additem “ЛогоВАЗ”

 

 

End Sub

 

 

 

В результате выполнения процедуры выводится форма . На форме активны только четыре элемента: метка с названием “Фирма”, командная кнопка “Конец”, текстовое окно “Описание модели” и комбинированный список “Фирма”.

При щелчке по списку он разворачивается и из него можно выбрать название фирмы-производителя. После выбора фирмы её название заносится в текстовое окно “Описание модели”, комбинированный список фирм становится неактивным вместе с меткой “Фирма”, а метка “Цвет”, комбинированный список для выбора цветов автомобиля и метка отображения выбранного цвета становятся активными.

Для выполнения указанных действий процедура Combo l_Click() (обработка события щелчок по списку) содержит следующие операторы:

Процедура

Комментарии

Sub Combo lClick()

Деактивизация комбинированного

Combol. Enabled == False

списка путем присвоения значения

Label 1. Enabled = False

False( ложь ) свойству Enabled

 

 

(Активность)

 

 

Добавление к значению текстовой

Text 1.Text = Text 1.Text +

строки “Описание модели”

Combol.Text + Chr$(13) + Chr$(10)

значения текущего (выбранного)

 

элемента из комбинированного

 

 

списка “Фирмы”. “+” - операция

 

сцепления строк

 

Chr$(10), Chr$(13) - функция, ре

 

зультатом вычисления которой

 

является символ с кодом 10 и 13

 

 

13, 10 - комбинация символов для

 

перевода курсора в начало следую

 

щей строки текстового окна.

 

Активизация комбинированного

 

 

списка “Цвета” и его метки

Combo2. Enabled = True

 

 

Label2. Enabled = True

 

End Sub

 

 

 

После завершения выполнения данной процедуры на форме изменятся элементы .

На форме активны только четыре элемента: метка с названием “Цвет”, командная кнопка “Конец”, комбинированный список для выбора цвета и текстовое окно “Описание модели”. При щелчке по списку он разворачивается и из него можно выбрать цвет для машины.

После выбора цвета его название заносится в текстовое окно “Описание модели”, комбинированный список цветов становится неактивным вместе с меткой “Цвет”, а метка “Исполнение” и комбинированный список для выбора варианта исполнения автомобиля становятся активными .

Для выполнения указанных действий процедура Combo2_Click() (обработка события “Щелчок по списку”) содержит следующие операторы:

Коды цветов приведены в следующей таблице:

 

Цвет

Код цвета

 

Голубой

#0000FF

 

Черный

#000000

 

Белый

#FFFFFF

  Зеленый #009900
  Красный #FF0000
 

Желтый

#FFFF00

Коды цветов заданы в шестнадцатеричной системе счисления, в которой для представления чисел используется 16 символов: цифры от 0 до 9 и буквы от А (эквивалент 10) до F (эквивалент 15). Значимость каждой п-й позиции в шестнадцате-ричном числе возрастает пропорционально степени \6”n. Например, десятичное число 419 в шестнадцатеричном представлении записывается 1АЗ:

1*16”2 + 10*16”! + 3*16^0 = 419.

В двоичной системе число 15 записывается 1111, т.е. любой символ шестнадцатеричного числа можно кодировать четырьмя битами. Память компьютера разделена на байты (1 байт равен 8 битам) и каждый байт может хранить любое из 256 (16^1) шестна-дцатеричных чисел: от 0 до FF. Такое компактное представление информации на основе шестнадцатеричной системы счисления обусловливает ее широкое использование в программировании.

Шестнадцатеричному числу в Visual Basic предшествуют символы &Н.

Как видно из , на форме активны четыре элемента:

комбинированный список, соответствующий метке с названием “Исполнение”, командная кнопка “Конец” и текстовое окно “Описание модели”. При щелчке по элементу комбинированного списка можно выбрать соответствующий вариант исполнения для машины. После выбора варианта исполнения его название заносится в текстовое окно “Описание модели”, комбинированный список становится неактивным вместе с меткой, а рамка с названием “Тип кузова” и три переключателя внутри неё - активными . Для выполнения указанных действий процедура Combo3_Click() (обработка события “Щелчок по списку”) содержит следующие операторы:

В результате выполнения данной процедуры на форме произойдут изменения, показанные на . На форме активны шесть элементов: кнопка “Конец”, рамка “Тип кузова”, текстовое окно “Описание модели” и три переключателя в рамке.

В результате форма примет вид, показанный на . На форме активны: текстовое окно с названием “Описание модели”, рамка “Список фирм-дистрибъютеров”, командная кнопка с названием “Очистить список”, командная кнопка с названием “Добавить название”, текстовая строка для добавления нового имени в список продавцов и кнопка “Конец”.

При щелчке по флажку “Двухколоночный” список в зависимости от состояния флажка преобразуется в двухколоночный и обратно. Реализующая процедура обработки события Check3_Click() содержит следующие операторы:

Процедура

Комментарии

Sub Check3 Click() IfCheck3.Value = 0 Then List!.Columns = 1 Else List 1.Columns = 2 End If

End Sub

Свойство Value элемента Check равно 0, если флажок не взведен. В зависимости от значения этого свойства определяется свойство списка.(Listl.Columns = 1 - список одноколоночный, Listl.Columns = 2 -список двухколоночный)

При щелчке по кнопке “Очистить список” из списка фирм удаляются все элементы с помощью метода Clear, а затем кнопка деактивизируется. Реализующая процедура Command l_Click() содержит следующие операторы:

Процедура

Комментарии

Sub Command I ClickQ List [.Clear Command L Enabled = False Command3.Enabled = False End Sub

Очистка списка Деактивация кнопки очистки списка Деактивация кнопки удаления элемента списка

При щелчке по кнопке “Добавить элемент” содержимое текстовой строки добавляется в список с помощью метода Additem. Список обладает свойством автосортировки (добавление происходит в соответствии с упорядоченностью по алфавиту). Происходит очищение текстовой строки и активизация кнопок “Удалить элемент” и “Очистить список”. Это обеспечивается следующими операторами:

Процедура

Комментарии

Sub CoiTimand4Click() Listl.AddItem Text2.Text Text2.Text = “” Command [.Enabled = True Command3. Enabled = True End Sub

Добавление нового имени в список Очистка текстовой строки. Активизация кнопок “Удалить элемент” и “Очистить список”

Для фиксации названия фирмы или удаления его из списка требуется предварительно щелкнуть мышью по элементу списка. При обработке этого события проверяется наличие элементов в списке и активизируются кнопки “Зафиксировать”, “Удалить элемент” и “Очистить список”. Это обеспечивается следующими операторами:

Процедура

Комментарии

Sub Listi Click() If List 1. Listi ndex >= 0 Then

Command3.Enabled = True Command6. Enabled = True End If End Sub

Свойство Listlndex равно номеру выделенного элемента. Если ни один элемент не выделен, то его значение - 0 Активизация кнопки удаления элемента и фиксации элемента

В результате обработки события “щелчок мыши” по элементу списка форма примет вид на .

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

тоту списка осуществляется с помощью свойства ListCount,

значение которого равно числу элементов в списке. Это обеспечивается следующими операторами:

Процедура

Комментарии

Private Sub Command3 Clic() If Listi. Listi ndex >= 0 Then List 1. Remove Item List 1. List! ndex Command3.Enabled = False End If

If Listi. ListCount = 0 Then Command [.Enabled = False End If End Sub

Проверка на выбор элемента Удаление элемента из списка Деактивация кнопки удаления элемента списка, так как нет выделенных элементов в списке Проверка списка на пустоту. Если список пуст, то деактивация кнопки очистки списка

При щелчке по кнопке “Зафиксировать” выбранное название фирмы помещается в текстовое окно “Описание модели”, деактивизируется рамка с названием “Список фирм-дистрибьюторов” и все управляющие элементы, лежащие внутри рамки. Процедура обработки события щелчка по кнопке “Зафиксировать” имеет следующий вид:

На форме остались активными только два управляющих элемента: командная кнопка “Конец” и тестовое окно “Описание модели”. В текстовое окно можно добавлять собственный текст и редактировать имеющийся.

При нажатии на кнопку “Конец” работа программы завершается. Это обеспечивается операторами:

Процедура

Комментарии

Sub Command2 Click() End End Sub

End - оператор завершения программы

 

Тексты всех процедур обработки событий примера:

Private Sub Check2_Click() If Check2.Value = 1 Then

Textl.Text = Textl.Text + Check2.Caption + Chr$(13) + Chr$(10)

Check2.Enabled = False End If End Sub

Private Sub Check3_Cli.ck() If Check3.Value = 0 Then

Listi.Columns = 1 Else

Listi.Columns = 2 End If End Sub

Private Sub Check4_Click () If Check4.Value = 1 Then

Check4.Enabled = False

Textl.Text = Textl.Text + Check4.Caption + Chr$(13) + Chr$(10) End If End Sub

Private Sub Combol_Click() Combol.Enabled = False

Textl.Text = Textl.Text + Combol.Text + Chr$(13) + Chr$(10)

Labell.Enabled = False Combo2.Enabled = True Label2.Enabled = True End Sub

Private Sub Combo2_Click() Combo2.Enabled = False Label2.Enabled = False Private Sub Cornmand4_Click () Listl.AddItem Text2.Text Text2.Text = “” Commandl.Enabled = True End Sub

• Private Sub Command2_Click() End End Sub

Private Sub Command5_Click() Check2.Enabled = False Check4.Enabled = False Frame2.Enabled = False HScroill.Enabled = False Label4.Enabled = False Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False Lab.el8 .Enabled = False Commands.Enabled = False

Textl.Text = Textl.Text + Label5.Caption + “Л.С” + Chr$(13) + Chr$(10)

Framel.Enabled = True Listi.Enabled = True Text2.Enabled = True Command4.Enabled = True Check3.Enabled = True Commandl.Enabled = True End Sub

Private Sub Command6_Click() ‘If Listl.ListIndex >= 0 Then

Textl.Text = Textl.Text + Listl.Text + Chr$(13) + Chr$(10)

Framel.Enabled = False Listi.Enabled = False Text2.Enabled = False Command4.Enabled = False Check3.Enabled = False Commandl.Enabled = False Command6.Enabled = False Commands.Enabled = False End If End Sub

Textl.Text = Textl.Text + Combo2.Text + Chr$(13) + Chr$(10)

If Combo2.Text .= “Красный” Then LabelS.BackColor = &HFF& Elself Combo2.Text = “Белый” Then LabelS.BackColor = &HFFFFFF Elself Combo2.Text = “черный” Then LabelS.BackColor = &HO Elself Combo2.Text = “Синий” Then LabelS.BackColor = &HFFOOOO Elself Combo2.Text = “Зеленый” Then LabelS.BackColor = &HCOOO&

End If

Combo3.Enabled = True

Label3.Enabled = True

End Sub

Private Sub Combo3_Click() Combo3.Enabled = False Label3.Enabled = False

Textl.Text = Textl.Text + Combo3.Text + Chr$(13) + Chr$(10)

Frame4.Enabled = True ‘ “ Optioni.Enabled = True Option2.Enabled = True Option3.Enabled = True End Sub

Private Sub Commandl Click () Listi.Clear ~ Commandl.Enabled = False End Sub

• Private Sub Command3_Click() If Listl.ListIndex >= 0 Then

Listi.Removeltem Listl.ListIndex

Command3.Enabled = False End If If Listi.ListCount = 0 Then

Commandl.Enabled = False End If End Sub Private Sub Form_Load()

Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000)

Label5.Caption = Str$(HScrolll.Value) Combol.Addltem “Мерседес” Combol.Addltem “Ауди” Combol.Addltem “Фольксваген” Combol.Addltem “Шкода” Combol.Addltem “Рено” Combol.Addltem “Пежо” Combol.Addltem “Запорожец” Combo2.Addltem “Красный” Combo2.Addltem “Бельм” Combo2.Addltem “черный” Combo2.Addltem “Синий” Combo2.Addltem “Зеленый” Combo3.Addltem “Люкс” СотЬоЗ.Addltem “Стандарт” Combo3.Addltem “Минимум” Listl.Addltem “MusaMotors” Listi.Addltem “Savva” Listl.Addltem “A3P” Listl.Addltem “ЛогоВАЗ” Listl.Addltem “ЛадаИнжениринг” End Sub

Private Sub HScrolll_Change()

Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000)

Labels.Caption = Str$(HScrolll.Value) End Sub

Private Sub Listl_Click() If Listl.Listlndex >= 0 Then Command3.Enabled = True Command6.Enabled = True End If End Sub

Private Sub Optionl_Click() Frame4.Enabled = False Optioni.Enabled = False Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Optioni.Caption Chr$(13) + Chr$(10)

Check2.Enabled = True

Check4.Enabled = True

Frame2.Enabled = True

HScrolll.Enabled = True

Label4.Enabled = True

Labels.Enabled = True

Label6.Enabled = True

Label7.Enabled = True

Labei8.Enabled = True

Commands.Enabled = True End Sub

Private Sub Option2_Click() Frame4.Enabled = False Optionl. Enabled = False Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Option2.Caption + Chr$(13) + Chr$ (10)

Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True HScrolll.Enabled = True Label4.Enabled = True Labels.Enabled = True Label6.Enabled = True Label7.Enabled = True Labels.Enabled = True Commands.Enabled = True End Sub

Private Sub Option3_Click() Frame4.Enabled = False Optioni.Enabled = False Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Option3.Caption > Chr$(13) + Chr$ (10)

Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True HScrolll.Enabled = True Label4.Enabled = True Ldbel5. Ei-icioled = True Ldnei6.EnDied = True LdDpl7 . L.Jt,ied = Tr.Je Lctbel8 . Er.dbied = True CoiTimand . £.ndbled = Tru Ei-ici Sub

2.13. МЕНЮ ПОЛЬЗОВАТЕЛЯ

Важным элементом GUI является стандартное меню пользователя. Visual Basic имеет специальное средство для создания меню пользоваюлеи приложениями - Menu Editor (Проектировщик меню). Это срелс-жо нозволяег построить меню соответственно общим принципам рассмо1ренного событпиного управления для форм и элементов управления. Меню пользоваге-ля создается выстраиванием элементов меню в соответствии с необходимой их иерархией с помощью Проектировщика меню.

Для вызова проектировщика меню нужно вызвать команду Menu Editor... из меню Tools или щелкнуть кнопку Menu Editor на панели инструментов Главного меню. При этом появится окно Menu Editor . элемешы которою имеюг следующее назначение:

для создания разделительной черш (разделяет функциональные группы пунктов меню) вместо имени вводтся символ “-“;

 

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

Разместим на форме (имя - Formi, Caption - Редактор) многострочное текстовое окно (имя - txlEdilBox), размеры которого совпадают с размером формы, для ввода и редактирования текста. Меню редактора включает раскрывающиеся меню: Файл (Новый, Открыть..., Сохранить, Сохранить как.... Выход), Правка (Вырезать, Копировать, Вставить), Справка (О программе). В скобках указаны пункты соответствующих раскрывающихся меню. Это меню создается с использованием Menu Editor.

Аналогично имени mnuEditCopy образуются имена остальных пунктов меню, которые используются для записи программы (nmuEditCut, mnuEditPaste, mnuFileExit, mnuHelpAbout, mnuFileNew, mnuFileOpen, mnuFileSave, mnuFileSaveAs, mnu File Exit}.

Тексты процедур обработки событий следующие:

Sub Form_Resize ()

txtEditBox.Height = ScaleHeight txtEditBox.Width = ScaleWidth

End Sub

Sub mnuEditCopy_Click ()

Clipboard.Clear 'очистить буфер

Clipboard.SetText txtEditBox.SeiText

'поместить 'выделенный текст в буфер End Sub

Sub mnuEditCut_Click ()

Clipboard.Clear 'очистить буфер Clipboard.SetText txtEditBox.SeiText

'поместить 'выделенный текст в буфер txtEditBox.SeiText = “”

'удаление выделенного

'текста End Sub

Sub mnuEditPaste_Click ()

txtEditBox.SeiText = Clipboard.GetText() End Sub

Sub mnuFileExit_Click ()

If MsgBox(“Выход?”,1+32,”Подтвердить”)=lThen End

End Sub

Sub mnuHelpAbout_Click ()

MsgBox “Мой редактор на Visual Basic”,64,”О программе” • End Sub

Sub Form_Unload (Cancel As Integer)

Cancel = 1

mnuFileExit_Click End Sub

Процедура Form_Resiy (обработка события изменения размера формы) обеспечивает автоматическое изменение размеров текстового окна при изменении размеров формы.

Процедура mnuEditCopy_Click (обработка события щелчка мыши по пункту меню “Копировать”) обеспечивает запись выделенного текста в буфер. Используются рассмотренные выше методы для объекта Clipboard и методы для текстового окна (операторы Clipboard. Clear и Clipboard.SetText txtEditBox. SeiText). Во втором операторе txtEditBox. SeiText присваивается выделенный текст.

Процедура mnuEditCut_Click (обработка события щелчка мыши по пункту меню “Вырезать”) обеспечивает перед удалением сохранение выделенного текста в буфере.

Процедура mnuEditPaste_Click (обработка события щелчка мыши по пункту меню “Вставить”) обеспечивает вставку текста из буфера (в данном случае отсутствие при вставке выделения означает вставку в позицию курсора).

Процедура mniiFileExit_Click (обработка события щелчка мыши по пункту меню “Выход”) обеспечивает выход из редактора. Оператор End обеспечивает корректный выход из приложения (закрывает файлы и освобождает память). В процедуре используется функция MsgBox для вывода окна сообщения. Синтаксис ее применения следующий:

MsgBox сообщение [, тип окна] [, заголовок окна]

где

сообщение - текст сообщения;

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

Значение типа

Описание

0

Выводить только кнопку OK

|

Выводить кнопки OK и Cancel

2

Выводить кнопки Abort, Retry, Ignore

3

Выводить кнопки Yes, No, Cancel

4

Выводить кнопки Yes, No

5

Выводить кнопки Retry, Cancel

16

Выводить пиктограмму “Стоп”

32

Выводить пиктограмму “?”

48

Выводить пиктограмму “!”

64

Выводить пиктограмму информации

0

Кнопка по умолчанию - первая

256

Кнопка по умолчанию - вторая

512

Кнопка по умолчанию - третья

0

Программное ведущее диалоговое окно

4096

Системное ведущее диалоговое окно

Первая группа значений (0-5) описывает номер и тип кнопок, отображаемых в диалоговом окне; вторая группа (16, 32, 48, 64) описывает стиль пиктограммы (иконки); третья группа (0, 256, 512) определяет кнопки по умолчанию; четвертая группа (0, 4096) определяет выводимые окна сообщения (0 - окно ввода для окончания работы приложения, 4096 - окно ввода для окончания работы системы).

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

MsgBox “Удалить ?”, 52

значение аргумента 52 является суммой 48 и 4 (48 - вывод пиктограммы с восклицательным знаком, 4 - кнопки “Yes” и “No”). Функция MsgBox возвращает следующие значения:

Константа

 

 

 

 

vbOK

1

ОК

 

2

Cancel

vbAbort

3

Abort

vbRetry

4

Retry

vblgnore

5

Ignore

vbYes

6

Yes

vbNo

7

No

Эти значения можно использовать для обработки результата работы пользователя с окном MsgBox.

Процедура mnuHelpAbout_Click (обработка события щелчка мыши по пункту меню “О программе”) обеспечивает вывод окна сообщения.

Процедура Form_Unload (Cancel As Integer) (обработка события щелчка мыши по кнопке “Закрыть” раскрывающегося стандартного меню формы) обеспечивает выход с подтверждением. Закрытие формы не обеспечивает корректного завершения приложения. В этом случае присвоение Cancel =1 предотвращает закрытие формы и обеспечивает корректный выход через процедуру mnuFileExit_Click.

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

<<<назад | Часть1 | Часть2 | Часть3 | Часть4 | Часть5 | вперёд>>>
 
Webmaster Cheeeck (c) 2001
Hosted by uCoz