Дополнительные элементы управления

Элементы управления ToolBar, ImageList, StatusBar, SSTab

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

Для использования этого элемента управления необходимо подключить к проекту библиотеку Microsoft Common Controls 6.0. Для этого в меню Project необходимо выбрать команду Components. В открывшемся диалоговом окне найти название указанной библиотеки, установить флажок, нажать кнопку «Применить» и «ОК». При этом на стандартной панели инструментов появится девять элементов управления библиотеки. Microsoft Common Controls 6.0, один из которых ToolBar. ToolBar работает как контейнер, содержащий кнопки. Кнопки могут быть следующих видов:

PushButton - обычная кнопка;
ChekButton - кнопка-флажок, два состояния : нажато/отжато;
ButtonGroup - кнопка-переключатель, может быть нажата одна кнопка из группы;
Separator - кнопка-разделитель, для создания интервалов между кнопками;
PlaceHoder - кнопка-заменитель, для резервирования места для других типов элементов управления;
DropDown - работает как раскрывающийся список

Основный свойства панели инструментов пердставлены в таблице 3.9

Таблица 3.9.   Свойства   ToolBar
Свойство Назначение
AllowCustomize Позволяет добавлять, удалять и перемещать кнопки панели
BorderStyle Тип обрамления панели: 0 - ccNone - только кнопки, 1 - ccFixedSingle - фиксированная панель с кнопками
ButtonHeight Высота кнопки, автоматически рассчитывается высота панели
ButtonWidth Ширина кнопки
Enabled Управление доступом для действий над панелью инструментов
ShowTips Отображение подсказки для кнопок
Visible Режим видимости панели инструментов
Wrappable Режим автоматического переноса кнопок на другой ряд, если недостаточно места

Для работы с ToolBar необходимо выполнить следующие действия.

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

Рис 3.13. Пример приложения с элементами упарвления ToolBar, StatusBar, SSTab

Для каждой кнопки заполняются свойства (рис. 3.14):
Caption - название на форме, если оно есть;
Key - ключ, если необходимо, то используется в программном коде;
Value - нажата/отжата.
Вместо текста на кнопке можно разместить графическое изображение. Для этого необходимо сначала подключить объект для хранения списка графических изображений ImageList. Данный объект находится в ранее подключенной библиотеке Microsoft Common Controls 6.0, поэтому дополнительного подключения не требуется.

Рис 3.14. Заполнение свойств для ToolBar

Общие свойства находятся на вкладке General (рис. 3.15). Чтобы вставить кнопки, используется вкладка Buttons, свойство Insert Button; при этом необходимо изменять Index - номер кнопки

Рис 3.15. Заполнение свойств для ImageList

Для работы с ImageList необходимо выполнить следующие действия:

Для подключения списка изображений к панели инструментов необходимо вызвать окно свойств панели и на вкладке General выбрать в поле ImageList наименование созданного списка изображений. Если название не изменялось, то это ImageList. Далее на вкладке Buttons для каждой кнопки указывается номер изображения из списка в поле Image. На кнопке появится указанное изображение. Если в поле Caption имеется надпись на кнопке, то в новых условиях при наличии и надписи, и изображения может измениться размер кнопки.

Разместим на форме проекта элемент управления строка состояния StatusBar. Выделить объект и в панели свойств открыть диалоговое окно Custom, которое содержит те же свойства, что и Property Pages (рис. 3.16). Открыть вкладку Panels и установить свойства в соответствии с окнами. Чтобы вставить панели, используется свойство Insert Panel, при этом необходимо изменять Index - номер панели в строке состояния. Для каждой панели заполняются свойства (рис. 3.16):

Text - название на форме, если оно есть;
Key - ключ, если необходимо, то используется в программном коде;
ToolTipText - подсказка;
Style - указывается стиль выводимой информации.

Рис 3.16. Заполнение свойств для StatusBar

Пример. Для создания картотеки необходимо разместить на форму элемент управления SSTab с тремя закладками. Аналогично, как было рассмотрено выше, выделить объект и в панели свойств открыть диалоговое окно Custom, которое содержит те же свойства, что и Property Pages. Изменить названия страниц -закладок. На закладках поместить элементы управления, необходимые для работы приложения (рис. 3.13, 3.17):

Рис 3.17. Заполнение свойств для MSFlexGrid1

MSFlexGrid1 - таблица (заполнение таблицы подробно - лабораторный практикум, работа № 4);
Combo1 - комбинированный список для выбора записи из списка;
Text1 ÷ Text10 - текстовые окна для заполнения полей записи и для ввода данных;
Label1 ÷ Label11 - для оформления интерфейса.

Для организации работы приложения необходимо организовать работу головного меню, которое будет содержать следующие команды:
Файл
      Чтение из файла
      Запись в файл
      Выход
Редактировать
      Сортировать
         По возрастанию
         По убыванию
Справка
      Информация о программе

Данный проект содержит три формы: form1, form2, form3.
Программный код пользователя для организации некоторых команд меню для формы1:

      Private Sub Sap_Fl_Click()
      Dim Student As Anketa, Ns, Ls, fn As Integer
      Rem Запись в файл
      Ls = Len(Student)
      Open "C:\m_Student\Vbasic\Progi\anketa.txt" for Random As #3
      Len = Ls
      Student.Ns = Text10.Text
      Student.Fio = Text6.Text
      Student.DR = Text7.Text
      Student.Adress = Text8.Text
      Student.Kurs = Text9.Text
      fn = Val(Text10.Text)
      Put #3, fn, Student
      Close #3
      End Sub
         Private Sub Ctit_Fl_Click()
         Dim Student As Anketa, Ns, Ls, fn, i As Integer
         Dim tab1(9, 3) As String
         Rem Читать из файла
         Ls = Len(Student)
         Open "C:\m_Student\Vbasic\Progi\anketa.txt" for Random As #3 Len = Ls
         fn = Val(InputBox("Номер записи", "Чтение из файла"))
         Get #3, fn, Student
             MSFlexGrid1.Row = fn
             MSFlexGrid1.Col = 0
             MSFlexGrid1.Text = Student.Ns
             MSFlexGrid1.Col = 1
             MSFlexGrid1.Text = Student.Fio
             MSFlexGrid1.Col = 2
             MSFlexGrid1.Text = Student.DR
             MSFlexGrid1.Col = 3
             MSFlexGrid1.Text = Student.Adress
             MSFlexGrid1.Col = 4
             MSFlexGrid1.Text = Student.Kurs
             Close #3
             End Sub
      Private Sub form_Load()
      Rem Заполнение фиксированной строки таблицы
      Dim t(4) As String, с, r As Integer
             t(0) = "N"
             t(1) = "Фамилия Имя Отчество"
             t(2) = "Дата Рождения"
             t(3) = "Адрес"
             t(4) = "Курс/группа"
      MSFlexGrid1.Row =0
      for с = 0 То 4
      MSFlexGrid1.Col = с
      MSFlexGrid1.Text = t(c)
      Next
             MSFlexGrid1.ColWidth(0) = 300
             MSFlexGrid1.ColWidth(1) = 3400
             MSFlexGrid1.ColWidth(2) = 1200
             MSFlexGrid1.ColWidth(3) = 3000
             MSFlexGrid1.ColWidth(4) = 1000
      End Sub
                           Private Sub info_Click()
                           form2.Show
                           End Sub
                           Private Sub MSFlexGrid1_Click()
                           MSFlexGrid1.SetFocus
                           End Sub
             Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
             Rem Организация работы кнопок Toolbar1
             Dim Student As Anketa, Ns, Ls, fn, i As Integer
             Dim SOO As String
             Ls = Len(Student)
             Open "C:\m_Student\Vbasic\Progi\anketa.txt" for Random As #3 Len = Ls
             Select Case Button.Key
             Case Is = "k1"
             Rem Предыдущая запись

             ----------<операторы для выбора следующей записи>----------

             Case Is = "k2"
             Rem Следующая запись

             Case Is = "k3"
             Rem Удалить запись
             fn = Val(InputBox("Ввести номер удаляемой записи", "Удалить запись"))
             form3.Show

             ----------<операторы для удаления записи>----------
 

             Case Is = "k4"
             Rem Добавить запись
             ----------<операторы для добавления записи>----------
 

             End Select
             End Sub

Рис.3.18. Вид информационного окна - form2

Для Формы2
Private Sub Command1_Click()
Me.Hide
End Sub


Рис.3.19. Вид окна для - form3

Для Формы3
Private Sub Command1_Click()
Dim UD_Sap As Integer
UD_Sap = 1
Me.Hide
End Sub
Private Sub Command2_Click()
Dim UD_Sap As Integer
UD_Sap = 0
Me.Hide
End Sub

Пример создания пароля

На форме разместить два текстовых окна, две надписи и кнопку и изменить свойства элементов в соответствии с рис. 3.20.



Рис.3.20. Пример создания пароля


Программный код для разработки приложения - пароль:

Private Sub Command1_Click()
Const ps As String = "Irbis"
Dim SooB As String
    If Text2.Text = ps Then
        Text1.Locked = False
        Text1.SetFocus
        SooB = MsgBox("Пароль введен верно!!!")
        Else
        SooB = MsgBox(«Повторите ввод пароля»)
    Text2.SelStart = 0
    Text2.SelLength = Len(Text2.Text)
    End If
End Sub

После запуска приложения ввести пароль в текстовое окно 2, пароль отразится в виде последовательности одинаковых символов - символов, которые указаны пользователем при проектировании приложения в свойстве PassWordChar. Если пароль введен не верно, то на экране появляется окно типа MsgBox с сообщением, что пароль не верен.