Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные свойства и методы объектов App. Примеры




If TypeOf Screen.ActiveControl Is TextBox Then

В случае, если из текста ничего не выделено, мы должны сделать недоступными строки "Вырезать", "Копировать" и "Удалить". Для этого надо ее свойству.Enabled присвоить значение False. Если ничего не выделено, значит длина выделения (свойство.SelLength) равна нулю. Это можно было бы записать приблизительно так:

  If Screen.ActiveControl.SelLength=0 Then mnuCut.Enabled = False

Однако, для краткости записи мы можем напрямую присвоить свойству.Enabled значение длины выделения.SelLength, исходя из того, что значение ноль всегда соответствует для логических типов False, а любое положительное - True. В итоге то мы получаем более короткую, но по смыслу абсолютно такую же запись. Кроме того, при этом, нам не надо каждый раз в начале процедуры восстанавливать доступность строк, так как длина строки больше нуля сама переведет.Enabled в состояние True.

mnuCut.Enabled = Screen.ActiveControl.SelLength

аналогично две другие строки
mnuCopy.Enabled = Screen.ActiveControl.SelLength
mnuDelate.Enabled = Screen.ActiveControl.SelLength

Далее мы должны запретить Вставить, если формат данных в буфере не соответствует требуемому. Здесь даже еще проще. Метод.GetFormat возвращает True, если формат соответствет проверяемому и False - если нет. Именно эти значения мы напрямую и присваиваем для свойства.Enabled строки mnuPaste.

mnuPaste.Enabled = Clipboard.GetFormat(vbCFText)

Абсолютно также мы поступаем с веткой для графических данных

ElseIf TypeOf Screen.ActiveControl Is PictureBox Then
mnuCut.Enabled = Screen.ActiveControl.Picture
mnuCopy.Enabled = Screen.ActiveControl.Picture
mnuDelate.Enabled = Screen.ActiveControl.Picture
mnuPaste.Enabled = Clipboard.GetFormat(vbCFDIB)
End If
End Sub

 

 


 

В Visual Basic 6.0 объект App является глобальным объектом, используемым для задания или извлечения сведений о приложении. Прямой эквивалент для App в Visual Basic 2008 отсутствует. Однако большинство свойств, методов и событий могут быть сопоставлены с эквивалентными членами.NET Framework.

Концептуальные различия

Свойства сведений о версии

Свойства Version Information объекта App в Visual Basic 2008 заменены на атрибуты Assembly. Свойства Version Information задаются в диалоговом окне Свойства проекта. Атрибуты Assembly задаются в диалоговом окне Сведения о сборке, которое можно открыть, нажав кнопку Сведения о приложении на вкладке ПриложениеКонструктора проектов.Примечание.

Свойства Version Information хранятся в файле проекта (с расширением VBP), который может быть отредактирован с помощью текстового редактора, такого как "Блокнот". Атрибуты Assembly хранятся в файле AssemblyInfo.vb и могут редактироваться с помощью Редактора кода.

 

Свойство описания файла

Объект Visual Basic 6.0 App имеет как свойство FileDescription, так и свойство Title. Свойство FileDescription определяет текст описания в Проводнике Windows.

В Visual Basic 2008 атрибут FileDescription отсутствует. Вместо него используется атрибут Title, определяющий текст описания, отображаемый в Проводнике Windows.

Свойство HelpFile

Свойство HelpFile в Visual Basic 6.0 определяет файл справки на уровне приложения.

В Visual Basic 2008 файлы справки задаются на уровне формы с помощью компонента HelpProvider. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

Свойства версии

В Visual Basic 6.0 свойства Major, Minor и Revision использовались для возвращения номера версии приложения, состоящего из трех частей.

В Visual Basic 2008 сведения о версии также включают свойство Build, а номер версии, состоящий из четырех частей, может быть получен полностью с помощью одного свойства Version. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

Свойство Title

Свойство Title объекта App в Visual Basic 6.0 может изменяться программным способом. Таким образом задается имя, которое будет отображаться в Диспетчере задач Windows.

В Visual Basic 2008 атрибут Title доступен только для чтения. Свойство Text главной формы приложения определяет имя, отображаемое в Диспетчере задач. Свойство Text можно установить программным путем, однако при этом также будет изменяться текст в заголовке окна формы.

Свойство TaskVisible

В Visual Basic 6.0 свойство TaskVisible объекта App определяет, должно ли отображаться приложение в списке задач Windows (Windows 9x) или на вкладке "Приложения" Диспетчера задач (Windows 2000 и более поздние версии). Это свойство обычно применяется для того, чтобы пользователь не закрыл приложение, предназначенное для запуска в качестве фоновой задачи. В большинстве случаев свойство TaskVisible используется в приложениях без пользовательского интерфейса.

 

В Visual Basic 2008 нет свойства, эквивалентного свойству TaskVisible, однако можно создать службу Windows или консольное приложение, не отображаемое в списке задач.

Свойство PrevInstance

Свойство PrevInstance в Visual Basic 6.0 используется для определения того, запущен ли экземпляр приложения. Обычно обращение к свойству PrevInstance происходит при запуске приложения, который прерывается, если свойство возвращает значение true.

Прямой эквивалент свойства PrevInstance в Visual Basic 2008 отсутствует. Разрешение или запрет на запуск нескольких экземпляров приложения определяется свойством Множественные экземпляры на вкладке ПриложениеКонструктора проектов. Во время выполнения событие NextInstanceStarted возникает при попытке пользователем запустить еще один экземпляр приложения. В обработчик этого события можно добавить код для активации первого экземпляра приложения.

Дополнительные различия

В Visual Basic 6.0 имеется ряд свойств объекта App, относящихся к компонентам ActiveX, OLE-автоматизации и другим технологиям, являющимся на данный момент устаревшими и не поддерживаемыми в Visual Basic 2008. Они указаны в таблице "Эквиваленты свойств объекта App", приведенной далее в этом разделе.

Изменения кода для объекта App

Следующие примеры кода иллюстрируют различия приемов кодирования между Visual Basic 6.0 и Visual Basic 2008 для некоторых стандартных случаев использования объекта App.

Изменения кода для отображения номера версии приложения

В следующем примере демонстрируется извлечение номера версии приложения и его отображение в метке:

' Visual Basic 6.0

Label1.Caption = "Version: " & App.Major & "." & App.Minor & "." _

& App.Revision

Язык Visual Basic

' Visual Basic

Label1.Text = My.Application.Info.Version.ToString()

Изменения кода для определения пути к приложению

 

В следующем примере кода демонстрируется способ отображения файла изображения, хранящегося в папке приложения, путем извлечения пути к исполняемому файлу приложения:

' Visual Basic 6.0

Picture1.Picture = LoadPicture(App.Path & "\Logo.jpg")

Язык Visual Basic

' Visual Basic

PictureBox1.Image = System.Drawing.Bitmap.FromFile(_

My.Application.Info.DirectoryPath & "\Logo.jpg")

Изменения кода для предотвращения запуска второго экземпляра приложения

 

В следующем примере демонстрируется реализация приложения, допускающего только один экземпляр:

' Visual Basic 6.0

Private Sub Form_Load()

If App.PrevInstance = True Then

MsgBox("The application is already running!")

End If

End Sub

Язык Visual Basic

' Visual Basic

' Assumes that the Make Single Instance Application checkbox in the

' Project Designer has been checked.

 

Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _

ByVal e As Microsoft.VisualBasic.ApplicationServices. _

StartupNextInstanceEventArgs) Handles Me.StartupNextInstance

MsgBox("The application is already running!")

End Sub

В следующей таблице приведен список всех свойств и методов объекта App Visual Basic 6.0, а также их эквивалентов для Visual Basic 2008:

Visual Basic 6.0

Эквивалент Visual Basic 2008

Comments - Свойство My.Application.Info.Description

 

CompanyName - Свойство My.Application.Info.CompanyName

 

EXEName - Свойство My.Application.Info.AssemblyName

 

FileDescription - Свойство My.Application.Info.Title

 

HelpFile - Новая реализация. Используйте компонент HelpProvider. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

 

HInstance - GetHINSTANCE

 

LegalCopyright - Свойство My.Application.Info.Copyright

 

LegalTrademarks - Свойство My.Application.Info.Trademark

 

LogEvent method - Метод WriteEntry (My.Application.Log и My.Log)

 

LogMode, LogPath - Новая реализация. Дополнительные сведения см. в разделе Запись сведений в журнал из приложения.

 

Major - Свойство My.Application.Info.Version

Примечание.

Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

 

 

Minor - Свойство My.Application.Info.Version

Примечание.

Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

 

 

NonModalAllowed - Новая реализация. Это свойство только для чтения, относящееся к DLL-файлам ActiveX. Среда CLR автоматически управляет таким поведением.

 
 


OleRequestPendingMsgText

OleRequestPendingMsgTitle

OleRequestPendingTimeout

OleServerBusyMsgText

OleServerBusyMsgTitle

OleServerBusyRaiseError

OleServerBusyTimeout

-Эквивалента нет. Эти свойства относятся к OLE-автоматизации, которая не поддерживается в Visual Basic 2008.

Path - Свойство My.Application.Info.DirectoryPath

 

PrevInstance - IsSingleInstance

Примечание.

Свойство IsSingleInstance является свойством Protected. Оно может быть установлено только на этапе разработки в Конструкторе проектов путем установки или снятия флажка Множественные экземпляры.

 

 

ProductName - Свойство My.Application.Info.ProductName

 

RetainedProject - Новая реализация. Visual Basic 2008 не может сохранять проект в памяти.

 

Revision - Свойство My.Application.Info.Version

Примечание.

Формат номера версии в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе Нумерация версий для пользователей Visual Basic 6.0.

 

 

StartLogging method - Новая реализация. Дополнительные сведения см. в разделе Запись сведений в журнал из приложения.

 

StartMode - Эквивалента нет. Данное свойство относится к созданию компонентов ActiveX, не поддерживаемому в Visual Basic 2008.

 

TaskVisible

Новая реализация. Чтобы создать приложение, не отображаемое в Диспетчере задач, необходимо создать проект Служба Windows или Консольное приложение.

 

ThreadID

Новая реализация. Это свойство возвращало идентификатор исполняемого потока. В Visual Basic 2008 потоковая модель имеет значительные отличия.

 

Title

Свойство My.Application.Info.Title

 

UnattendedApp

Новая реализация. Для автоматически запускаемых приложений в Visual Basic 2008 следует создать проект Консольного приложения.

 

Замечания по обновлению

 

При обновлении приложения с версии Visual Basic 6.0 обновляются только свойства Major и Minor; свойствам Revision и Build в Visual Basic 2008 присваиваются новые значения.

18.Редактор меню Menu Editor. Оконные приложения.Основные свойства объекта Menu. Примеры.

Редактор меню Menu Editor

Для проектирования меню всех видов используется редактор меню Menu Editor (Редактор меню) среды проектирования IDE (рис. 7.8). Редактор меню вызывается одним из следующих способов:

  • командой Menu Editor (Редактор меню) меню Tools (Инструменты);
  • нажатием кнопки Menu Editor на стандартной панели инструментов;
  • нажатием комбинации клавиш <Ctrl>+<E>.

Редактор создает меню для активного в данный момент окна, то есть, если активно MDI-OKHO, проектируется меню для него, если активна дочерняя форма, проектируется меню для дочерней формы. На рис. 7.8 показан редактор меню родительского окна, созданного автоматически мастером приложения Application Wizard.

Редактор меню состоит из двух групп: элементов управления свойствами и элементов конструирования структуры меню. Управлять основными свойствами меню, о которых было сказано выше, можно с помощью следующих элементов редактора меню:

  • поле Caption (Заголовок) — наименование пункта меню, то есть текст, появляющийся в меню;
  • поле Name (Имя) — имя меню. Используется для идентификации объекта при написании программных кодов;
  • раскрывающийся список Shortcut (Оперативная клавиша) — назначает комбинацию клавиш для быстрого вызова команды меню;
  • поле HelpContextID (Идентификатор справки) — ссылка на тему в справочной системе;
  • флажок Enabled (Доступно) — доступ к пункту меню;
  • флажок Visible (Видимость) — определяет, будет ли виден на экране элемент меню;
  • флажок WindowList (Список окон) — определяет наличие списка открытых окон.

· Контекстное меню

· Для приложения любого типа можно использовать удобное средство быстрого доступа к функциям — контекстное меню. Контекстное меню связано с некоторым действием (обычно это щелчок правой кнопки мыши на объекте) и вызывается в любом месте приложения. В исходном состоянии контекстное меню невидимо и визуализируется рядом с указателем мыши после вызова. Контекстным такое меню называется потому, что оно появляется рядом с выбранным объектом, и его состав зависит от содержания (контекста) этого объекта. После выбора команды из контекстного меню оно исчезает.

· Проектируется контекстное меню как один из пунктов верхнего уровня строки меню. Поскольку меню должно быть скрыто и вызываться определенным действием, свойство visible проектируемого пункта меню необходимо установить в значение False.

· Для визуализации контекстного меню на экране необходимо использовать метод popUpMenu формы. Например, для вызова меню File (Файл) при нажатии правой кнопки мыши достаточно написать такую условную конструкцию для события MouseUp формы:

· If Button = vbRightButton

· Then Form1.PopUpMenu mnuFile

· End If

В этом примере при выполнении в форме события MouseUp (Нажатие на кнопку мыши) проверяется, какая кнопка нажата. В данном случае, при помощи внутренней константы Visual Basic 6 vbRightButton (Правая кнопка) проверяется нажатие на правую кнопку мыши и запускается метод PopUpMenu. В качестве параметра задается имя требуемого контекстного меню.

Оконные приложения

Существуют три варианта пользовательских интерфейсов оконных приложений: многодокументный (Multiple-Document Interface, MDI), однодокумент-ный (Single-Document Interface, SDI) и интерфейс Windows Explorer.

SDI-приложение, например Notepad.exe, имеет только одно окно. Для MDI-приложения, например Microsoft Word, характерно наличие нескольких окон, подчиненных одному родительскому. Такие языки разработки, как Visual Basic 5.0, позволяют быстро и просто создавать SDI- и MDI-приложения.

Выбирая тип интерфейса, руководствуйтесь назначением приложения. Если оно предназначено для обработки страховых претензий, лучше выбрать тип MDI, так как пользователю наверняка потребуется работать одновременно с несколькими претензиями (например, чтобы сравнить их). С другой стороны, для календаря вполне достаточно интерфейса SDI: пользователь вряд ли одновременно откроет два одинаковых календаря.




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 761; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.066 сек.