- •Знакомство с visual basic
- •Практическая работа
- •Свойства, методы и события
- •Практическая работа
- •Переменные
- •Объявление переменных
- •Область видимости переменной
- •Ф орма 1
- •Форма 2
- •Математические операторы
- •Операторы сравнения
- •Логические операторы
- •Практическая работа
- •Обработка ошибок
- •Практическая работа
- •Самостоятельно
- •Условия и циклы
- •Самостоятельно
- •Использование списков и полей со списками
- •Удаление строк из списка
- •Ф орма Код (самостоятельно)
- •Массивы
- •Объявления массивов Объявление массива как одной переменной:
- •Заполнение массива
- •Динамический массив
- •Самостоятельно
- •Работа со строками
- •Определение длины строки
- •Усечение строк
- •Самостоятельно
- •Использование одной кнопки для включения / выключения
- •Конкатенация разнотипных строк
- •Коды символов в формате ascii
- •Окно ввода данных
- •Функция Val() и Slr()
- •Вывод информации на форму
- •Функция Format
- •Работа с графическим окном
- •Элемент управления RichTextBox
- •Объект Printer
- •Дополнительные возможности работы со строками Оператор Like и неопределенный поиск
- •Прочие строковые функции
- •Работа с файлами Чтение текстового файла (1 способ)
- •Запись текста в текстовый файл: Форма
- •Чтение текстового файла (2 способ)
- •Самостоятельно
- •Код (самостоятельно)
- •Простой файловый менеджер
- •'FileCopy не допускает файловые шаблоны, поэтому копирование по полному пути
- •Изменение регистра символов строки
- •Код (проанализировать программу, при необходимости – набрать и проверить работу)
- •Создание меню
- •Клавиши доступа и быстрые клавиши
- •Создание всплывающих меню
- •Разделение строк меню
- •Вырезание, копирование и вставка с помощью объекта Clipboard (буфера обмена)
- •Выделение текста в поле текста
- •Самостоятельно
- •Код (сначала попытайтесь самостоятельно написать код)
- •Использование элемента управления
- •Управляющие элементы Image List и Tool Bar
- •Создание дистрибутивного пакета – подготовка приложения к распространению
- •Время и таймеры
- •Использование одной кнопки для включения /выключения
- •Вычисление разницы между датами
- •Вычисление возраста
- •Код (проанализировать, при необходимости набрать проверить работу)
- •Самостоятельно
- •Код (сначала самостоятельно)
- •Подпрограммы и функции Использование процедур в Visual Basic
- •Самостоятельно
- •Определение точки входа в программу (запуск проекта с нужной формы)
- •Выбор подпрограммы Main() точкой входа проекта
- •' Оповещаем пользователя
- •Тестирование и отладка программ
- •Точка остановки программы
- •Наблюдение за несколькими переменными
- •Полосы прокрутки
- •Самостоятельно
- •Дополнительные компоненты active X
- •Создание дистрибутивного пакета – подготовка приложения к распространению
- •Время и таймеры
- •Использование одной кнопки для включения /выключения
- •Вычисление разницы между датами
- •Вычисление возраста
- •Код (проанализировать, при необходимости набрать проверить работу)
- •Самостоятельно
- •Форма Код (сначала самостоятельно)
- •Подпрограммы и функции Использование процедур в Visual Basic
- •Самостоятельно
- •Определение точки входа в программу (запуск проекта с нужной формы)
- •Выбор подпрограммы Main() точкой входа проекта
- •' Оповещаем пользователя
- •Понятие о базах данных
- •Терминология баз данных
- •Элемент управления данными
- •Свойства элемента управления данными
- •Методы элемента управления данными
- •Свойства набора данных
- •Методы набора записей
- •Практическая работа
- •Связывание элемента управления данными с базой данных
- •Что такое Recordset?
- •Поиск записей
- •Поиск дальше
- •Запросы
- •Компоненты языка sql
- •Самостоятельно
- •Создание отчетов с помощью crystal reports
- •Создание отчета
- •Объекты
- •Практика
- •Движение объектов
- •О связанных элементах управления Последовательность событий при загрузке формы
- •Отношения родитель/потомок между элементами управления данными
- •Практикум –
- •Создание базы данных своими руками
- •Какую технологию выбрать?
- •Элемент управления данными ado
- •Сортировка и объединение данных с помощью элемента управления Hierarchical FlexGrid
- •Проект «Школьный журнал» (пример создания и работы с базой данных)
- •Практическое задание Создать базу данных «Записная книжка»
- •Простейший графический редактор
- •При отпускании кнопки мыши
- •Dim n As Integer ‘счетчик новых записей в массиве
Выделение текста в поле текста
Как известно, выделять текст можно с помощью мыши, перетаскивая ее указатель через текст при нажатой левой клавише.
Можно выделять текст в поле текста и другим способом:
Во время разработки установите свойство текстового поля HideSelection = False.
Запишите код обработки события Form_Click() (щелчок на форме):
Text1.SelStart = 3
Text1.SelLength = 6
Запустите программу
Наберите какой-нибудь текст.
Щелкните на кнопке – у Вас выделятся 6 символов, начиная с 4.
Самостоятельно
Начнем создавать простой текстовый редактор.
Форма
Откройте новый проект.
В форме создайте меню: пункты Файл и Редактирование как указано. В пунктах Открыть и Сохранить пока не пишите код – это сделаем позже. В написании кода для пунктов Черный на белом и Белый на черном вы можете вместо номера цвета (который в свойствах TextBox) написать константы vbWhite или vbBlack.
Поместите в форму поле текста TextBox.
Свойства TextBox: MultiLine = True, HideSelection = False, ScrollBars = 2-Vertical
Заполните форму кнопками (которые ниже строки меню)
Чтобы вместо надписи поместить на кнопку рисунок – надо свойство кнопки Style изменить на 1-Graphical. После этого надо стереть название в свойстве Caption и выбрать необходимый рисунок. Рисунки находятся:
С:\Program Files\DevStudio\VB\Graphics\Bitmaps\Offctlbr\Small\Color\…имена файлов….
Для каждой кнопки с рисунком напишите необходимый код.
Запустите программу и проверьте ее работу.
Код (сначала попытайтесь самостоятельно написать код)
Private Sub CmdCopy_Click()
Clipboard.SetText Text1.SelText
End Sub
Private Sub CmdCut_Click()
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
Private Sub CmdNew_Click()
Text1.Text = ""
End Sub
Private Sub CmdPaste_Click()
Text1.SelText = Clipboard.GetText(vbCFText)
End Sub
Private Sub itmAll_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
Private Sub itmBlack_Click()
Text1.BackColor = vbWhite
Text1.ForeColor = vbBlack
itmBlack.Checked = True
itmWhite.Checked = False
End Sub
Private Sub itmCopy_Click()
Clipboard.SetText Text1.SelText
End Sub
Private Sub itmCut_Click()
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
Private Sub itmExit_Click()
Unload Me
End Sub
Private Sub itmNew_Click()
Text1.Text = ""
End Sub
Private Sub itmPaste_Click()
Text1.SelText = Clipboard.GetText(vbCFText)
End Sub
Private Sub itmWhite_Click()
Text1.BackColor = vbBlack
Text1.ForeColor = vbWhite
itmBlack.Checked = False
itmWhite.Checked = True
End Sub
Использование элемента управления
CommonDialog
Рано или поздно придется писать программу, в которой нужно будет выбирать имена файлов, настраивать шрифты, цвета и параметры принтера. Хотя для этих операций можно написать самостоятельные окна, VB предоставляет элемент управления CommonDialog, который позволит быстро отобразить стандартные предопределенные диалоговые окна Windows.
С помощью этого элемента управления вы получаете доступ к следующим четырем диалоговым окнам:
• File (Файл). Предоставляет пользователю возможность выбрать файл для открытия или указать имя файла для сохранения в нем некоторой информации.
• Font (Шрифт). Предоставляет пользователю возможность выбрать базовый шрифт и установить все необходимые атрибуты шрифта.
• Color (Цвет). Предоставляет пользователю возможность выбрать стандартный или создать свой цвет для использования в программе.
• Print (Печать). Предоставляет пользователю возможность выбрать принтер и настроить некоторые его параметры.
Чтобы получить доступ к элементу управления CommonDialog, сначала необходимо добавить его в проект, пометив Microsoft Common Dialog Conlrol 6.0 в диалоговом окне Components. Это диалоговое окно открывается после выбора пункта Components меню Project. Как только элемент управления CommonDialog добавлен в панель ToolBox, его можно поместить в форму, щелкнув на нем и перетащив в форму точно так, как любой другой элемент управления. Элемент управления CommonDialog отображается в форме в виде пиктограммы и во время выполнения программы остается невидимым. Однако с помощью программного кода можно отображать диалоговые окна, включенные в CommonDialog.
Доступ к файлам с помощью диалогового окна File
Чтобы открыть существующий файл, используется метод ShowOpen. Сохранить – ShowSave.
CommonDialog1.ShowOpen или CommonDialog1.ShowSave
При вызове любого из этих методов появляются диалоговые окна (они похожи внешне):
Откройте проект «Редактор» (Простой текстовый редактор)
Пометите в форме элемент CommonDialog.
Под пункт меню «Файл – Открыть» поместите код: CommonDialog1.ShowOpen
Запустите проект.
До сих пор мы работали с диалоговыми окнами Файл (File), в которых отображались все файлы, находящиеся в папке. Однако в некоторых случаях необходимо работать только с файлами определенного типа, например с текстовыми файлами или файлами документов. Это также можно реализовать с помощью элемента управления CommonDialog. Типы файлов, которые будут отображаться в диалоговом окне, указываются с помощью свойства Filter (фильтр).
Настроить свойство Filter можно как во время разработки в окне свойств, так и во время выполнения программы с помощью следующего оператора присваивания:
CommonDialog.Filter= "Описание\Шаблон"
• Filter — название свойства.
• Описание — текстовое описание типа файлов, которые будут отображаться в окне. Вот некоторые примеры описаний: текстовые файлы, документы word и All Files. Символ вертикальной черты (|) должен присутствовать обязательно.
• Шаблон — это шаблон для отбора файлов. Обычно правило отбора записывается в виде звездочки, за которой следуют точка и расширение файла, соответствующее тем файлам, которые вы хотите отобразить. Фильтры, соответствующие приведенным выше описаниям, имеют вид *.txt, *.doс и *. * соответственно.
Будьте аккуратны при использовании фильтров! Не ставьте пробелы перед символом вертикальной черты или после него - вы можете не получить нужный вам список файлов.
Устанавливая значение свойства Filter с помощью оператора присваивания, необходимо заключить фильтр в двойные кавычки. Если же фильтр указывается в окне свойств, кавычки не нужны.
В свойстве Filter можно указать сразу несколько пар значений Описание|Шаблон. Каждая пара должна быть отделена от других вертикальной чертой, как показано в следующем примере:
CommonDialog1.Filter = "Текстовые файлы|*.txt|Все файлы|*.*"
Чтобы увидеть результат использования этой строки в диалоговом окне, поставьте фильтр для документов Word и на все файлы, затем запустите программу.
Чтение данных с помощью оператора Input
Для того, чтобы читать текст с диска, используются операторы Open и Line input. Синтаксис оператора Open:
Open ПутьКФайлу For РежимДоступа As УказательФайла
Если путь к файлу не указывать, то программа будет обращаться к текущему каталогу, как в нашем примере. Если указывать конкретный путь, то его надо заключать в кавычки, например:
“C:\Мои документы\Разное\FileName.txt”
Некоторые режимы доступа к файлу:
Append – добавление данных в конец существующего файла. Если файл не существует, он будет создан.
Input – открытие файла для чтения.
Output – открытие файла для записи. Если файла не существует, он будет создан.
Cтроки данных из файла считываются с помощью оператора Line input. Синтаксис оператора Line input таков:
Line Input #FileNum, Buffer
• Line input — ключевые слова оператора.
• # — символ, обозначающий указатель файла.
• FileNum — допустимый указатель одного из открытых файлов.
• Buffer — буферная строка, в которую будут помещены считанные данные.
Простые текстовые файлы сохраняются на диске построчно. Пока при вводе данных (например, в текстовое поле) не нажата клавиша <Enter>, вы продолжаете вводить одну и ту же строку. При нажатии в текстовом поле клавиши <Enter> Visual Basic добавляет в текст два символа chr(13) & chr(1O) ("возврат каретки" и "перевод строки"), чтобы обозначить конец строки. Эти символы тоже будут записаны в сохраняемый файл. Для строки, образованной из этой пары символов, в Visual Basic определена специальная константа, имя которой — vbCrLf. Оператор Line Input считывает символы из файла до тех пор, пока не встретит последовательность, означающую конец строки (vbCrLf). Обнаружив конец строки, оператор помешает все считанные символы в буферную строку, отбрасывая vbCrLf.
Для перемещения по строкам в файле удобно использовать цикл Do.. .While. Чтобы обнаружить конец файла, используется встроенная в Visual Basic функция eof (). Функции eof () в качестве аргумента нужно передавать указатель файла. Пока конец файла не достигнут, оператор Line Input в цикле Do.. .While продолжает считывать строки из файла.
Код под кнопкой Открыть и под пунктом меню Открыть:
Private Sub CmdOpen_Click()
Dim FileName As String 'переменная для имени открываемого файла
Dim FileText As String 'сюда будет складываться содержимое файла
Dim Buffer As String 'буферная переменная для временного хранения строки
Dim FileNum As Integer 'переменная для указателя файла
'устанавливаем фильтр
CommonDialog1.Filter = "Текст|*.txt|Все файлы|*.*"
CommonDialog1.ShowOpen
'Проверяем, указано ли имя файла
If CommonDialog1.FileName <> "" Then
'Если строка не пуста, открываем файл
FileName = CommonDialog1.FileName
'Получаем указатель файла и присваиваем его переменной
FileNum = FreeFile
'Открываем файл
Open FileName For Input As #FileNum
' отображаем указатель мыши в виде песочных часов
MousePointer = vbHourglass
' Перебираем строки файла
Do While Not EOF(FileNum) ' Проверяем признак конца файла
' Считываем очередную строку
Line Input #FileNum, Buffer
' Последовательно объединяем считанные строки
FileText = FileText & Buffer & vbCrLf
Loop
' Восстанавливаем изображение указателя мыши
MousePointer = vbDefault
' Закрываем файл по окончании работы с ним
Close #FileNum
' Отображаем прочитанный текст в текстовом поле
Text1.Text = FileText
'Отображаем имя файла в заголовке формы
Form1.Caption = "Простой текстовый редактор - [" & FileName & "]"
End If
End Sub
Сохранение содержимого текстового поля в файле на диске
Для того, чтобы сохранить текст на диске, используются операторы Open и Print. Например, содержимое текстового поля можно сохранить по команде: Print #FileNum, Text1.Text
Самостоятельно напишите код для кнопок сохранения текста в файле.
Код для кнопок сохранения текста в файле:
Private Sub CmdSave_Click()
Dim FileName As String 'переменная для имени сохраняемого файла
Dim FileNum As Integer 'переменная для указателя файла
'устанавливаем фильтр
CommonDialog1.Filter = "Текст|*.txt"
CommonDialog1.ShowSave
'Проверяем, указано ли имя файла для сохранения
If CommonDialog1.FileName <> "" Then
'Если строка не пуста, присваиваем имя файла переменной
FileName = CommonDialog1.FileName
'Получаем указатель файла и присваиваем его переменной
FileNum = FreeFile
'Открываем файл
Open FileName For Output As #FileNum
' отображаем указатель мыши в виде песочных часов
MousePointer = vbHourglass
' Выполняем запись
Print #FileNum, Text1.Text
' Восстанавливаем изображение указателя мыши
MousePointer = vbDefault
' Закрываем файл по окончании работы с ним
Close #FileNum
End If
End Sub
На этом мы закончили создание простейшего текстового редактора. Можете при желании самостоятельно расширить его возможности. Например, при создании нового документа спрашивать подтверждение, если предыдущий документ не был сохранен. Или при сохранении, если такое имя файла уже существует – предупреждать об этом.
Это первое созданное вами рабочее приложение Windows. Его нужно подготовить к распространению. До сих пор проект являлся набором текстовых и графических файлов, которые можно было запускать в среде разработки Visual Basic. Теперь пришло время превратить эти файлы в выполняемый модуль, независимый от среды разработки. Этот процесс называется компиляцией.
В последний раз сохраните проект. (Он называется у нас Редактор.vbp)
Пункт меню File – Make Редактор.exe
Закрыть Visual Basic.
На самом деле кнопки текстового редактора делаются не так. Для этого существует специальные элементы: