РУБРИКИ |
Програмирование на Visual Basic |
РЕКЛАМА |
|
Програмирование на Visual Basic|ExecuteSOL |Data control |Выполнение SQL | | | |запроса к базе | | | |данных | |FieldSize | |Определение числа | | | |байт в тексте или | | | |двоичных знаков | |FindFirst, |Data control |Определение | |FindLast, | |первой, последней,| |FindNext, | |следующей или | |Find | |предыдущей записи,| |Previous | |соответствующей | | | |заданному | | | |критерию. Запись | | | |делается текущей | |GetChunk | |Выделенные | | | |FieldSize число | | | |байтов или | | | |двоичных знаков | |GetData |Clipboard |Работа с буфером | |GetFormat | |обмена | |GetText | | | Продолжение табл. 2.3 |Название |Элементы |Описание действия | |метода |управления, для | | | |которых | | | |используются | | | |события | | |Hide |Form, MD1 form |Спрятать форму с | | | |экрана без ее | | | |выгрузки | |Line |Form, picture |Рисование линии | | |box. Printer |или прямоугольника| |Move |Все, кроме timer|Перемещение | | |и menu |элемента | |MoveFirst, |Data control |Переход к первой, | |Move Last, | |последней, | |MoveNext, | |следующей или | |Move | |предыдущей записи,| |Previous | |соответствующей | | | |заданному критерию| | | |Запись делается | | | |текущей | |NewPage |Printer |Переход при печати| | | |к следующей | | | |странице | |Point |Form, picture |RGB | | |box |(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 |строки при печати | | | |с текущим шрифтом | Окончание табл 2 3 |Название |Элементы |Описание действия | |метода |управления, для | | | |которых | | | |используются | | | |события | | |Update |Data control |Сохранение буфера | | | |копирования | |UpdateContro|Data control |Контроль изменения| |ls | |данных | |Update |Data control |Сохранение | |Record | |изменения данных | |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 (рис. 2.1) для объекта Form. При щелчке кнопки мыши в любом месте формы исходное положение и размер формы (заданы по умолчанию) изменяются, задается полужирный шрифт и его размер для вывода на форму начала текста. При нажатии клавиши Enter изменяются исходное положение и размер формы, задается шрифт “курсив” и его размер, которым выводится на форму продолжение текста. Запустив проект на выполнение кнопкой Run Главного меню, увидим пустую форму. Щелкнув на ней мышью, увидим изменение положения и размеров и начало текста. Нажав клавишу Enter, увидим измененную форму с окончанием текста (рис. 2.2). [pic] Рис. 2. 2.3. МЕТКА Label (Метка) - поле, заполняемое текстовой информацией, которая может изменяться только программно. Наиболее часто используемыми свойствами являются: Alignment (Выравнивание) определяет размещение названия метки. По умолчанию значение равно 0 - выравнивание по левой границе (Left Justify). Значение равно / - выравнивание по правой границе (Right Justify), 2 — выравнивание по центру (Center). [pic] Рис. 2.2 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 (Текст) также не содержится в списке свойств. Определяет вводимую или выводимую в текстовое окно строку. [pic] Из событий чаще используются: Change (Изменение) вызывается изменением свойства Text пользователем или программно. Набор каждого нового символа определяет данное событие и вызов процедуры его обработки. Click (Щелчок) или DblClick (Двойной щелчок) мышью в текстовом окне вызывает соответствующие процедуры обработки события Имя_окна_С\\с\(. или Ямя_о/сна_ОЬ1СИсР. GotFocus (Установка фокуса) и LostFocus (Уход из фокуса) определяются тем, что в Windows-приложениях в каждый момент может быть активен только один объект (объект находится в фокусе). События определяются соответственно активизацией и дезактивизацией объекта, в данном случае - активизацией или дезактивизацией текстового окна. Метод SetFocus позволяет установить курсор в выбранное текстовое окно. Синтаксис: [имя текстового окна.} SetFocus Пример программы. Разместим на форме управляющие элементы: два текстовых окна (okhoi и окно2) и метку (рис. 2.3). Свойства управляющих элементов заданы по умолчанию. Введем для первого текстового окна (Text 1) процедуры обработки событий GotFocus и LostFocus (рис. 2.4). В первой и второй процедурах первые два оператора изменяют размеры текстового окна. Третий оператор изменяет цвет фона окна (функция QBColor с параметром 0 определяет черный цвет фона окна, параметр 7 определяет белый цвет). Четвертый оператор определяет текст метки. Щелкнув мышью по кнопке Run Главного меню запустим программу. Если щелкнуть мышью по первому текстовому окну (активизировать данный управляющий элемент), то первоначальная форма на рис. 2.3 примет другой вид (рис. 2.5). Щелчок мышью по второму окну (первое окно становится не активным) изменяет вид формы (рис. 2.6). [pic] Рис. 2.4 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 может иметь только одна командная кнопка на форме. [pic] Командная кнопка реагирует на уже рассмотренные события 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 (Двойной щелчок), которые вызывают соответствующие процедуры обработки этих событий. Прямой вывод текста или графики в рамку не допускается. Пример программы. Гипотетическая форма предназначена для управления в диалоге платежами (оплата наличными или с использованием кредитных карточек, вид используемой карточки, оплата рублями). Она содержит командную кнопку для начала работы с формой, рамку, объединяющую два переключателя для выбора наличной или безналичной оплаты, рамку, выделяющую флажок для определения оплаты рублями, рамку, объединяющую два переключателя для выбора вида кредитной карточки, и имеет вид, показанный на рис. 2.7. Названия управляющих элементов (Начало, Метод платежа, Наличными, Кредитная карта, Наличными, Рубли, Кредитная карта, Мостбанк, VISA) заданы значением свойств Caption перечисленных управляющих элементов формы. Пои выводе формы на экран все элементы управления кроме командной кнопки должны быть неактивными (не реагировать на какие-либо события). Для этого свойству Enabled всех элементов управления, кроме командной кнопки, в окне свойств каждого из них присваивается значение False. [pic] Щелчок мышью по кнопке Начало должен активизировать рамку выбора метода платежа и находящиеся в ней переключатели. Щелчок мышью по переключателю Наличными должен активизировать соответствующую рамку и находящийся в ней флажок. Щелчок мышью по переключателю Кредитная карта должен активизировать соответствующую рамку и находящиеся в ней переключатели (рамка Наличными и находящийся в ней флажок должны при этом стать не активными). Такая логика работы диалоговой формы обеспечивается заданием следующего программного кода (используемые имена управляющих элементов 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 обеспечивает активизацию рамки “Кредитная карта” и расположенных в ней переключателей. Последние два оператора в каждой процедуре обеспечивают деакти-визацию соответственно рамок “Кредитная карта” и “Наличные” и элементов в них, если они ранее были активны. [pic] Рис. 2.8 [pic] Запустив данное приложение кнопкой Run Главного меню, увидим исходную форму (неактивные элементы обозначены бледно) (рис. 2.8). Щелкнув мышью по командной кнопке “Начало”, увидим форму (рис. 2.9). Щелкнув мышью по переключателю “Наличными”, активизируем рамку “Наличными” и флажок “Рубли”, который можно пометить (рис. 2.10). Щелчок мыши по переключателю “Кредитная карта” активизирует соответствующую рамку и переключатели в ней, один из которых можно активизировать (рис. 2.11). 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 строка {.индекс}. [pic] Если индекс отсутствует, то элемент (строка) автоматически ставится в конец списка. Если значение свойства 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 индекс Пример программы. Создадим новый проект и разместим на форме следующие управляющие элементы: два списка наверху и три комбинированных списка внизу, снабдив их заголовками (метки). [pic] Имена элементов задаются по умолчанию (последовательно слева направо списки: List! и List2, комбинированные списки: Combol, Combo 2, СотЬоЗ). Значения свойства Style: для комбинированного списка Combo! зададим /, для Combo2 - 0, для Combo 3 - 2. Размер окна для комбинированного списка Combol нужно определить при размещении элемента на форме. Форма имеет вид, показанный на рис. 2.12. Определим следующие процедуры обработки событий: Listl.AddItem List2.Text List2.Removeltem List2.Listlndex End Sub Процедура Form_Load обеспечивает формирование исходной информации списков. Процедуры Listl_DblClick и List2_DblClick обеспечивают при двойном щелчке мыши по одному из элементов списка перенос этого элемента в другой список. Процедуры Combo l_Key Press и Со mbo2_Key Press обеспечивают ввод набранного текста в строке ввода при нажатии клавиши Enter в соответствующий список. После запуска программы выводится исходная форма (рис. 2.13). Двойной щелчок мыши по одному из элементов верхних списков переносит этот элемент в другой список. Элементы левого комбинированного списка сразу же выведены в окно. Имеется возможность выбора элемента из списка и ввода нового элемента в список, набрав его в строке ввода. Элементы центрального комбинированного списка появляются в раскрывающемся окне после щелчка мыши по стрелке. Имеется возможность выбора элемента из списка и ввода нового элемента в список, набрав его в строке ввода. Элементы правого комбинированного списка появляются в раскрывающемся окне после щелчка мыши по стрелке. Имеется возможность только выбора элемента из фиксированного списка (рис. 2.14, 2.15). [pic] Рис. 2.13 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 (Изменение) возникает при изменении позиции движка и определяет его конечное положение. Рассмотренные ранее методы неприменимы к линейкам прокрутки. [pic] [pic] Пример программы. Откроем новую форму и разместим на ней два текстовых окна и горизонтальную линейку прокрутки (рис. 2.16). В окне Properties (Свойства) для объекта Hscrolll (имя присваивается по умолчанию) зададим следующие значения свойств: LargeChange = 10, Мах = 100, Min = 0, SmallChange = 5. [pic] Рис. 2.16 Определим процедуры обработки событий Н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.17). Перемещение движка мышью вызывает изменение значения, которые отражаются в обоих окнах (рис. 2.18). 2.12. ПРИМЕР СОЗДАНИЯ ФОРМЫ Создадим форму со следующими элементами управления (рис. 2.19): . Комбинированный список типа 1, содержащий названия фирм-производителей автомобилей. [pic] Рис.2.17 Рис. 2.18 . Метка с названием “Фирма”, поясняющая назначение комбинированного списка. . Комбинированный список типа 2, содержащий названия цветов автомобилей. . Метка с названием “Цвет”, поясняющая назначение комбинированного списка. . Метка без названия для отображения цвета, который выбирается в комбинированном списке. . Комбинированный список типа 0, содержащий названия исполнения автомобилей. . Рамка с названием “Тип кузова”, объединяющая три переключателя для выбора типа кузова: “Кабриолет”, “Седан”, “Универсал”. . Рамка с названием “Мощность”, содержащая горизонтальную линейку прокрутки для изменения мощности двигателя, две метки для отображения мощности двигателя в киловаттах и лошадиных силах, две поясняющие метки с названиями “кВт” и “Л.С.” (для горизонтальной линейки прокрутки на этапе проектирования формы задаются значения свойств: минимальное значение - 30 (min = 30), максимальное значение - 500 (max == 500), текущее значение - 75 ( value = 75), малый шаг - 1 (SmallChange = 1), большой шаг - 10 (LargeChage = 10), недоступна (enabled = false)) и командную кнопку “Зафиксировать”. . Рамка с названием “Список фирм - дистрибьюторов”, объединяющая список, флажок, метку с названием “Двухколоночный”, поясняющую назначение флажка, и четыре командных кнопки (“Очистить список”, “Удалить название “, “Добавить название”, “Зафиксировать”). [pic] . Флажки с названиями “Дизель” и “Металлик”. . Текстовое окно для описания модели с горизонтальной и вертикальной линейками прокрутки. . Метка с названием “Описание модели”. . Командная кнопка “Конец”. При проектировании формы значения свойств, определяющих основные цвета, цвета фона, вид и размер шрифтов, размеры и расположение управляющих элементов, задаются разработчиком или определяются по умолчанию. Элементы управления и процедуры обработки событий должны обеспечить следующую логику работы с формой. [pic] На этапе загрузки формы заполняются комбинированные списки “Фирма”, “Цвет”, “Исполнение”, а также простой список “Фирм продавцов”: |Список |Список |Список |Список | |“Фирмы” |“Цвет” |“Исполнение|“Фирмы-продавц| | | |” |ы” | |Мерседес |Красный|Люкс |АЗР | |Ауди |Белый |Стандарт |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 = |Caption) метки Label4 | |Str$(HScrolll. Value) |Определение названия | | |метки 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 | | | | | В результате выполнения процедуры выводится форма (рис. 2.20). На форме активны только четыре элемента: метка с названием “Фирма”, командная кнопка “Конец”, текстовое окно “Описание модели” и комбинированный список “Фирма”. При щелчке по списку он разворачивается и из него можно выбрать название фирмы-производителя. После выбора фирмы её название заносится в текстовое окно “Описание модели”, комбинированный список фирм становится неактивным вместе с меткой “Фирма”, а метка “Цвет”, комбинированный список для выбора цветов автомобиля и метка отображения выбранного цвета становятся активными. Для выполнения указанных действий процедура 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 | | |
|
© 2000 |
|