Листинг 1

Private Sub mnuNew_Click()
	? Новый документ
	RichTextBox1.Text = ??
End Sub
Private Sub mnuOpen_Click()
	? Открыть файл
	CommonDialog1.ShowOpen
	If CommonDialog1.FileName <> ?? Then
		RichTextBox1.LoadFile (CommonDialog1.FileName)
	End If
End Sub
Private Sub mnuSave_Click()
	? Сохранить файл
	CommonDialog1.ShowSave
	If CommonDialog1.FileName <> ?? Then
		RichTextBox1.SaveFile (CommonDialog1.FileName)
	End If
End Sub
Private Sub mnuExit_Click()
	Unload Me
End Sub
Вернуться к статье

Листинг 2

Private Sub mnuPrint_Click()
	? Вывод на печать
	On Error Resume Next ? обработка ошибок
	? Установка ключей диалогового окна
	CommonDialog1.Flags = cdlPDReturnDC + _
		cdlPDNoPageNums
	CommonDialog1.CancelError = True 
	? Будет возвращаться ошибка при нажатии Cancel
	CommonDialog1.CancelError = True
	If RichTextBox1.SelLength = 0 Then 
		? вывод всего документа
		CommonDialog1.Flags = CommonDialog1.Flags + _
			cdlPDAllPages
	Else ? вывод только выделенного фрагмента
		CommonDialog1.Flags = CommonDialog1.Flags + _
			cdlPDSelection
	End If
	? обращение к диалоговому окну
	CommonDialog1.ShowPrinter 
	If Err = 0 Then ? печать
		Printer.Print ??
		RichTextBox1.SelPrint Printer.hDC
		Printer.EndDoc
	End If
End Sub
Вернуться к статье

Листинг 3

Private Sub mnuCopy_Click()
	? Команда ?Копировать?
	? помещаем выделенный текст в буфер обмена
	Clipboard.SetText RichTextBox1.SelText
End Sub
Private Sub mnuCut_Click()
	? Команда ?Вырезать?
	Call mnuCopy_Click ? копируем
	RichTextBox1.SelText = ?? ? удаляем выделенный фрагмент
End Sub
Private Sub mnuPaste_Click()
	? Команда ?Вставить?
	RichTextBox1.SelText = Clipboard.GetText
End Sub
Вернуться к статье

Листинг 4

Private Sub mnuFind_Click()
	? Запрос на поиск
	sFind = InputBox(?Что:?, ?Найти?, sFind)
	If sFind <> ?? Then ? поиск по всему тексту
		RichTextBox1.Find sFind
	End If
End Sub
Private Sub mnuNext_Click()
	? Поиск следующего вхождения контекста
	If sFind <> ?? Then ? поиск по всему тексту
		? передвигаем текущую позицию курсора
		RichTextBox1.SelStart = RichTextBox1.SelStart + _ 
			RichTextBox1.SelLength + 1
		? поиск
		RichTextBox1.Find sFind, , Len(RichTextBox1) 
	End If
End Sub
Вернуться к статье

Листинг 5

Private Sub mnuFont_Click()
	? Выбор шрифта
	CommonDialog1.Flags = cdlCFBoth + cdlCFEffects
	CommonDialog1.ShowFont
	With RichTextBox1 ? установка параметров
		.SelFontName = CommonDialog1.FontName
		.SelFontSize = CommonDialog1.FontSize
		.SelBold = CommonDialog1.FontBold
		.SelItalic = CommonDialog1.FontItalic
		.SelStrikeThru = CommonDialog1.FontStrikethru
		.SelUnderline = CommonDialog1.FontUnderline
		.SelColor = CommonDialog1.Color
	End With
End Sub
Вернуться к статье

Листинг 6

? Инициализация комбинированного окна списка
	Show
	With Combo1
		.Width = Toolbar1.Buttons(?combo1?).Width
		.Left = Toolbar1.Buttons(?combo1?).Left
		.Top = Toolbar1.Buttons(?combo1?).Top
		.AddItem ?8?
		.AddItem ?9?
		.AddItem ?10?
		.AddItem ?11?
		.AddItem ?12?
		.AddItem ?14?
		.AddItem ?16?
		.ListIndex = 0
		.ZOrder
	End With
Вернуться к статье

Листинг 7

Private Sub Toolbar1_ButtonClick(ByVal Button _
	As MSComctlLib.Button)
	Select Case Button.Key
		Case ?New?: mnuNew_Click
		Case ?Open?: mnuOpen_Click
		Case ?Save?: mnuSave_Click
		Case ?Print?: mnuPrint_Click
		Case ?Find?: mnuFind_Click
		Case ?Left?: RichTextBox1.SelAlignment = rtfLeft
		Case ?Center?: RichTextBox1.SelAlignment = rtfCenter
		Case ?Right?: RichTextBox1.SelAlignment = rtfRight
	End Select
End Sub
Вернуться к статье

Листинг 8

Private Sub RichTextBox1_SelChange()
	? Установка состояния кнопок на панели инструментов
	? в соответствии с текущими параметрами текста
	Select Case RichTextBox1.SelAlignment
		Case rtfLeft
			Toolbar1.Buttons(?Left?).Value = tbrPressed
		Case rtfCenter
			Toolbar1.Buttons(?Center?).Value = tbrPressed
		Case rtfRight
			Toolbar1.Buttons(?Right?).Value = tbrPressed
		Case Else
			Toolbar1.Buttons(?Left?).Value = tbrUnpressed
			Toolbar1.Buttons(?Center?).Value = tbrUnpressed
		Toolbar1.Buttons(?Right?).Value = tbrUnpressed
	End Select
	Combo1.Text = RichTextBox1.SelFontSize
End Sub
Вернуться к статье

410