- •1)Структурные особенности Visual Basic. Подпрограммы. Пример.
- •2. Диалоговые окна MsgBox и InputBox. Примеры.
- •3. Четыре принципа объектно-ориентированного программирования. Их реализация в Visual Basic.
- •4. Классы. Интерфейс классов. Создание динамических библиотек на основе классов в Visual Basic. Регистрация библиотек.
- •5. Способы объявления объектных переменных в Visual Basic.
- •6. Раннее и позднее связывание с объектом. Примеры.
- •7. Способы объявления событий классов. Примеры.
- •8. Создание элемента управления ActiveX в Visual Basic. Отображаемые и пользовательские свойств и методы ActiveX-компонент. Передача события приложению–контейнеру. Регистрация компонент.
- •9. Пример динамического способа формирования объектов на форме vb.
- •10)Пример работы с коллекцией объектов, свойствами и методами объектов.
- •11. Работа с отладчиком Visual Basic. Окна Watch, Immediate.
- •12. Оператор On Error. Методы объектов Debug. Условная компиляция. Примеры
- •13. Свойства и методы объектов Debug, Err. Примеры.
- •Объявление переменных
- •Математические операции
- •Строковые операции
- •Оптимизация приложений
- •Оптимизация скорости работы приложения
- •Оптимизация размера приложения
- •Оптимизация размера графики приложения
- •15. Основные свойства и методы объектов Screen. Примеры
- •Свойство ActiveControl
- •16. Основные свойства и методы объектов Clipboard. Примеры.
- •17. Основные свойства и методы объектов App. Примеры
- •18.Редактор меню Menu Editor. Оконные приложения.Основные свойства объекта Menu. Примеры.
- •Отображение контекстных меню
- •Изменения кода для отображения контекстных меню
- •19.Основные объекты (FileSystemObject, File, Drive, Folder и TextStream.), их свойства и методы библиотеки Scripting.FileSystemObject
- •20. Основные свойства, методы и события объекта UserControl.
- •26. История развития объектных моделей.
- •27. Компонентные приложения. Особенности компонент.
- •28. Интеграция приложений средством Automation.
- •29. Объектная модель ms Word. Свойства и методы объекта Application модели ms Word. Пример.
- •30. Примеры процедур на определение списка всех панелей инструментов и тем главного меню ms Word.
- •32. Свойства и методы объектов Options, Dialogs, Selection и Range объектной модели ms Word.
- •33. Объекты, свойства и методы семейства CommandBars
- •34. Объекты и семейства объекта vbe
- •Объект CodeModule .Представляет программу, определенную для таких компонентов проекта как форма, класс или документ. Дополнительные сведения
- •Объект CommandBarEvents
- •Семейство CommandBars
- •Объект vbComponent
- •Семейство vbComponents
- •Объект CodePane
- •Семейство CodePanes
- •Объект Events
- •Семейство LinkedWindows
- •Объект Property
- •Семейство Properties
- •Объект Reference
- •Семейство References
- •Объект ReferencesEvents
- •Объект vbe
- •Объект vbProject
- •Семейство vbProjects
- •Объект Window
- •Семейство Windows
- •Редактор Visual Basic
- •Библиотека объектов Office 2000 и Object Browser
- •37. Объектная модель ms Excel. Свойства и методы объекта Application.
- •38. Объектная модель ms Excel. Свойства, методы, события объекта WorkBook.
- •39. Объектная модель ms Excel. Свойства, методы, события объекта WorkSheet
- •40. Методы класса WorkSheetFunction объектной модели ms Excel. Пример на вычисление выражения.
- •41. Пример использования объекта SpreadSheet в проектах vb.
- •42. Функции работы с матрицами окна vba Excel. Пример решения системы линейных уравнений.
- •43. Свойства объекта Range объектной модели ms Excel.
- •44. Методы объекта Range объектной модели ms Excel. Примеры.
- •45. Пример сортировки слов в строке с использованием объектной модели ms Excel.
- •46. Пример вычисления корня нелинейного уравнения с использованием объектной модели ms Excel.
- •47. Свойства и методы объекта Chart объектной модели ms Excel. Пример.
- •Терминальные свойства объекта Chart
- •Методы объекта Chart
- •События объекта Chart
- •Построение обработчиков событий
- •48. Пример отображения на форме vb графика функции с использованием объектной модели ms Excel. Рассмотреть способ передачи графика через диск и через буфер обмена.
- •49. Методы SolverOk и SolverAdd библиотеки Solver.Xla.
- •50. Методы SolverOptions, SolverSolve и SolverDelete, SolverSave, SolverLoad библиотеки Solver.Xla.
- •52. Пример динамического способа формирования объектов на форме vba Excel.
- •51. Пример решения системы нелинейных уравнений с использованием объектной модели ms Excel.
- •53. Объектная модель (объекты и коллекции) ms Access.
- •54. Свойства и методы объекта Application объектной модели ms Access.
- •55. Интерфейсы объектов данных и интерфейсы прикладного уровня программирования.
- •56. Объектная модель dao рабочей области ms Jet. Объекты и семейства. Пример открытия бд Access.
- •57. Объектная модель dao рабочей области odbcDirect.
- •59.Ручной и программный способ установления связи с источником данных.
- •62.ActiveX-компонент WebBrowser и объект InternetExplorer для работы в www из проектов Visual Basic.
- •86.Особенности работы с логическим инструментом. Пример отображения в окне прямоугольника заданного размера, толщины и цвета.
- •87.Работа со строками в Windows. Изменение цвета и фона строки текста.
- •89.Пример работы с базовыми шрифтами.
- •95.Пример отображения базовых геометрических фигур, использующих api-функции.
- •96.Создание и заполнение произвольных областей. Пример.
89.Пример работы с базовыми шрифтами.
Если Вам необходимо изменить шрифт на один из семи базовых (предопределенных) шрифтов, то используют функции GetStockObjectиSelectObject. Пример88. Продемонстрировать работу с базовыми шрифтами. DimMyDCAsLong, S AsString, y AsIntegerDimFntAsLong, OldFntAsLong, FntName(10 To16)AsStringSubPrintFont(ByValf AsInteger)Fnt= GetStockObject(f)OldFnt= SelectObject(MyDC, Fnt)S = FntName(f)CallTextOut(MyDC, 10, y, S, Len(S))у= y + 20S = "ABCDEFGabcdeg0123456789АБВГДЕЖабвгдеж"
CallTextOut(MyDC, 10, y, S, Len(S))у= y + 20CallSelectObject(MyDC, OldFnt)EndSub PrivateSubCommand1_Click()у= 20'Начальное значение ординаты MyDC= GetDC(hWnd)ForK% = 10 To16IF K Mod2 = 1 ThenR= 1ElseR = 2EndIFCall
SetBkMode(MyDC, R)'Режим отображения прямоугольника
CallSetBkColor(MyDC, &H50FFF1 * K)
Цвет прямоугольника CallPrintFont(K)NextCallReleaseDC(hWnd, MyDC)EndSubPrivateSubForm_Load()Caption="Пример использования базовых шрифтов"BackColor= &HFFFFFFFntName(10) = "Oem_Fixed_Font"FntName(11) = "Ansi_Fixed_Font"FntName(12) = "Ansi_Var_Font"FntName(13) = "System_Font"FntName(14) = "Device_Default_Font"FntName(15) = "Default_Pallete"FntName(16) = "System_Fixed_Font"EndSub
90.Создание логического шрифта функциями CreateFont, CreateFontIndirect.
Создать собственный логический шрифт, доступный системе, на основе контурного шрифта можно с помощью функций CreateFontиCreateFontIndirect. Обе они возвращают дескриптор шрифта, который следует связать с контекстом функцией SelectObject, а после вывода текстовой информации удалить его из памяти функцией DeleteObject. Функция CreateFont имеет 14 параметров, а функция CreateFontIndirect-один параметр типа LOGFONT с теми же 14-ю полями данных.TypeLOGFONT
lfHeightAsLong' Высота шрифта
lfWidthAsLong'Средняя ширина строчной буквы lfEscapementAsLong' Наклон строки или символа lfOrientationAsLong'Наклон символа lfWeightAsLong'Жирность шрифта lfItalicAsByte'Признак курсива
lfUnderlineAsByte'Признак подчеркивания lfStrikeOutAsByte'Признак перечеркивания lfCharSetAsByte'Набор символов lfOutPrecisionAsByte' Точность отображения lfClipPrecisionAsByte'Отсечение lfQualityAsByte'Качество прорисовки lfPitchAndFamilyAsByte'Семейство шрифта lfFaceName(1 To32) AsByte'Имя шрифта EndType Назначение полей(параметров) структуры следующее. lf Height—высота символов. Значение, большее0 (до16384), указывает на высоту шрифта в пикселях. Если же это значение равно0, то используется умалчиваемое значение. lfWidth—ширина символов. Для пропорциональных
шрифтов означает среднюю ширину строчных букв. Если параметр равен 0, ширина выбирается пропорционально высоте символа. lfEscapement—угол наклона базовой линии символов или строк к горизонтальной оси в десятых долях градуса. Положительный угол означает поворот базовой линии против часовой стрелки. lfOrientation—этот параметр зарезервирован. lfWeight-коэффициент, указывающий на жирность шрифта: FW_THIN =100 'Очень тонкий шрифт
FW_EXTRALIGHT = 200 'Очень светлый шрифт FW_LIGHT =300 'Светлый шрифт
FW_NORMAL = 400 'Нормальный шрифт FW_MEDIUM = 500 'Утолщенный шрифт FW_SEMIBOLD = 600 'Полужирный шрифт
FW_BOLD=700 'Жирный шрифт
FW_EXTRABOLD = 800 ' Усиленный шрифт FW_BLACK = 900 'Тяжелый шрифт
lfItalic-определяет наклонность символов, когда равно 1.
I/Underline-определяет подчеркнутость символов, когда равно1.
lfStrikeOut—определяет перечеркнутость, когда равно1.lfCharSet-определяет набор символов: ANSI_CharSet=0(Windows-кодировка, поддерживает кириллицу); Symbol_CharSet=2 иShiftJis_Char-Set=128 содержат греческий алфавит, спец символы и различные пиктограммы, не поддерживающие кириллицу.
lfOutPrecision—задает точность представления символов на физическом устройстве. Рекомендуемые значения: Out_Character_precis= 2,
Out_Default_precis= 0, Out_Device_precis= 5, Out_Outline_precis= 8, Out_Raster_precis= 6, Out_String_precis= 1, Out_Stroke_precis= 3, Out_TT_only_precis= 7, Out_TT_precis= 4.lfQuality-определяет качество прорисовки шрифта и может иметь одно из значений: Default_Quality=0,Draft_Quality=1,Proof_Quality=2 (поумолчанию). lfFaceName-задает имя шрифта. Например, «CourierNewСуг».lfPitchAndFamily—выбор семейства шрифта. Рекомендуемые значения: Default_Pitch=0 (по умолчанию), Fixed_Pitch=1(моноширинный), Variable_Pitch=2 (пропорциональный).Обычно в комплект русифицированных версий Windows входит более 30 контурных шрифтов(TrueType
шрифтов), поддерживающих кириллицу. Среди них основными в работе с документами являются три шрифта: CourierNewCyr, ArialCyr, TimesNewRomanCyr. Все контурные шрифты имеют по 4 начертания: обычный, наклонный, жирный, жирный наклонный. Шрифт ArialCyr-это пропорциональный шрифт без украшений, используемый в основном для заголовков, оглавлений документов. CourierNew-это моноширный шрифт, похожий на шрифт канцелярской пишущей машинки, используемый в оформлении таблиц. TimesNewRomanCyr-изящный в начертании шрифт, используемый при оформлении документов.
91.Создание логической кисти функциями CreateSolidBrush, CreateBrushIndirect, CreatePatternBrush, CreateHatchBrush.
Для создания логической кисти используются перечисленные ниже функции, причем каждая из них создает дескриптор на кисть, которую необходимо после использования уничтожить функцией DeleteObject.
1. CreateBrushIndirect(lpLogBrushAsLOGBRUSH)-создает произвольную кисть. Аргумент lpLogBrush—это структура данных типа LOGBRUSH:TypeLOGBRUSHlbStyleAsLong'Стиль кисти lbColorAsLong' Цвет
lbHatchAsLong' Способ штриховки(орнамент) EndType
Стиль кисти lbStyle может иметь одно из следующих значений констант :
BS_SOLID=0 –сплошная кисть;
BS_NULL=1 –пустая кисть;
BS_HATCHED=2-штрихующая кисть;
BS_PATTERN=3 –кисть использует растровое изображение для заполнения фона;
BS_DIBPATTERN =5 –кисть использует аппаратно-независимый образец фона.
Если lbStyle=BS_SOLID, то значение поля штриховки lbHatch игнорируется. ЕслиlbStyle=BS_PATTERN, то поле lbHatch должно содержать дескриптор растрового изображения.
2. CreateHatchBrush(ByValnIndexAsLong, ByValcrColorAsLong) —создает штрихующую кисть. Например, создадим кисть с цветным орнаментом и заполнимим прямоугольник :Brush=CreateHatchBrush(hs_Cross, RGB(50,50,50)) OldBrush=SelectObject(MyDc, Brush)
CallRectangle(MyDc,50,50,500,400)'Рисуем прямоугольник
CallSelectObject(MyDc,OldBrush)CallDeleteObject(Brush)
3.CreateSolidBrush(ByValcrColorAsLong) –создает сплошную без орнамента кисть.
4.CreatePatternBrush(ByValhBitmapAsLong) –создает кисть, заполняющую область узором растрового изображения.
92.Пример работы с базовыми и штрихующими кистями.
Продемонстрировать работу с базовыми и штрихующими кистями.
PrivateSubCommand1_Click()
DimMyDCAsLong, OldBrushAsLong, BrushAsLongMyDC= Form1.hdcFori%= 0 To5CallSelectObject(MyDC, GetStockObject(i))CallRectangle(MyDC, 10 + 60 * i, 30, 60 + 60 * i, 80)NextFori = 0 To5'Рисуем заштрихованные прямоугольники
Brush= CreateHatchBrush(i, RGB(255, 0, 0))OldBrush= SelectObject(MyDC,Brush)CallRectangle(MyDC, 10 + 60 * i, 100, 60 + 60 * i, 150)CallSelectObject(MyDC,OldBrush)CallDeleteObject(Brush)NextCallReleaseDC(hwnd, MyDC)
End SubPrivate Sub Form_Load()Caption= "Пример использования базовых и штрихующих кистей" BackColor= &HFFFFFFEnd Sub
93.Создание логического пера функциями CreatePen, CreatePenIndirect.
Перо используется для вычерчивания прямых линий многогранников, окружностей, дуг и т.п. Перо характеризуется цветом линии, толщиной и стилем. По умолчанию используется перо черного цвета, толщинойв1 пиксель, и стиль PS_SOLID. В базовый набор инструментов входят три константы перьев: WHITE_PEN=6, BLACK_PEN=7 и NULL_PEN=8 (перо, которое не рисует). Любой из этих инструментов выбирается и устанавливается в контекст устройства функциями GetStockObjectиSelectObject. Логическое перо, имеющее собственный стиль, цвет и толщину, создается одной из следующих функций.
1. CreatePenIndirect(lpLogPenAsLOGPEN) AsLong-создает перо, определенное заданной структурой типа LOGPEN:
TypeLOGPENlopnStyleAsLong' Стиль пера lopnWidthAsPOINTAPI ' Ширина пера lopnColorAsLong' Цвет пераEndType В структуре POINTAPI y-координата не используется. Поле lopnStyle должно содержать одну из 6 констант стилей: PS_SOLID = 0 {сплошной}; PS_DASH = 1 {пунктир}; PS_DOT = 2 {точки}; PS_DASHDOT = 3 {точка-тире}; PS_DASHDOTDOT = 4 {точка-точка-тире}; PS_NULL = 5 {невидимые линии}; PS_INSIDEFRAME = =6. При этом следует отметить, что стили PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT определены только при толщине пера, равной единице. Толщина пера задается целым числом.
CreatePen(ByValnPenStyleAsLong, ByValnWidthAsLong, ByValcrColorAsLong) –создает перо явным определением параметров.
94.Основные API-функции ядра для работы с пером.
В Visual Basic у объектов формы и Picture имеются методы, позволяющие рисовать. Однако они работают не так быстро, каких «двойники» из набора API-функций. Система Windows содержит много графических объектов и достаточное количество API-функций для рисования и заливки изображений. Рассмотрим некоторые из них, которые помогут повысить быстро действие приложений, создаваемых в VisualBasic. Перечислим некоторые полезные API-функции при работе с пером.
♦MoveToEx(ByValhdcAsLong, ByValx AsLong, ByValyAsLong, lpPointAsPOINTAPI) –перемещает перо без отображения в заданные x,y(координаты окна);
♦LineTo(ByValhdcAsLong, ByValx AsLong, ByValyAsLong) –перемещает перо с отображением линии от предыдущей координаты;
♦Rectangle(ByValhdcAsLong, ByValx1 AsLong,ByValy1 AsLong, ByValx2 AsLong, ByValy2 AsLong) –вычерчивает и заполняет текущей кистью прямоугольник с x1,y1 —координатами левого верхнего угла и x2,y2 правого нижнего угла.
♦Ellipse(ByValhdcAsLong, ByValx1 AsLong,ByValy1AsLong, ByValx2 AsLong, ByValy2 AsLong) –вычерчивает и заполняет текущей кистью эллипс, вписанный в прямоугольник с x1,y1 –координатами левого верхнего угла иx2,y2 правого нижнего угла.
♦RoundRect(ByValhdcAsLong, ByValx1 AsLong,ByValy1 AsLong, ByValx2 AsLong, ByValy2 AsLong,ByValx3 AsLong, ByValy3 AsLong) –вычерчивает и заполняет текущей кистью прямоугольник с оскругленными углами, которые определяются шириной x3 и высотой y3 вписанного эллипса. ♦Arc(ByValhdcAsLong, ByValx1 AsLong, ByValy1 AsLong, ByValx2 AsLong, ByValy2 AsLong, ByValx3 AsLong, ByValy3 AsLong, ByValx4 AsLong, ByValy4 AsLong) –вычерчивает дугу эллипса. x1,y1,x2,y2 –координаты описанного прямоугольника. x3,y3, x4,y4 –координаты начальной и конечной точки дуги, которые в общем случае могут располагаться и не на дуге эллипса, вписанной в прямоугольник. Вычерчивание осуществляется против часовой стрелки
♦Chord(ByValhdcAsLong, ByValx1 AsLong, ByValy1 AsLong, ByValx2 AsLong, ByValy2 AsLong,ByValx3 AsLong, ByValy3 AsLong, ByValx4 AsLong, ByValy4 AsLong)-вычерчивает и заполняет текущей кистью сегмент эллипса.
♦Pie(ByValhdcAsLong, ByValx1 AsLong, ByValy1AsLong, ByValX2 AsLong, ByValy2 AsLong, ByValx3 AsLong, ByValy3 AsLong, ByValx4 AsLong,ByValy4 AsLong)-вычерчивает и заполняет текущей кистью сектор эллипса.
♦FloodFill(ByValhdcAsLong, ByValx AsLong, ByValуAsLong, ByValcrColorAsLong)-заливает текущей кистью область, ограниченную цветом crColor. x, y —внутренняя точка области.