Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic в примерах.docx
Скачиваний:
12
Добавлен:
18.08.2019
Размер:
1.1 Mб
Скачать

Выделение текста в поле текста

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

Можно выделять текст в поле текста и другим способом:

  1. Во время разработки установите свойство текстового поля HideSelection = False.

  2. Запишите код обработки события Form_Click() (щелчок на форме):

Text1.SelStart = 3

Text1.SelLength = 6

  1. Запустите программу

  2. Наберите какой-нибудь текст.

  3. Щелкните на кнопке – у Вас выделятся 6 символов, начиная с 4.

Самостоятельно

Начнем создавать простой текстовый редактор.

Форма

  1. Откройте новый проект.

  2. В форме создайте меню: пункты Файл и Редактирование как указано. В пунктах Открыть и Сохранить пока не пишите код – это сделаем позже. В написании кода для пунктов Черный на белом и Белый на черном вы можете вместо номера цвета (который в свойствах TextBox) написать константы vbWhite или vbBlack.

  3. Поместите в форму поле текста TextBox.

  4. Свойства TextBox: MultiLine = True, HideSelection = False, ScrollBars = 2-Vertical

  5. Заполните форму кнопками (которые ниже строки меню)

  6. Чтобы вместо надписи поместить на кнопку рисунок – надо свойство кнопки Style изменить на 1-Graphical. После этого надо стереть название в свойстве Caption и выбрать необходимый рисунок. Рисунки находятся:

С:\Program Files\DevStudio\VB\Graphics\Bitmaps\Offctlbr\Small\Color\…имена файлов….

  1. Для каждой кнопки с рисунком напишите необходимый код.

  2. Запустите программу и проверьте ее работу.

Код (сначала попытайтесь самостоятельно написать код)

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

При вызове любого из этих методов появляются диалоговые окна (они похожи внешне):

  1. Откройте проект «Редактор» (Простой текстовый редактор)

  2. Пометите в форме элемент CommonDialog.

  3. Под пункт меню «Файл – Открыть» поместите код: CommonDialog1.ShowOpen

  4. Запустите проект.

До сих пор мы работали с диалоговыми окнами Файл (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. Теперь пришло время превратить эти файлы в выполняемый модуль, независимый от среды разработки. Этот процесс называется компиляцией.

  1. В последний раз сохраните проект. (Он называется у нас Редактор.vbp)

  2. Пункт меню File – Make Редактор.exe

  3. Закрыть Visual Basic.

На самом деле кнопки текстового редактора делаются не так. Для этого существует специальные элементы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]