Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Использование списков






    Давайте продолжим работу с проектом, который мы создали на предыдущем занятии.

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

    Поле со списком (ComboBox) — это по сути комбинированный список, который представляет собой комбинацию двух элементов управления — самого списка со значениями и поля ввода текста (текстового поля).

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

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

    Для поля со списком важную роль играют события как поля ввода, так и списка. Основные из них - Click, используемое для выбора элемента списка, и - Change — для изменения записи в поле ввода текста.

    Поле со списком имеет почти все свойства текстового поля (TextBox) и списка (ListBox) (исключением является свойство MultiLine). Однако особо следует выделить свойство Style, определяющее внешний вид и функционирование поля со списком.

    Откройте проект. Замените текстовое поле на поле со списком.

     

    Задайте имя объекту - cboFileName, и задайте элементы списка (свойство List).

     

     


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

    Присвоим этому свойству значение " Мой файл.txt" - это будет значение по-умочанию.

    Запустим проект на выполнение. Теперь пользователь может выбрать имя для файла из списка или ввести самостоятельно. Но если щелкнуть кнопку СОХРАНИТЬ, то появится сообщение об ошибке. А все оттого, что мы не исправили код записи в файл. Имя файла берется из текстового поля, но ведь мы его заменили на список.

    Private Sub cmd1_Click()
    If Len(txtFileName.Text) Then
    If Option1.Value = True Then Open txtFileName.Text For Append As #1
    If Option2.Value = True Then Open txtFileName.Text For Output As #1
    Print #1, txtInput.Text
    Close #1
    If Check1.Value = 1 Then txtInput.Text = " "
    Else
    MsgBox " Необходимо ввести имя файла", vbExclamation, " Внимание! "
    End If
    End Sub

    Исправим этот код.

    Private Sub cmd1_Click()
    If Len(cboFileName. Text) Then
    If Option1.Value = True Then Open cboFileName. Text For Append As #1
    If Option2.Value = True Then Open cboFileName. Text For Output As #1
    Print #1, txtInput.Text
    Close #1
    If Check1.Value = 1 Then txtInput.Text = " "
    Else
    MsgBox " Необходимо ввести имя файла", vbExclamation, " Внимание! "
    End If
    End Sub

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

    Private Sub cmd1_Click()
    If Len(cboFileName.Text) Then
    cboFileName.AddItem (cboFileName.Text)
    If Option1.Value = True Then Open cboFileName.Text For Append As #1
    If Option2.Value = True Then Open cboFileName.Text For Output As #1
    Print #1, txtInput.Text
    Close #1
    If Check1.Value = 1 Then txtInput.Text = " "
    Else
    MsgBox " Необходимо ввести имя файла", vbExclamation, " Внимание! "
    End If
    End Sub

    Теперь при щелчке по кнопке ЗАПИСЬ в список добавляется новое значение. Но теперь появилась одна неприятная особенность - при записи в один и тот же файл, его имя несколько раз добавляется в список. Исправим это. Прежде чем добавить значение в список, переберем его и проверим нет ли уже такого значения. Переменную already будем использовать как флаг, который будет указывать нашли (1) или не нашли (0) такое значение в списке.

    Private Sub cmd1_Click()
    If Len(cboFileName.Text) Then
    For i = 0 To cboFileName.ListCount
    If cboFileName.List(i) = cboFileName.Text Then already = 1
    Next i
    If already = 0 Then
    cboFileName.AddItem (cboFileName.Text)
    If Option1.Value = True Then Open cboFileName.Text For Append As #1
    If Option2.Value = True Then Open cboFileName.Text For Output As #1
    Print #1, txtInput.Text
    Close #1
    If Check1.Value = 1 Then txtInput.Text = " "
    Else
    MsgBox " Необходимо ввести имя файла", vbExclamation, " Внимание! "
    End If
    End Sub

    Готово! Запустите проект и проверьте его работу.

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.