Рассмотрим способы
использования MDI формы в
проекте программы.
Примечание: При использовании в программе
текстового поля Rich TextBox
учтите, что, скорее всего программа хорошо пойдёт в
XP Professional, в
Vista - не пойдёт (в других
версиях XP, не знаю).
-
Добавление в
проект MDI формы,
доработка и примеры её использования.
-
При помощи
мастера приложений Application
Wizard создать MDI
форму, с последующей доработкой.
-
Создание
текстового редактора. Как я дорабатывал проект
(коротко).
Добавление в
проект MDI формы, доработка и
примеры её использования.
-
Запустить Visual Basic и
создать новый стандартный проект (New – Standart
EXE).
-
Добавить новую MDI форму
(Project – Add MDI Form - New - MDI Form – ОТКРЫТЬ).
-
При этом вы получаете форму
без меню и подменю, без панели инструментов, и без
готовых программных кодов. Все это вам придется
создавать самим.
-
Чтобы создать и
редактировать меню и подменю, нажмите комбинацию
клавиш Ctrl E (лат) -
заполняйте поля Caption
(надписи пункта меню), Name
(имя пункта меню). Для добавления пункта меню
используйте кнопку Insert,
для удаления используйте кнопку
Delete, для создания подменю используйте
кнопку «стрелка вправо».
-
Если хотите сделать панель
инструментов, то:
Project - Components - установить флажок против
Microsoft Common Dialog Control 6.0 - активизировать
форму - дважды щелкнуть по элементу Ms CommonDialog
левой кнопкой мыши.
-
Потом я добавлял в проект
формы, в каждый проект устанавливал
Image, в который копировал
текст и рисунки из Word, и
составлял программу, которая закрывала одну форму и
открывала другую форму, или один
Image в форме менял на другой
Image в этой же форме. Для
большого текста в форме использовал текстовое поле
Rich TextBox или обычное текстовое поле
TextBox (чтобы его добавить в проект
текстовое поле Rich TextBox нужно: Project -
Components - установить флажок против Microsoft Rich
TextBox Control 6.0). Для открытия
rtf файла в это текстовое
поле использовал диалоговое окно открытия файла (об
этом ниже).Учтите
что Rich TextBox скорее всего в
Vista не пойдёт.
-
Свойства форм:
BorderStyle = 0 None; MDIChild = True.
8.
Для смены формы
использовал программный код, например, следующий:
Private
Sub MnuBIOS_Click()
ActiveForm.Visible =
False
FormBios.Visible = True
End Sub
ВВЕРХ
При помощи
мастера приложений Application Wizard
создать MDI форму, с
последующей доработкой.
При этом автоматически
создаются меню и подменю, и панель инструментов, и
программные модули. Можете сохранить, как шаблон и
использовать в других проектах, или использовать только
программные коды.
Примечание: при
сохранении формы как шаблон и при её дальнейшем
использовании учтите следующее (об этом я в учебниках не
встречал): Форма, которую хотите сохранить как шаблон,
не должна иметь распространенное имя (Form1 и т.д.), при
добавлении такого шаблона в проект, в котором уже есть
форма с таким именем, машина начнет ругаться и не
добавит форму. Чтобы избежать этого дайте оригинальное
имя форме (например, Template
и т.д). Я здесь говорю, ИМЕНИ ФОРМЫ, которая задается в
свойстве Name, а не о ИМЕНИ ФАЙЛА, которая задается при
сохранении формы. После добавления такой формы,
поменяйте ее имя и сохраните.
Процесс создания
MDI (многооконный интерфейс) и SDI
(однооконный интерфейс)
аналогичны, только: во втором окне нужно выбрать
MDI и будут некоторые
изменения в программных кодах.
Запуск Application
Wizard.
1.
В
меню
ФАЙЛ
выбрать
New Project.
2.
В
открывшемся
диалоговом
окне
New Project дважды
щелкнуть
на
значке
VB Application Wizard.
Примечание: обычно при
запуске Visual Basic, окно
New
Project,
появляется сразу. Тогда выполняете пункт 2.
Работа
Application Wizard.
После
запуска
VB
Application Wizard, на экране
друг за другом будут появляться 8 диалоговых окон, в
которых вам нужно произвести настройки будущего проекта.
1. В первом окне мастера
расположен раскрывающийся список "From
what profile do you want to load your setting?
(Из какого файла настройки загрузить установки)".
Если вы запустили
VB
Application Wizard
впервые, то такого файла, скорее всего у вас нет, или
если вы сами не хотите использовать файл настройки,
тогда нажмите кнопку Next.
Если хотите использовать файл
настройки, например, файл настройки, который вы
сохранили при создании раннего проекта при помощи
VB
Application Wizard,
нажмите кнопку с тремя точками - выберите файл настройки
- нажмите Next.
2. Во втором окне
мастера, щелкнув по кружочку, нужно выбрать стиль
интерфейса проекта: многодокументный (MDI)
интерфейс, однодокументный (SDI)
интерфейс, или стиль проводника.
3. В третьем окне
создаем строку меню, ставя, галочки в левое и
правое окно редактора меню.
Можете включить больше
пунктов меню. Их потом можно отредактировать или
удалить. Только при удалении (или при изменении) пункта
меню, нужно удалить (или изменить) и процедурный код,
касающийся этого пункта меню.
Чтобы изменить панель главного
меню в готовом проекте, необходимо вызвать РЕДАКТОР
МЕНЮ.
Вызов РЕДАКТОРА МЕНЮ
- Открыть ваш проект, созданный при помощи мастера
VB Application Wizard -
Активизировать главную Форму (если не переименовали, то
это frmMain) - Нажать
Ctrl + E.
4.
В четвертом окне мастера
открывается Мастер Панели
Инструментов. Какие инструменты находятся в правом
окне этого мастера, они и будут расположены в
вашем проекте, ниже поля МЕНЮ.
Чтобы редактировать Панель
Инструментов, готового проекта:
1. Активизируйте главную
форму, содержащую панель инструментов.
2. По Панели Инструментов
правый щелчок - выбрать Properties.
3. Нажать кнопку
Buttons. Можете убирать лишние
инструменты. Можете перевести текст подсказки, заменив
английские на русские в поле
ToolTipText.
5.
В пятом окне мастера
открывается окно позволяющее
присоединить к вашему проекту специальный файл ресурсов,
в котором хранятся настройки вашего приложения: таблицы
шрифтов, таблицы строковых переменных, используемые
значки и т. д. Далее - нажать
Next.
6.
В шестом окне мастера
можно включить в приложение
возможность прямого выхода в
Internet.
Далее - нажать
Next.
7.
В седьмом окне мастера
можно включить в проект
стандартные шаблоны.
Splash
screen at application start up - диалоговое окно приглашение, появляющееся при запуске
программы.
Login
dialog to accept an ID and Password - диалоговое окно ввода имени пользователя и пароля.
Option
dialog for custom settings - диалоговое окно режимов работы программы.
About Box
- форма, содержащая информацию о программе, версии и
авторе.
При нажатии кнопки
Form Templates, можно
добавить ещё шаблоны Форм.
Dialog
- диалоговое окно с кнопкой ОК и
Cancel.
ODBS Log
In - диалоговое окно для соединения с
удаленными базами данных.
Tip of
the Day - окно СОВЕТ.
Web
Browser - окно браузера для работы в
Internet.
Эти шаблоны можно добавить и
после прекращения работы мастера
Application Wizard: открыть меню
PROJECT - выбрать
Add Form.
8.
В восьмом окне мастер
предлагает спроектировать
формы для работы с базами данных. ( Это вам
нужно? Сами подумайте.)
9.
В девятом окне мастера
можно сохранить все
спроектированные файлы настроек будущей программы, нажав
на кнопку с тремя точками и написав имя файла.
Я
обычно сохраняю их, потом можно использовать при
создании следующего проекта с помощью МАСТЕРА
Application Wizard. (При
запуске МАСТЕР Application Wizard
в первом окне как раз запрашивает такой файл).
1. Пока не нажали Finish,
можете пойти назад (Back), и
изменить настройки.
2. Для окончания работы
мастера нажмите Finish.
3. У вас будет
работоспособная программа, с составленными программными
кодами.
4. Теперь в проекте нужно,
сначала сохранить все Формы, Модули, и сам проект.
5. У вас, скорее всего не все
кнопки будут работать. К ним мастер записал пустые
процедуры, но не записал код.
6. Теперь важный этап:
доработать проект самим.
ВВЕРХ
Создание
текстового редактора. Как я дорабатывал проект
(коротко).
Как я редактировал
МЕНЮ.
Программные коды
текстового редактора.
Пример
текстового редактора (ехе
72кб). Скачать
(редактор+help "как
создать такой редактор) RAR
166кб) .
Данный текстовый процессор
является программой с многодокументным (MDI)
интерфейсом, созданной при помощи мастера приложений
Application Wizard, с
последующей доработкой.
О создании
SDI и MDI интерфейса
хорошо написано в книге№3 (Глава7). Хотя мастер создает
многие программные блоки, но их нужно доработать, а для
многих инструментов в панели инструментов, программу
нужно написать самим.
У вас в главной Форме (frmMain)
появится Форма Документ (имя -
frmDocument), в которую программа поместила
текстовое поле Rich TextBox
(имя - rtfText).
Примечание:
При использовании в программе
текстового поля Rich TextBox
учтите, что, скорее всего программа хорошо пойдёт в
XP Professional, в
Vista - не пойдёт (в других
версиях XP, не знаю).
Настройте свойство текстового
поля Rich TextBox (имя -
rtfText).
Я произвел, такие настройки.
Свойтво
Locked = False
Свойство
MultiLine = True
Свойство
AutoVerbMenu = True -
это включает контекстное меню, которая появляется
при нажатии правой кнопки мыши.
Можно использовать и обычное
текстовое поле TextBox, но у
меня возникли трудности при организации сохранения
документа, созданного при помощи данной программы.
Как я
редактировал МЕНЮ.
Для изменения атрибутов шрифта,
можно вызвать на форму стандартное окно "Атрибуты
шрифта", написав например такую программу:
Private Sub
mnuFont_Click()
dlgCommonDialog.Flags = cdlCFBoth + cdlCFEffects
dlgCommonDialog.ShowFont
Далее программа присвоения
атрибутам текста, выделенной части, значения, выбранные
в диалоговом окне
dlgCommonDialog.
Смотри программный код Формы -
frmMain.
End Sub
Для изменения цвета заливки,
можно вызвать на форму стандартное окно "Цветовая
палитра", написав например такую программу:
Private Sub
mnuColor_Click()
dlgCommonDialog.ShowColor
Далее программа присвоения
цвету заливки текстового поля rtfText,
значения выбранного в диалоговом окне
dlgCommonDialog.
Смотри программный код Формы -
frmMain.
End Sub
Здесь
dlgCommonDialog имя элемента
управления Common Dialog, для
создания диалоговых окон. При создании
SDI и MDI
документа при помощи Аpplication
Wizard, этот элемент управления устанавливается
автоматически. Если его нет, то можно установить на
форму, следующим образом: Project
- Components - установить
флажок против Microsoft Common Dialog
Control 6.0.
Далее я
редактировал ПАНЕЛЬ ИНСТРУМЕНТОВ,
редактировал ФОРМЫ, редактировал программные коды форм.
Ниже я
приведу программные коды текстового редактора.
Главная Форма "Текстовый
редактор MDI - имя
frmMain
Текстовое поле
Rich TextBox - имя
rtfText
Элемент управления
Common Dialog - имя
dlgCommonDialog
Форма Документ - имя
frmDocument
Активный документ - имя
ActiveForm
Текстовое поле активного
документа - имя ActiveForm.rtfText
Программный код Главной
Формы "Текстовый редактор MDI
- имя frmMain.
Dim
a As String
Private Sub
MDIForm_Load()
Me.Left =
GetSetting(App.Title, "Settings", "MainLeft", 1000)
Me.Top =
GetSetting(App.Title, "Settings", "MainTop", 1000)
Me.Width =
GetSetting(App.Title, "Settings", "MainWidth", 6500)
Me.Height =
GetSetting(App.Title, "Settings", "MainHeight", 6500)
LoadNewDoc
End Sub
Private Sub
LoadNewDoc()
Static
lDocumentCount As Long
Dim frmD As
frmDocument
lDocumentCount = lDocumentCount + 1
Set frmD =
New frmDocument
frmD.Caption
= "Document " & lDocumentCount
frmD.Show
End Sub
Private Sub
MDIForm_Unload(Cancel As Integer)
If
Me.WindowState <> vbMinimized Then
SaveSetting App.Title, "Settings", "MainLeft", Me.Left
SaveSetting App.Title, "Settings", "MainTop", Me.Top
SaveSetting App.Title, "Settings", "MainWidth", Me.Width
SaveSetting App.Title, "Settings", "MainHeight",
Me.Height
End If
End Sub
Программный блок меню ВЫХОД,
с запросом на сохранение файла и с сохранением его.
Примечание: я не догадался создать такой же блок при
деактивации формы, как это сделано в
Word (желательно добавить).
Private Sub
mnuExit_Click()
Dim sFile
As String, a As Byte
'Запрос на сохранение
a =
MsgBox("Сохранить изменения в документе?", 36, "Выход")
If
a = 6 Then
'Сохранение
документа
If
ActiveForm Is Nothing Then Exit Sub
With
dlgCommonDialog
.DialogTitle
= "Save As"
.CancelError
= False
.Filter
= "All Files (*.*)|*.*"
.ShowSave
If
Len(.FileName) = 0 Then
Exit
Sub
End
If
sFile =
.FileName
End With
'Сохранение файла
ActiveForm.Caption = sFile: ActiveForm.rtfText.SaveFile
sFile
'Выход
Unload Me
Else
'Выход
Unload Me
End If
End Sub
Программный блок меню Файл
- Печать
Private Sub
mnuFilePrint_Click()
On Error
Resume Next
If
ActiveForm Is Nothing Then Exit Sub
With
dlgCommonDialog
.DialogTitle
= "Print"
.CancelError
= True
.Flags =
cdlPDReturnDC + cdlPDNoPageNums
If
ActiveForm.rtfText.SelLength = 0 Then
.Flags = .Flags + cdlPDAllPages
Else
.Flags = .Flags + cdlPDSelection
End
If
.ShowPrinter
If
Err <> MSComDlg.cdlCancel Then
ActiveForm.rtfText.SelPrint .hDC
End If
End With
End Sub
Программный блок меню Файл
- Сохранить как
Private Sub
mnuFileSaveAs_Click()
Dim sFile
As String
If
ActiveForm Is Nothing Then Exit Sub
With
dlgCommonDialog
.DialogTitle
= "Save As"
.CancelError
= False
.Filter
= "All Files (*.*)|*.*"
.ShowSave
If
Len(.FileName) = 0 Then
Exit
Sub
End
If
sFile =
.FileName
End With
'Сохранение файла
ActiveForm.Caption = sFile: ActiveForm.rtfText.SaveFile
sFile
End Sub
Программный блок меню Файл -
Открыть
Private Sub
mnuFileOpen_Click()
Dim sFile As
String
If
ActiveForm Is Nothing Then LoadNewDoc
With
dlgCommonDialog
.DialogTitle
= "Open"
.CancelError
= False
.Filter
= "All Files (*.*)|*.*"
'далее я добавил
dlgCommonDialog.Flags
= cdlOFNNoReadOnlyReturn -
В случае сохранения изменений в файл, открытый ТОЛЬКО
ДЛЯ ЧТЕНИЯ, при сохранении выдается предупреждение о
необходимости сохранения файла под другим именем (это
просто примечание).
.Flags = cdlOFNNoReadOnlyReturn
.ShowOpen
If
Len(.FileName) = 0 Then
Exit
Sub
End If
sFile =
.FileName
End With
'Сохранение
ActiveForm.rtfText.LoadFile sFile
ActiveForm.Caption = sFile
End Sub
Программный блок меню Файл
- Создать
Private Sub
mnuFileNew_Click()
LoadNewDoc
End Sub
'Программный блок выбора
атрибутов шрифта, с помощью окна диалога с
пользователем.
Private Sub
mnuFont_Click()
dlgCommonDialog.Flags = cdlCFBoth + cdlCFEffects
dlgCommonDialog.ShowFont
ActiveForm.rtfText.SelBold = dlgCommonDialog.FontBold
ActiveForm.rtfText.SelItalic =
dlgCommonDialog.FontItalic
ActiveForm.rtfText.SelUnderline =
dlgCommonDialog.FontUnderline
ActiveForm.rtfText.SelStrikeThru =
dlgCommonDialog.FontStrikethru
ActiveForm.rtfText.SelFontName =
dlgCommonDialog.FontName
ActiveForm.rtfText.SelFontSize =
dlgCommonDialog.FontSize
ActiveForm.rtfText.SelColor = dlgCommonDialog.Color
End Sub
'Программный блок выбора
цвета заливки фона, с помощью окна диалога с
пользователем.
Private Sub
mnuBackColor_Click()
dlgCommonDialog.ShowColor
ActiveForm.rtfText.BackColor = dlgCommonDialog.Color
End Sub
Программный блок Панели
Инструментов
Private Sub
tbToolBar_ButtonClick(ByVal Button As MSComCtlLib.Button)
On Error
Resume Next
Select
Case Button.Key
Case
"New"
LoadNewDoc
Case
"Open"
mnuFileOpen_Click
Case
"Save"
mnuFileSaveAs_Click
Case
"Print"
mnuFilePrint_Click
Case
"Cut"
On
Error Resume Next
Clipboard.SetText ActiveForm.rtfText.SelRTF
ActiveForm.rtfText.SelText = vbNullString
Case
"Copy"
On
Error Resume Next
Clipboard.SetText ActiveForm.rtfText.SelRTF
Case
"Paste"
On
Error Resume Next
ActiveForm.rtfText.SelRTF = Clipboard.GetText
Case
"Bold"
ActiveForm.rtfText.SelBold = Not
ActiveForm.rtfText.SelBold
Button.Value = IIf(ActiveForm.rtfText.SelBold,
tbrPressed, tbrUnpressed)
Case
"Italic"
ActiveForm.rtfText.SelItalic = Not
ActiveForm.rtfText.SelItalic
Button.Value = IIf(ActiveForm.rtfText.SelItalic,
tbrPressed, tbrUnpressed)
Case
"Underline"
ActiveForm.rtfText.SelUnderline = Not
ActiveForm.rtfText.SelUnderline
Button.Value = IIf(ActiveForm.rtfText.SelUnderline,
tbrPressed, tbrUnpressed)
Case
"Align Left"
ActiveForm.rtfText.SelAlignment = rtfLeft
Case
"Center"
ActiveForm.rtfText.SelAlignment = rtfCenter
Case
"Align Right"
ActiveForm.rtfText.SelAlignment = rtfRight
End Select
End Sub
Программный код формы
Документ - frmDocument. Здесь
я ничего не менял.
Программный код
Module1
Public
fMainForm As frmMain
Sub Main()
Set
fMainForm = New frmMain
fMainForm.Show
End Sub
Примечание: теперь любой
из этих программных блоков можете использовать в своих
проектах.
Пример
текстового редактора (ехе
72кб). Скачать
(редактор+help "как
создать такой редактор) RAR
166кб) .
ВВЕРХ |