Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Техника программирования сложных окон в Visual Basic

Ручка "Шприц", желтая.
Необычная ручка в виде шприца. Состоит из пластикового корпуса с нанесением мерной шкалы. Внутри находится жидкость желтого цвета,
31 руб
Раздел: Оригинальные ручки
Горшок торфяной для цветов.
Рекомендуются для выращивания крупной рассады различных овощных и цветочных, а также для укоренения саженцев декоративных, плодовых и
7 руб
Раздел: Горшки, ящики для рассады
Фонарь садовый «Тюльпан».
Дачные фонари на солнечных батареях были сделаны с использованием технологии аккумулирования солнечной энергии. Уличные светильники для
106 руб
Раздел: Уличное освещение

Введение Mногие из Вас наверняка видели в Wi dows программах окна нестандартной формы (круглые, треугольные и т.д.) и задавали себе вопрос: как мне сделать такое окно? Если прочитать документацию по Visual Basic, то можно сделать вывод, что стандартные средства языка не предоставляют такой возможности. А что же делать, если очень хочется? Тогда следует вспомнить, что в распоряжении программиста на VB есть еще и Wi dows API, который должен нам в этом помочь. Теоретические основы Для начала давайте разберемся, как это можно сделать теоретически. Из документации Wi dows видно, что каждое окно в системе описывается множеством параметров, из которых нас с Вами интересует . Видимая область окна в системе, создаваемое Visual Basic имеет вид прямоугольника, но, в принципе, ничто не мешает изменить форму этой области. Данная область окна описывается с помощью специального объекта, который называется Regio . Регион можно представить в виде поверхности, ограниченной координатами, описываемыми угловые точки этой области. Проще говоря, можно описать область любой формы, затем создать из неё, с помощью специальных функций, регион и его к нужому нам окну. Существует несколько функций Wi dows API для создания регионов, основными из которых являются следующие: Combi eRg - Комбинирует два региона между собой Crea eEllip icRg - Создает регион в виде эллипса или окружности Crea ePolygo Rg - Создает регион в виде многоугольника Crea eRec Rg - Создает прямоугольный регион Crea eRou dRec Rg - Создает регион со скругленными краями из прямоугольной области Se Wi dowRg - Прикрепляет регион к указанному окну Я не буду приводить подробное описание этих функций, так как его можно найти в описании Wi 32 API. Кроме этих функций существуют ещё несколько функций для работы с регионами, но нам они не потребуются. Создание простых нестандартных окон Теперь, когда нам известны основные функции, для создания регионов, мы можем применить полученные знания на практике. Загрузите проект p es Rg и внимательно изучите его код. В этом проете, для изменения формы окна на овальную, используется всего три строки кода и три функции Wi 32 API. Вначале с помощью Crea eEllip icRg создается регион, затем он прикрепляется к окну и, наконец, завершающая фаза удаление, ставшего ненужным, созданного нами региона. Если же Вы не удалите ненужный Вам больше объект, то Wi dows, создав регион для Вас будет хранить его в своих и ждать дальнейших указаний по его использованию. В общем, нехорошо выделенную память, и настигнет Вас кара небесная, и затянется небо тучами синими, и будет страшный суд над всеми неверующими: Короче код выглядит так: Priva e Sub cmbCrea eOval Click()    Dim lRg As Lo g    lRg = Crea eEllip icRg (0, 0, Me.ScaleWid h / Scree . wipsPerPixelX,    Me.ScaleHeigh / Scree . wipsPerPixelY)    Se Wi dowRg Me.hw d, lRg , rue    Dele eObjec lRg E d Sub Так же всё просто, скажете Вы? Да, на первый взгляд всё очень просто, но это только кажется. Тот пример, который Вы только что видели, почти не имеет практического применения в настоящих приложениях Wi dows. Кому же нужно просто овальное окно, которое к тому же жестко задается на этапе программирования? А вот окно, которое свободно могло бы менять свою форму вполне может потребоваться.

Примеры? Пожалуйста, Wi Amp, Помощник в Microsof Office и другие программы. Как же там всё это реализовано? Давайте разберемся с таким применением регионов. Создание сложных нестандартных окон Допустим, что у нас есть рисунок в BMP формате, из которого нужно сделать форму, а белый цвет (например) на нём означает . Как же сделать форму? Очень просто, нужно взять все пиксели на рисунке, создать из их координат регион и прикрепить его к нужному нам окну. Анализировать пиксели можно Ge Pixel, эта функция по координатам возвращает его цвет. Давайте теперь напишем такой алгоритм для анализа BMP матрицы. Я думаю, что такой алгоритм Вам известен, и мы не будем его подробно разбирать, отмечу только, что анализ производится построчно и Pixel-и добавляются в регион не по одному, а группами построчно. Такой подход сильно экономит ресурсы процессора, выигрыш в производительности достигает 100%. Public Fu c io lGe Regio (pic As Pic ureBox, lBackColor As Lo g) As Lo g    Dim lRg As Lo g    Dim lSki Rg As Lo g    Dim lS ar As Lo g    Dim lX As Lo g    Dim lY As Lo g    Dim lHeigh As Lo g    Dim lWid h As Lo g    'создаем пустой регион, с которого начнем работу    lSki Rg = Crea eRec Rg (0, 0, 0, 0)    Wi h pic       'подсчитаем размеры рисунка в Pixel       lHeigh = .Heigh / Scree . wipsPerPixelY       lWid h = .Wid h / Scree . wipsPerPixelX       For lX = 0 o lHeigh - 1          lY = 0          Do While lY < lWid h             'ищем нужный Pixel             Do While lY < lWid h A d Ge Pixel(.hDC, lY, lX) = lBackColor                lY = lY 1             Loop             If lY < lWid h he                lS ar = lY             Do While lY < lWid h A d Ge Pixel(.hDC, lY, lX) lBackColor                lY = lY 1             Loop             If lY > lWid h he lY = lWid h                'нужный Pixel найден, добавим его в регион                lRg = Crea eRec Rg (lS ar , lX, lY, lX 1)                Combi eRg lSki Rg , lSki Rg , lRg , RG OR                Dele eObjec lRg             E d If          Loop       ex    E d Wi h    lGe Regio = lSki Rg E d Fu c io Итак, для проверки на практике этого алгоритма загрузите пример p es Rg Ski и внимательно изучите его код. В этом проекте нужный нам рисунок, для удобства, в файле ресурсов, кроме того проект запускается процедурой Mai , в которой и происходят все преобразования. Вначале загружается форма, затем в Pic ureBox из ресурсов загружается нужный нам рисунок, далее вызывается функция, которая создает регион и, наконец, завершающий этап - прикрепление региона к нужному нам окну. Для удобства здесь же вызывается функция, помещающая окно , чтобы оно у Вас на рабочем столе Wi dows. Кроме того, для нормальной работы программы необходимо, чтобы для Pic ureBox свойство Au oRedraw было установленно в rue, иначе ничего не получится. Sub Mai ()    Dim lRg As Lo g    Load frm es Rg Ski    frm es Rg Ski .pic.Pic ure = LoadResPic ure(101, vbResBi map)    lRg = lGe Regio (frm es Rg Ski .pic, vbWhi e)    Se Wi dowRg frm es Rg Ski .hW d, lRg , rue    Dele eObjec lRg    frm es Rg Ski .Show    Se FormPosi io frm es Rg Ski .h

W d, rue E d Sub Теперь можно запускать проект. О, знакомое лицо, скажите Вы, это же из Microsof Office. Да, похож, но не совсем, двигается, а этот нет. Что же нужно сделать, чтобы это окно динамически изменяло свою форму по рисунку, отображаемому в данный момент времени в Pic ureBox? Динамическое изменение формы окна Существуют программы в которых необходимо динамически во время работы изменять форму окна (например анимированный персонаж из Microsof Office). Все это не очень сложно реализовать, нужно в событие Pic ureBox.Cha ge добавить следующий код: lRg = lGe Regio (frm es Rg Ski .pic, vbWhi e) Se Wi dowRg frm es Rg Ski .hW d, lRg , rue Dele eObjec lRg Se FormPosi io frm es Rg Ski .hW d, rue В принципе всё готово, осталось только добавить код для изменения картинки на форме, и оживёт. В нашем примере изменять рисунок будем в imer циклически, т.е. анимация будет непрерывна, так проще. Итак, добавим на форму imer и поместим небольшой код, отвечающий за изменения рисунка в Pic ureBox. Рисунков в файле ресурсов десять штук, поэтому I должно изменяться от 101 до 110. Код изменения выглядит так: S a ic i As Lo g If i < 101 he i = 101 If i > 110 he i = 101 frmA ima eForm.pic.Pic ure = LoadResPic ure(i, vbResBi map) i = i 1 Готово, можно запускать проект, и если Вы счастливый обладатель Pe ium III или A hlo , то Вам улыбнется удача, так как будет двигаться. Но если Ваш процессор Pe ium II и ниже, то компьютер не сможет выполнять необходимые расчеты за нужное нам время, так как для плавной анимации необходимо (для нашего случая) показывать порядка 15 кадров в секунду, а точнее каждые 80 милисекунд по кадру и ещё оставлять время для других задач компьютера. Как мы видим наши алгоритмы явно не тянут для таких задач и предназначены для не требующих таких быстрых изменений формы окна, так как, например на Celero 333 один кадр формируется около 100 милисекунд. Что же делать? Оптимизация алгоритма для быстрой анимации Анализ работы алгоритма показывает, что наибольшие затраты времени приходятся на функцию Ge Pixel. Это происходит потому, что анализ картинки идет непосредственно на экране. Единственный путь увеличения быстродействия алгоритма, это перенос анализа в память компьютера и использование при этом Wi 32 API. Такие алгоритмы существуют, но это тема отдельного разговора, скажу только, что для оптимизации работы алгоритм пишется отдельно для каждой глубины цвета и при применении такой схемы быстродействие увеличивается почти в четыре раза и позволяет делать практически любую анимацию.

Еще одно полезное преимущество интеграции различных языков .NET в одном унифицированном программном решении вытекает из того простого факта, что каждый язык программирования имеет свои сильные (а также слабые) стороны. Например, некоторые языки программирования имеют превосходную встроенную поддержку сложных математических вычислений. В других лучше реализованы финансовые или логические вычисления, взаимодействие с центральными компьютерами и т.д. Когда преимущества конкретного языка программирования объединяются с преимуществами платформы .NET, выигрывают все. Конечно, вы можете разрабатывать программное обеспечение, не выходя за рамки своего любимого языка .NET. Но, изучив синтаксис одного языка .NET, вам будет очень легко освоить любой другой. Это тоже очень выгодно, особенно консультантам. Если вашей специализацией является C#, но вы оказались на узле клиента, который "привязан" к Visual Basic .NET, то сможете почти сразу разобрать соответствующий программный код (поверьте!), воспользовавшись указанным преимуществом .NET

1. Тест на языке программирования Visual Basic

2. Создание 3D-графики средствами языка программирования Visual Basic

3. Разработка программы для расчета финансовых показателей, используемых в составлении бизнес-плана на языке Visual Basic

4. Cреда разработки visual basic

5. Потоки в Visual Basic

6. Visual Basic и Системный Реестр Windows
7. Работа с текстовыми файлами в Visual Basic
8. Microsoft Visual Basic 5 0
Microsoft Visual Basic 5 0

9. Access і Visual basic for Application. Excel VBA: прийоми програмування

10. Greating 3D-Graphics on visual basic

11. Адресная книга на языка Visual Basic

12. Работа в среде Visual Basic

13. Решение экономических и бухгалтерских задач с использованием инструментария Visual Basic For Application

14. Создание теста на Visual Basic

15. Завдання з програмування на Visual Basic

16. Программирование и достижения компьютерной техники

Средство для посудомоечных машин биоразлагаемое "Synergetic", концентрированное, 5 л.
Концентрированное средство для мытья всех видов посуды от любых видов загрязнений. За счет полностью натурального состава обладает 100%
849 руб
Раздел: Для посудомоечных машин
Конструктор "Кукольный домик".
Деревянный домик для маленьких кукол от компании "Большой Слон" привлечет внимание вашей малышки и не позволит ей скучать.
1155 руб
Раздел: Для мини-кукол и мини-пупсов
Игра "Торре. Сорви башню".
Игра типа «Дженга» с разноцветными брусочками и кубиком. Мы усложнили Вашу задачу, покрасив в разные цвета брусочки ставшей уже привычной
666 руб
Раздел: Игры на ловкость

17. Вычислительная техника и программирование

18. Основные этапы развития и конструктивной эволюции техники в области самолетостроения

19. Ударение в сложных словах немецкого языка

20. Three Waves of Alvin Toffler. The Basic Points

21. История компьютера и компьютерной техники

22. Марсель Мосс. "Техники тела"
23. Художественная техника пианиста
24. Ремесло, техника и транспорт Древнего Египта

25. Выдающиеся личности в истории вычислительной техники. Августа Ада Лавлейс

26. Перспективы развития компьютерной техники

27. Вычислительная техника в управлении на примере управления международных связей ВГУЭС

28. Вычислительные системы и микропроцессорная техника

29. История вычислительной техники

30. Разработка программной и аппаратной поддержки к методическим указаниям "Программирование микроконтроллеров"

31. Периферийное устройство ПЭВМ, Характеристика этапов подготовки и решения задач на ПЭВМ в любой системе программирования. Электронная почта, особенности применения

32. Перспективы развития компьютерной техники (новейшие разработки 2005г.)

Шкатулка, 36x26x18 см (арт. 3871-RT-64).
Шкатулка очень удобна в использовании, и к тому же станет украшением вашего домашнего интерьера! Модель: 64. Оформление корпуса: ткань,
2717 руб
Раздел: Шкатулки для рукоделия
Простыня на резинке "ЭГО", 160х200 см, бежевая.
Трикотажная простыня "ЭГО" на резинке выполнена из 100% хлопка высокого качества. Натуральный, экологически чистый материал
760 руб
Раздел: Простыни, пододеяльники
Детский велосипед Jaguar трехколесный (цвет: коричневый).
Детский трехколесный велосипед колясочного типа, для малышей от 10 месяцев до 3 лет. Модель с удлиненной рамой, что позволяет подобрать
1440 руб
Раздел: Трехколесные

33. Языки и технология программирования. Начальный курс /Pascal/

34. Объектно-ориентированное программирование на С с использованием библиотеки OpenGL

35. Реализация языкового процессора оператора FOR языка BASIC

36. Программирование - интерфейс RS-232

37. Обучение начальных курсов методам программирования на языке Turbo Pascal

38. Применение методов линейного программирования в военном деле. Симплекс-метод
39. Системное программирование
40. Математическое программирование

41. Системы программирования

42. Языки программирования

43. Разработка базы данных `ДЕКАНАТ` в среде программирования "Delphi"

44. Программирование на "СИ" (ТХТ, СИ)

45. Программа сложной структуры с использованием меню

46. Курсовая работа по основам программирования. Игра "Паровоз"

47. Микропроцессорная техника. Микроконтроллер в двухпозиционном регуляторе

48. Использование макросов для программирования в MS ACCESS

Набор STABILO LeftRight для левшей.
В наборе: шариковая ручка, механический карандаш, грифели, ластик, точилка. STABILO LeftRight: • Созданы специально для обучения письму
666 руб
Раздел: Механические
Коробка подарочная "Большая медведица".
Коробка подарочная. Материал: мелованный, ламинированный, негофрированный картон плотностью 1100 г/м2. Отделка: полноцветный декоративный
302 руб
Раздел: Коробки
Настольная игра "Сумасшедший лабиринт".
Логическая, веселая и азартная игра нацелена на развитие внимания, ловкости и скорости мысли. Игроки в постоянном напряжении, передвигая
1990 руб
Раздел: Игры-ходилки с фишками

49. Обучающая программа "Графика" программированию в графическом режиме на языке turbo-pascal 7.x

50. Язык программирования Паскаль и ветвление

51. Сравнительный анализ языков программирования JavaScript и VBScript

52. Возможности системы программирования Delphi для создания пользовательского интерфейса

53. Программирование на Delphi

54. Интернет магазин - Техника для жизни
55. Учебник по программированию в среде С++ Builder
56. Учебник по технологии программирования

57. Структура и программирование ПЛИС фирмы Altera в САПР Quartus II, её применение в лабораторном стенде

58. Практика оператора (WINDOWS 95, MICROSOFT WORD 97, MATHCAD, ЯЗЫКИ ПРОГРАММИРОВАНИЯ, ЭЛЕКТРОННЫЕ КНИГИ, VISIO, Norton Utilites 3.0 for Windows 95)

59. Отчет по практическим занятиям по курсу прикладные задачи программирования на тему Windows, Microsoft Word и Microsoft Excel

60. Руководство по программированию на HTML

61. Лабораторная работа №4 по "Основам теории систем" (Послеоптимизационный анализ задач линейного программирования)

62. Лабораторная работа №2 по "Основам теории систем" (Решение задач линейного программирования симплекс-методом. Варианты разрешимости задач линейного программирования)

63. Решение оптимизационной задачи линейного программирования

64. Постановка задачи линейного программирования и двойственная задача линейного программирования.

Нож для чистки овощей "Victorinox", универсальный, двустороннее зубчатое лезвие, чёрный.
Изумительный нож для кухни. Небольшой и удобный, он идеально подходит для чистки овощей. А яркий цвет порадует глаз и не даст ножу
410 руб
Раздел: Овощечистки, рыбочистки
Говорящий планшетик "Новогодний праздник".
В этом планшетике Умка поёт, говорит и рассказывает сказки! 16 новогодних песенок («Песенка Умки», «Белые снежинки», «Снеговик», «Дед
344 руб
Раздел: Планшеты и компьютеры
Набор диких животных.
В наборе: 12 фигурок диких животных. Средний размер: 10 см. Возраст: 3 лет. Фигурки в наборе представлены в ассортименте, без возможности выбора.
461 руб
Раздел: Дикие животные

65. Техника операций при ИБС и перикардитах

66. Экозащитные техника и технологии

67. Разработка технологической схемы производства стали марки 35Г2 и определение основных технико-экономических показателей производства

68. Типология техники. Современные тенденции развития техники

69. Электроснабжение силового оборудования Дворца культуры и техники АО "АВТОВАЗ"

70. Развитие паровой техники
71. Техника и технология
72. Технико-экономическое обоснование инвестиций в строительство завода по производству кирпича керамического мощностью 30 млн штук в год. Проект повторного применения

73. Дневник прохождения производственной практики по специальности "Техник-механик"

74. Техники семейной психотерапии в концепции Девида Фримена

75. Пути преодоления сложных педагогических ситуаций в процессе семейного общения

76. Микросхемо-техника: Схема контроля дешифратора на три входа /восемь выходов/

77. Структура и программирование ПЛИС фирмы Altera в САПР Quartus II, её применение в лабораторном стенде

78. Анализ ресурсов и оценка качества ремонта сельскохозяйственной техники

79. Общество как сложная система. Сферы общественной жизни, их взаимосвязь. Важнейшие институты общества

80. Кинематика точки, сложное движение точки, движение точки вокруг неподвижной оси (Шпаргалка)

Набор карандашей чернографитных "1500", 24 штуки, заточенные, металлический пенал.
Карандаш Koh-I-Noor с обозначением "1500" — это самый известный графитный карандаш в мире. Профессиональные, высококачественные
662 руб
Раздел: Чернографитные
Настольная игра "Гонки ежиков".
Топот ножек и азартное сопение целый день не утихают на лесной полянке. В этой игре для всей семьи игроки управляют ёжиками с помощью
605 руб
Раздел: Классические игры
Набор "Леди Баг и Супер Кот" Дизайн 2, 3 предмета (в подарочной упаковке).
Набор из трех предметов (кружка, салатник, тарелка) в подарочной упаковке с изображением героини из мультсериала "Леди Баг и Супер
454 руб
Раздел: Наборы для кормления

81. Спирография: техника и обработка результатов измерения

82. Техника плавания способом кроль на груди

83. Техника бега на длинные дистанции. Судейство.

84. Методика обучения технике прыжка в высоту с разбега способом "Фосбери – флоп" детей 13-15 лет на этапе начальной спортивной специализации

85. Техника бега

86. Материальное понимание техники
87. Философия информации и сложных систем
88. Системный подход в современной науке и технике

89. Философия техники

90. Технико-экономические расчеты к проекту отделения переработки КХК (коллективного химического концентрата) в концентрат РЗЭ

91. Актив баланса: содержание, оценка статей, техника составления

92. Технико-экономический анализ МУП (по балансу)

93. Отчет о движении денежных средств, его значение в рыночной экономике, техника составления в России и международной практике

94. Основные разделы бизнес-плана, калькуляция темы и расчет цены программного продукта, технико-экономическое обоснование с расчетом экономической эффективности разработки

95. Технико-экономические расчеты плавильного отделения сталелитейного и чугунолитейного цеха

96. Крупная бытовая техника

Светильник садовый плавающий на солнечных батареях "Лилия розовая".
Декоративный солнечный садовый светильник в виде лилии, водонепроницаемый. Применяется для декорации пруда. Светодиод меняет цвет.
413 руб
Раздел: Необычные светильники
Набор детской складной мебели "Маша и Медведь. Азбука 3".
Комплект складной, подходит для кормления, игр и обучения. Поверхность столешницы ламинированная с нанесением ярких познавательных
1971 руб
Раздел: Наборы детской мебели
Вешалка для одежды напольная, раздвижная ТД-00013, 1600x430x1550 мм.
Длина: 160 см. Регулируемая высота: 90-155 см. Ширина: 43 см. Количество перекладин: 1. Максимальная нагрузка: 15 кг. Вешалка напольная
861 руб
Раздел: Вешалки напольные

97. Внешнеторговые операции: классификация, организация, техника

98. Технико-экономическое обоснование привлечения дополнительных средств на предприятиях рекреационной сферы

99. Программирование и планирование деятельности


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.