|
Создание собственных диалоговых оконVisual Basic позволяет создавать собственные диалоговые окна. Например, необходимо составить процедуру, которая вставляет введенный пользователем однострочный текст с заданным углом наклона и высотой. В редакторе Visual Basic выбираем: Insert → UserForm. Появляется новый пустой экземпляр модуля формы. С помощью плавающей панели ToolBox рисуем на форме 3 текстовые поля (TextBox) в которые пользователь будет вводить значения, три метки (Label) – комментарии, два счетчика (SpinButton) и две кнопки управления (CommandButton) для выполнения программы или ее отмены. В диалоговом окне Propertis меняем имя (Name) формы на frmText, надпись (Caption) на «Однострочный текст». В том же окне для трех меток в поле Caption запишем: первая метка – «Высота текста», вторая метка – «Разворот текста», третья метка – «Текст». Для трех текстовых полей меняем имена (Name) на: txtHeight, txtAngle, txtText. Для двух кнопок управления меняем имена (Name) на: cmbOk и cmdCancel. Свойство Caption выставим как «Выполнить» и «Отмена». Входим в окно написания программного кода и в поле General запишем следующий код:
Пример 16. `код для кнопки CmbOK. Форма скрывается. Идет запрос на то чтобы пользователь указал мышью, то место экрана, где будет расположен текст.
Privat Sub cmbOK_Click() Dim Text1 As AcadText Dim Coord As Variant Me.Hide Coord = ThisDrawing.Utility.GetPoint(, «Введите точку:») Set Text1 = ThisDrawing.ModelSpace.AddText(Me.txtText, Coord, Me.txtHeight) Text1.Rotate Cootd, (Me.txtAngle * 3,14) / 180 End Sub
`код для кнопки CmbCancel. Форма скрывается и выгружается из памяти.
Private Sub cmdCancel_Click() Me.Hide Unload Me End Sub
`код для счетчика SpinButton2 при нажатии пользователем которого `происходит автоматическое уменьшение значения поля txtAngle.
Private Sub SpinButton1_SpinDown() Dim rot As Double Rot = Val(txtAngle.Text) – 1 If(rot > 359) Tnen Rot = 0 ElseIf(rot < 0) Then Rot = 0 End If txtAngle.Text = CStr(rot) End Sub
`код для счетчика SpinButton2 при нажатии пользователем которого `происходит автоматическое увеличение значения поля txtAngle.
Private Sub SpinButton1_SpinUp() Dim rot As Double Rot = Val(txtAngle.Text) + 1 If(rot > 359) Tnen Rot = 0 ElseIf(rot < 0) Then Rot = 0 End If txtAngle.Text = CStr(rot) End Sub
`код для счетчика SpinButton1 при нажатии пользователем, которого `происходит автоматическое значение поля txtHeight.
Private Sub SpinButton2_SpinDown() Dim Height As Double Height = Val(txtAngle.Text) – 1 If Height < 1 Tnen Height = 1 txt Height.Text = CStr(Height) End Sub
`код для счетчика SpinButton1при нажатии пользователем, которого `происходит автоматическое увеличение значения поля txtHeight.
Private Sub SpinButton2_SpinГз() Dim Height As Double Height = Val(txtAngle.Text) + 1 txt Height.Text = CStr(Height) End Sub
Создание кнопок панели инструментов с закрепленными за ними процедурами VBA После запуска процедуры Create_ToolBars к последней загруженной группе меню будет добавлена панель инструментов «Line» с двумя кнопками, при нажатии на которые будет запускаться макрос «Line1» и «Line2» (смотри пример 5 и 6).
Пример 17. Public Sub Create_ToolBars() Dim objMenuGrp As AcadMenuGroup Dim objTbarCol As AcadToolbars Dim objTbar As AcadToolbar Dim objItem As AcadToolbarItem Dim blnExist As Boolean’ Dim strMacro1 As String Dim strMacro2 As String strMacro1 = “_-vbarun Line1” strMacro2 =”_-vbarun Line2” set objMenuGrp = ThisDrawing.Application.MenuGroups(0) set objTbarCol = objMenuGrp.Toolbars For Each objTbar In objTbarCol If objTbar.Name = “Line1” Or objTbar.Name = “Line2” Then blnExist = True end If next objTbar If Not blnExist Then Set objTbar = objTbarCol.Add(“Line”) Set objItem = objTbar.AddToolbarButton(“”, “Line1”,_ “MsgBox, strMacro1) Set objItem = objTbar.AddToolbarButton(“”, “Line2”_ “MsgBox, strMacro2) objTbar.Visible = True objTbar.Dock acToolbarDockTop End If End Sub
Sub Line1() ….. End Sub Sub Line2() ….. End Sub
Процедуры Line1 и Line2 можно взять из примеров 5 и 6. Кроме того, если в начале этих процедур перед ключевым словом Sub поставить ключевое слово Public то есть эти процедуры станут видимы процедурой Create_ToolBars из любого модуля данного проекта.
Добавление нового меню Эта процедура добавляет к основным меню AutoCAD выпадающее меню «Линии», в котором два пункта: «Прямая» и «Ломаная».
Пример 18. Public Sub AddVBAMenu2() Dim objMenuGroup As AcadMenuGroup Dim objVBAMenu As AcadPopupMenu Dim objVBAIDE As AcadPopupMenuItem Dim objItem As AcadToolbarItem Dim objLine As AcadPopupMenuItem Dim strMacro1 As String Dim strMacro2 As String strMacro1 = “_-vbarun Line1” strMacro2 =”_-vbarun Line2” Set objMenuGroup = Application.MenuGroups.Item(0) Set objVBAMenu= objMenuGrp.Menus.Add(«Линии») Set objLine = objVBAMenu.AddMenuItem(objVBAMenu.Count + 1,_ «Прямая», strMacro1) Set objLine = objVBAMenu.AddMenuItem(objVBAMenu.Count + 1,_ «Ломаная», strMacro2) objVBAMenu.InsertInMenuBar(ThisDrawing.Application.MenuBar.Count) `objMenuGroup.Save (acMenuFileCompiled)
End Sub
Если активизировать строку “`objMenuGroup.Save (acMenuFileCompiled)” то данная процедура запишет это меню в текстовый файл, туда где находятся другие пункты главного меню.
ЛИТЕРАТУРА. 1. Основы геоинформатики: В 2 кн. Кн.1.Учебное пособие для студентов вузов/Е. Г. Капралов, А. В. Кошкарев, В. С. Тикунов и др.; Под ред. В. С. Тикунова.- М.: Издательский центр «Академия», 2004.-352с., с цв. ил.:ил. 2. Основы геоинформатики: В 2 кн. Кн.2.Учебное пособие для студентов вузов/Е. Г. Капралов, А. В. Кошкарев, В. С. Тикунов и др.; Под ред. В. С. Тикунова.- М.: Издательский центр «Академия», 2004.-480с., с цв. ил.:ил. 3. Цветков В. Я Геоинформационные системы и тхнологии. М.: Финансы и статистика, 1998.- 288с.: ил. 4. Шайтура С. В. Геоинформационные системы и методы их создания.- Калуга: Издательство Н. Бочкаревой, 1998 г.- 252с.: ил. 5. Эллен Финкельштейн.AutoCAD 2004. Библия пользователя.: Пер. с англ. – М.:Издательский дом «Вильямс»,2004.- 1184с.:ил.-Парал. тит. англ. 6. Visual Basic 6.0. Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0: Пер. с англ. – СПб: БХВ – Петербург, 2003 – 992 с:ил. 7. Браун С. Visual Basic 6.0. Учебный курс.- СПб.:Питер, 2005 – 574с.:ил. 8. Кузьменко В.Г. VBA 2003. Visual Basic for Application. М.: ООО, «Бином-Пресс», 2004,432с.:ил.
Литература 1. /Варламов А.А.Земельный кадастр [Текст]. В 7 т т. 6. Географические и земельно-информационные системы: Учебник для студентов землеустроительных специальностей вузов/Варламов А.А., Гальченко С.А.. М.: Колос, 2005,-400c.:ил.; Библиогр:с 394-395.-Предм. указ.:с.396-397.- 3000 экз.-ISBN 5-9532-0144-3(T.6). 2. / Колесниченко О.В Аппаратные средства РС [Текст] / Колесниченко О.В., Шишигин И.В. – 5-е изд. –СПб, БХВ -Петербург, 2004. - 1152c:.ил..; Предм. каз.:1143-1152 – 5000 экз. – ISBN 5- 94157- 257-3. 3. Макарова Н.В. Информатика [Текст].. Учебник для студентов вузов/ Макарова Н..В.[и др.] Под ред. Н.В. Макаровой – 4-е переработанное издание.М.: Финансы и статистика, 2005 – 768с.: ил.-Предм. указ.:с.748-758.- 10000 экз.-ISBN 5-279-02202-0. 4. Основы геоинформатики [Текст]. В 2 кн. Кн. 1. Учеб.е пособие для студентов вузов / Е.Г. Капралов, А.В. Кошкарев, В.С. Тикунов и др. Под ред. В.С. Тикунова. – М.: Издательский центр «Академия», 2004 -352с.,[16]с.цв.ил.:ил. – Библиогр.:336-346.-5100 экз-. ISBN 5-7695-1443-4. 5. Основы геоинформатики [Текст]. В 2 кн. Кн. 2. Учебно.е пособие для студентов вузов / Е.Г. Капралов, А.В. Кошкарев, В.С. Тикунов и др. Под ред. В.С. Тикунова. – М.: Издательский центр «Академия», 2004 -480с.,[8]с.цв.ил.:ил – Библиогр.:469-478.-5100 экз-. ISBN 5-7695-1444-2 6. Дейт К. Дж. Введение в системы баз данных[Текст]. Седьмое издание. Пер. с англ./. Дейт К. Дж – М.: СПб, Киев, издательский дом «Вильямс», 2005. -1072c. – Предм.указ.:1064-1071-5000экз-. ISBN 5-8459-0138-3. 7. Шекхар Шаши. Основы пространственных баз данных [Текст]. Пер. с англ /Шекхар Шаши, Чаупа Санжей - М.: Кудиц-образ, 2004-336с Библиогр. с.310-317.. Предм. указ:.с..322-325-3000 экз.- ISBN 5-13-017480-7 8. Цветков В. Я..Геоинформационные системы и технологии[Текст] / Цветков В. Я.- М.: Финансы и статистика, 1998 -288 с.:ил.- Библиогр: с.266-268.. -5000 экз- ISBN 5-279-01812-0 9. Питер Джексон. Введение в экспертные системы [Текст] Пер. с англ / Питер Джексон.- М.: СПб. Киев. Издательский центр «Вильямс», 2004-336с. Библиогр:с.597-616.. Предм. указ.:с..617-622-5000 экз.- ISBN 5-8459-0150-2 . 10. Леонтьев В.П. Новейшая энциклопедия персонального компьютера[Текст] / Леонтьев В.П..- М.: «ОЛМА-ПРЕСС»,2003-957c:ил. -20000 экз.- ISBN 5-224-04035-3 ..11.Картография. Геоинформационные системы[Текст] /Под ред Берлянта А. М. и Тикунова В. С..- М.:Картгеоцентр-Геодезиздат,1994-350 с. Библиогр.: с.346-348..- 5000 экз.- ISBN 5-8459-0123-2
Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|