Visual Basic ортасынының графикасын қолданып анимациялық программа құру
Тарау І. VB ОРТАСЫНДА БАСҚАРУ ЭЛЕМЕНТТЕРІН ПАЙДАЛАНУ ТӘСІЛДЕРІ
1.1. VB .да жеке басқару элементін құру
1.2. Басқару элементін редакциялау
Тарау II. ГРАДИЕНТ ҚАСИЕТІН ПАЙДАЛАНЫП ЭЛЕМЕНТТЕРМЕН ЖҰМЫС
2.1. Градиент қасиетімен жұмыс істеудің ерекшеліктері
2.2. Градиент қасиетінде айнымалыларды қолдану
2.3. Visual Basic ортасынының графикасын қолданып анимациялық программа құру
Қорытынды
Пайдаланылған әдебиеттер тізімі
1.1. VB .да жеке басқару элементін құру
1.2. Басқару элементін редакциялау
Тарау II. ГРАДИЕНТ ҚАСИЕТІН ПАЙДАЛАНЫП ЭЛЕМЕНТТЕРМЕН ЖҰМЫС
2.1. Градиент қасиетімен жұмыс істеудің ерекшеліктері
2.2. Градиент қасиетінде айнымалыларды қолдану
2.3. Visual Basic ортасынының графикасын қолданып анимациялық программа құру
Қорытынды
Пайдаланылған әдебиеттер тізімі
Visual Basic басқа да Windows операциялық жүйесінің аясында жұмыс істейтін бағдарламалау тілі болғандықтан, онда объектілермен, элементтермен жұмыс істеуге тура келеді. Visual Basic бағдарламалау ортасы Microsoft фирмасының басқа да бағдарламалық пакеттері тәрізді құрылымға ие. Яғни көптеген басқару панельдері, объектілері және элементтерінен тұрады. Қазіргі кездегі алдыңғы қатарлы бағдарламашылар дайындаған бағдарламалық пакеттер терезелерден және формалардан тұрады. Ал бұл формаларды жасау барысында бағдарламашы көптеген басқару элементтерінің көмегін пайдаланады.
Көптеген басқару элементтері құрал-жабдықтар панелінде орналасқан. Мысалы файлдармен жұмыс жасайтын басқару мәзірі файлды алып қарастыруға болады. Ол мәзірдің ішінде файлды құруды, оқу және шығу сияқты басқару элементтері бар. Біз бұл курстық жұмыста өзіміз Visual Basic басқару элементтерін қолданып, әртүрлі элементтерді құрып көреміз.
Visual Basic ортасы іске қосылғаннан кейін терезелі қсымша жасай беруге болады.
Терезелі қосымшалар деп Visual Basic ортасында Windows операциялық жүйесі үшін жұмыс істеуге лайықталып жасалған қосымшаларды айтады. Мысалы Windows операциялық жүйесінің барлық дерлік қолданбалы программалары терезелі қосымша болып табылады. Терезелі қосымшаларда мәліметтерді енгізу-шығару процедуралары қолданылмайды. Олардың орнына арнаулы компаненттер қолданылады. Visual Basic ортасында терезелі қсымшалар жасау үшін алдымен программа терезесінің негізгі элементтерімен толық танысып алу керек.
Window мәзірі Visual Basic ортасындағы терезелердің орналасуын реттейтін командалар болып табылады.
Көптеген басқару элементтері құрал-жабдықтар панелінде орналасқан. Мысалы файлдармен жұмыс жасайтын басқару мәзірі файлды алып қарастыруға болады. Ол мәзірдің ішінде файлды құруды, оқу және шығу сияқты басқару элементтері бар. Біз бұл курстық жұмыста өзіміз Visual Basic басқару элементтерін қолданып, әртүрлі элементтерді құрып көреміз.
Visual Basic ортасы іске қосылғаннан кейін терезелі қсымша жасай беруге болады.
Терезелі қосымшалар деп Visual Basic ортасында Windows операциялық жүйесі үшін жұмыс істеуге лайықталып жасалған қосымшаларды айтады. Мысалы Windows операциялық жүйесінің барлық дерлік қолданбалы программалары терезелі қосымша болып табылады. Терезелі қосымшаларда мәліметтерді енгізу-шығару процедуралары қолданылмайды. Олардың орнына арнаулы компаненттер қолданылады. Visual Basic ортасында терезелі қсымшалар жасау үшін алдымен программа терезесінің негізгі элементтерімен толық танысып алу керек.
Window мәзірі Visual Basic ортасындағы терезелердің орналасуын реттейтін командалар болып табылады.
1. С. Браун. Visual Basic 6 (учебный курс), "ПИТЕР", 1999
2. С. Макашарипов. Программирование базы данных на Visual Basic 5 в примерах. "ПИТЕР", 1997
3. Visual Basic. Руководство по программированию, версия 6.0, Microsoft Corporation
4. С. Робинсон. Microsoft Access 2000. "ПИТЕР". 2000
5. Компьютеры: Справочное рукаводство. В 3-х т.Т.1.Пер.
К 63 с англ./Под ред. Г. Хелмса-Москва 1986
6. Простейшая микро-ЭВМ: Проектирование. Наладка. Использование./Л.Н.Буреев, А.Л.Гудко, В.Н.Захаров.- Москва Просвещение, 1990
7. Сергеев Н.П. Вашкевич Н.П. Основы вычислительной техники. = Москва ВШ, 1988г.
8. К.Г.Самофалов, И.В.Корнейчук, В.П. Тарасенко. Цифровые электронные вычислительные машины. – Киев: ВИЩА ШКОЛА, 1983г.
2. С. Макашарипов. Программирование базы данных на Visual Basic 5 в примерах. "ПИТЕР", 1997
3. Visual Basic. Руководство по программированию, версия 6.0, Microsoft Corporation
4. С. Робинсон. Microsoft Access 2000. "ПИТЕР". 2000
5. Компьютеры: Справочное рукаводство. В 3-х т.Т.1.Пер.
К 63 с англ./Под ред. Г. Хелмса-Москва 1986
6. Простейшая микро-ЭВМ: Проектирование. Наладка. Использование./Л.Н.Буреев, А.Л.Гудко, В.Н.Захаров.- Москва Просвещение, 1990
7. Сергеев Н.П. Вашкевич Н.П. Основы вычислительной техники. = Москва ВШ, 1988г.
8. К.Г.Самофалов, И.В.Корнейчук, В.П. Тарасенко. Цифровые электронные вычислительные машины. – Киев: ВИЩА ШКОЛА, 1983г.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 24 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 24 бет
Таңдаулыға:
Кіріспе
Visual Basic басқа да Windows операциялық жүйесінің аясында жұмыс
істейтін бағдарламалау тілі болғандықтан, онда объектілермен, элементтермен
жұмыс істеуге тура келеді. Visual Basic бағдарламалау ортасы Microsoft
фирмасының басқа да бағдарламалық пакеттері тәрізді құрылымға ие. Яғни
көптеген басқару панельдері, объектілері және элементтерінен тұрады.
Қазіргі кездегі алдыңғы қатарлы бағдарламашылар дайындаған бағдарламалық
пакеттер терезелерден және формалардан тұрады. Ал бұл формаларды жасау
барысында бағдарламашы көптеген басқару элементтерінің көмегін пайдаланады.
Көптеген басқару элементтері құрал-жабдықтар панелінде орналасқан.
Мысалы файлдармен жұмыс жасайтын басқару мәзірі файлды алып қарастыруға
болады. Ол мәзірдің ішінде файлды құруды, оқу және шығу сияқты басқару
элементтері бар. Біз бұл курстық жұмыста өзіміз Visual Basic басқару
элементтерін қолданып, әртүрлі элементтерді құрып көреміз.
Visual Basic ортасы іске қосылғаннан кейін терезелі қсымша жасай
беруге болады.
Терезелі қосымшалар деп Visual Basic ортасында Windows операциялық
жүйесі үшін жұмыс істеуге лайықталып жасалған қосымшаларды айтады. Мысалы
Windows операциялық жүйесінің барлық дерлік қолданбалы программалары
терезелі қосымша болып табылады. Терезелі қосымшаларда мәліметтерді енгізу-
шығару процедуралары қолданылмайды. Олардың орнына арнаулы компаненттер
қолданылады. Visual Basic ортасында терезелі қсымшалар жасау үшін алдымен
программа терезесінің негізгі элементтерімен толық танысып алу керек.
Window мәзірі Visual Basic ортасындағы терезелердің орналасуын
реттейтін командалар болып табылады.
Тарау І. VB ОРТАСЫНДА БАСҚАРУ ЭЛЕМЕНТТЕРІН ПАЙДАЛАНУ ТӘСІЛДЕРІ
1.1. VB -да жеке басқару элементін құру
Біз басқару элементін Басқару элементтері немесе бүтін группа құрамыз.
Парақ, ручка алып басқару элементі тізімін жасаймыз, оларға ат қойып жаңа
қасиет жасаймыз. Мысалы: Панелді қою градиенттік фон түрінде жасадым оған
FonGrad деп атау бердім, ал жазбада ол керісінше GradFon деп жазылған екен.
Бір қасиеттің екі түрлі атаумен аталуы қолайсыз. Ең алдымен оңайынан
бастағанымыз жөн. онда қою градиенттік фон панелінің маңыздыларын
көрсетеді. Стандарттық БЭ Panel алайық, оған керекті қасиеттерін қосайық,
(BackColor и BackgroundImage) артығын алып тастаймыз. Неге Panel-ді
алдық? контейнер қасиетін иемдену үшін, яғни жаңа БЭ олда болуы тиіс. Ие
болу - бұл бәрін алу, атаңнан қалғанын алу, оның істегенін істей алу
дегенді білдіреді. Сол себептен жаңа БЭ қайсысы сәйкес екенін анықтап алу
қажет. Мен көбінесе атадан қалған Control-ды пайдаланғанды жөн көрдім,
өйткені ол өз элементіңді нөлден бастауды білдіреді.
Visual Studio іске қосамыз. New Project және Class Library
таңдаймыз. Проектке NewControl деп ат береміз БЭ кітапханасын құрамыз,
оның ішінде бірнеше жаңа БЭ болады. Оның әрқайсысы өз бетінше класс
құрайды. Одан басқада класстар болады, олар БЭ барлығына жалпы. БЭ жеке
проект жасаудың қажеті жоқ.
Класстың атын, файлдың атын NewPanel деп өзгертеміз өйткені БЭ
файлдарының аттары сәйкес келгені дұрыс.
Public Class NewPanel
Inherits Panel
End Class
Оған ыңғайлы жұмыс істеу үшін кітапханаға сілтеме қажет. References
проектінде бар жоғы үш сілтеме бар соны ашамыз. Қанағатсыздықтан, атасы
үшін System Windows сурет салу үшін System Drawing қосамыз.
Осы үш қатарды жазбасада болады. Ол жағдайда барлық атауды толығымен
көрсетуге тера келеді. Panel орнына System.Windows.Forms.Panel, ал
Color орнына System.Drawing.Color. Жақсы, тез оқылуы үшін ең жоғарғы
жағына Imports қосамыз.
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class NewPanel
Inherits Panel
End Class
Бәрі дайын деуге болады. Стандарттық панелге толығымен дәл келетін
өзіміздің БЭ құрдық.
Оны қалай тексеруге болады? Ол үшін проектке жаңа проект қосамыз.
File басамыз Add Project, New Project, Windows Application
таңдаймыз және оған TestNewControl деп атау береміз. Содан оң тетікпен
жүріп отырып Set as Start Up Project таңдаймыз. Сонда біз бір терезеде
БЭ өңдейміз бір жағынан тестке арналған проектпен жұмыс істейміз. VS
екінші рет ашуға және соның ішінде тест үшін проект құруға болады, бірақ ол
ыңғайлы болмайды. Құрал жабдық понелінде жаңа БЭ белгісі пайда болу үшін
бірінші DLL құрамыз (NewControl басып Build таңдаймыз), екіншіден
DLL сілтеме жасау керек (TestNewControl өтеміз, құрал жабдық
панелінде My User Control белгісін таңдаймыз, оң тетіктің көмегімен
контекстік мәзір қатарын шақырамыз, AddRemote Items..., Browse...
басамыз және NewControlbin папкасынан өзіміздің NewControl.dll тауып
аламыз. Бізде NewPanel атты донғалақ пайда болды. Оны формаға қасына
стандарты панелді орналастырамыз, қарап отырсақ олардың ешқандай
айырмашылығы жоқ. Қасиеттері, атқаратын қызметтері де бірдей.
Біріншіден дөңгелек белгі ешнәрсеге жарамайды. өз белгімізді жасаймыз
NewControl проектісінде оң тетікпен Add таңдаймыз, содан Add New
Items..., Bitmap File белгілейміз және оған атау береміз. Ол өзіміздің
БЭ атауымен сәйкес келуі тиіс, яғни NewPanel.bmp. Әріптеріне дейін сәйкес
келуі тиіс! Немесе БЭ белгіміз жабыспай қалады. Open басамыз, ашылған
редактордың көмегімен өз суретімізді саламыз. Мұнда да екі жұмыс атқаруымыз
керек. Бірінші белгінің өлшеме 16*16. Ол үшін (төменгі оң жақтағы) ақ
төртбұрышты керекті өлшемге дейін тартып. Екіншіден –сурет салғанда төменгі
сол жақтағы пикселді боямаймыз (оны ақ түрінде қалдырамыз, ол мөлдір түс
береді). Бейнелеу редактрының терезесін жабқаннан кейін, сақтауды бекітіп
және соңғы штрих, өз суретімізді проектке белгілейміз, қасиеттер
терезесінде Build Action қасиетін Embedded Resourse қасиетіне
дауыстырамыз. Енде тағыда Build керек. DLL проектінде өзгертулер
енгізген сайын бұны жасап отыруымыз керек. Енді құрал жабдық панеліндегі
дөңгелекті өшіреміз (DLL суретті ауыстырған кезде немесе жаңа БЭ қосқанда
мұны міндетті түрде істеу қажет). Құрал жабдық панеліне тағы өз DLL қосамыз
(AddRemote Items... және т.с.с).
1.2. Басқару элементін редакциялау
Енді өз БЭ редакторлауға болады. Ал тестік проект Build кейін
автоматты түрде бетіне шығады. Расында, БЭ салмақты өзгертулерден кейін
өзіміздің БЭ формадан өшіруді, содан соң формаға жаңасын қою ұсынады.
Жаңа үш қасиет құру: екі түр және градиент бағыты. Оларды Color1,
Color2, ColorN деп атаймыз. Бұл қасиеттердің жұмыс істеуі үшін үш ішкі
айнымалы береміз. mColor1, mColor2, mColorN. Бұл тәсіл программамен
жұмыс істегенде қолайлы.
Private mColor1 As Color
Private mColor2 As Color
Private mColorN As LinearGradientMode
Қасиеттің өзін құру әлдеқайда оңай: Property Color1 as color теріп Enter
басамыз.
Содан соң программада мына текст шығады.
Property Color1() As Color
Get
End Get
Set(ByVal Value As Color)
End Set
End Property
Енді бос қатарға маңызды заттар енгіземіз:
Property Color1() As Color
Get
Return mColor1
End Get
Set(ByVal Value As Color)
mColor1 = Value : MyBase.Invalidate()
End Set
End Property
Бірінші қатардың мәні – бұл қасиеттің мағынасын қайтару. Ал екіншіден
– бұл жаңа мағынаның қасиетіне тапсырма және осы өзгерістен кейінгі БЭ
перерисовкасы. Қалған екі қасиетті алу үшін, келтірілген фрагменті екі рет
және аздап өзгерген түрінен көшіреміз.
Property Color2() As Color
Get
Return mColor2
End Get
Set(ByVal Value As Color)
mColor2 = Value : MyBase.Invalidate()
End Set
End Property
Property ColorN() As LinearGradientMode
Get
Return mColorN
End Get
Set(ByVal Value As LinearGradientMode)
mColorN = Value : MyBase.Invalidate()
End Set
End Property
Енді ең қызықтысы – OnPaint қасиеттіy анықтаудан алдын, оны (Overrides)
тізімінің сол жағынан, содан оң жағынан OnPaint таңдаймыз. Текст пайда
болады.
Бірінші қатар-БЭ тең болатын төрбұрыштың тапсырмасы. Екіншісі
тіктөртбұрышты градиенттік қаламмен толтырамыз.
Public Sub New()
Me.Color1 = Color.FromArgb(255, 221, 236, 254)
Me.Color2 = Color.FromArgb(255, 129, 169, 226)
Me.ColorN = LinearGradientMode.Vertical
End Sub
Жаңа БЭ құрған кезде, бастапқы айнымалылар беріледі. Оның басқада тәсілдері
бар- ол бастапқы мәндердің ішкі мәндері (переменныларын) беру. Маған
екеуіде ұнайды.
Private mColor1 As Color = Color.FromArgb(255, 221, 236, 254)
Private mColor2 As Color = Color.FromArgb(255, 129, 169, 226)
Private mColorN As LinearGradientMode = LinearGradientMode.Vertical
Мұны істеп болғаннан соң Build басамыз да тестік формаға өтеміз.
Сол жерде жаңа БЭ құрамыз
Үш қасиет қосамыз, қасиеттер бетінен(страница) бірнешеуін алып тастаймыз.
Ол үшін оларды алдын ала анықтап алуымыз қажет. OnPain аналитикалық түрде
жасалынады сол жақтаға тізімдегі (Overrides), содан оң жақтағы BackColor
таңдаймыз. Нәтижесінде текст пайда болады.
Public Overrides Property BackColor() As System.Drawing.Color
Get
End Get
Set(ByVal Value As System.Drawing.Color)
End Set
End Property
Енді Browsable(False) тексін жазамыз.
Енді біз АТРИБУТТАРды емін еркін қолдана аламыз. Осы қатар болмағанда,
бізге мына сөзді жазуға тура келер еді.
System.ComponentModel.Browsable(Fa lse).
BackgroundImage аналогтық түрде келіп түспейтінін ескерейік .
Атрибуттар көмегімен тағы не істеуге болады? Коптеген нәрселер. Бұл
праграммалаудың жаңа жетістіктері. Барлық атрибуттар жақша ішінде жазылады
Attribut(),Attribut(),Attribut () класс немесе қасиеттердің алдына
үтір қоямыз.
Мына атрибуттар жиі кездеседі.
Discription (Первый цвет градиентной заливки)-қасиеттер бетінің төменгі
жағында көрінетін, қасиеттер анықтамасы.
Category(“Gradient”)-группаларға және қасиеттер бетінедеп қасиеттерге
топтастыру. Егер біз Categorized деп қасиеттерді сартировка жасайтын болсақ
(алфабит бойынша емес) онда ол бір категорияға жататын қасиеттер жанына
орналасады. Сонда атрибутта осы категорияға жататын жаңа категория
құрылады.
БЭ қиындықтарына қарай басқада атритуттарды қарастырамыз.
Енді градиенттік заливкақасиетін қарастырып өтейік. Панелде бір ғана
градиенттік заливка бар, ал басқа БЭ бірнешеуі болады. Мысалы: тетіктің
бір ғана заливкасы болу мүмкін, сонда тетік басулы түрде, екінші-тышқан
тетіктің үстінде, үшінші- тетікке рұқсат жоқ. Үш фон залифкасынан басқа
тағы текс үшін үш градиент болуы керек. Нәтижесінде 6*3=18 жаңа қасиет п.б.
олармен шатасуғада болады. Одан қалай құтыламыз? Егер градиент қасиетін
қиындатсақ (мыс: Font немесе Size деп) Нәтижесі анық:қасиеттер саны үш есе
кемиді, бұл дегеніміз прграмма қысқа және қасиеттер редакторы оңай дегенді
білдіреді.
Ең алдымен жаңа қасиетке жаңа класс құрамыз. Бәрін қайтадан бастау
керек пе деген сұрақ туындауы мүмкін?! Жоқ! Біз тек класстың бір бөлігінің
кодын қырқып аламыз да келесі класқа қоямыз. *.vb файлда бірнеше кластар
болуы мүмкін. Бірақ мен жаңа қосымша қасиетке бөлек файл құруды ұсынамын.
Сол себептен проектке жаңа NewControl класын қосамыз. Атын Gradient деп
аламыз. Бір уақытта екі проект болғандықтан жаңа элементтер қосудан бұрын
сақ болыңыз. Қателіктер жоқ болуы үшін контекс мәзірін қолданған жөн.
Үстіндегі бастапқы мәзірге тиіспеңіз. Енді Imports бәрін көшіріп аламыз,
ол анықталған кластың алдында тұр. Содан анықталған үш ішкі айнымалыны
(переменный) қырқып және оларды жаңа класқа қоямыз. Бұны үш қасиетке де
жасаймыз. Енді біз өз қасиетімізден MyBase.Invalidate()командасын алып
тастаймыз. Gradient класы қолданысқа дайын.
Енді NewPanel ішіне mGrad()Fon ішкі айнымалы құрамыз.
Private mGrad0Fon As Gradient
Арықарай жаңа қасиет.
Property Grad0Fon() As Gradient
Get
Return mGrad0Fon
End Get
Set(ByVal Value As Gradient)
mGrad0Fon = Value : MyBase.Invalidate()
End Set
End Property
Кесте
OnPain аздап жөндейміз. Ескі Color1 айнымалысын mGradColor1 деп
көрсетіледі. Сонда m әріпінің және айнымалы атауларының арасына жаңа
айнымалыларды нүкте арқылы қойып шығамыз. Енді Build тестік форманы
көрейік. Енгізілген БЭ өте принципиальный болды және ол құрал жабддық
панелінде көрінбей қалды. Оны қайтадан ендіру керек болды. Қостық, формаға
орналастырдық, ал оның жұмыс істегісі келмейді. Қызыл рамка сызып
бірнәрселер жазады. Элементтің рамкасын үлкейтіп қарасақ, оған біздің
қатарды бояған БЭ ұнамайды. Windows Form Designet generated code қарасақ,
онда, автоматты түрде қасиеттер жазылып жатқанын көреміз.
Енді түсінікті болған сияқты. Біз градиентік заливканы түс туралы ешқандай
мәлімет білмей жатып жасайын деп жатыр екенбіз. Мұны түзетейік. Бар жоғы
анықталған айнымалылар қатарына New деген кілтік сөз ендіреміз. Тағы бір
көңілсіз жағдай – қасиеттер бетінде (страницасында) біздің жаңа қасиетіміз
жоқ.
Ол үшін былай жазылатын атрибут жауап береді.
Оны қасиеттер бетіне қоямыз, қасиеттер ашылатын және ішкі қасиеттерді
редакторлайтын жаңа қасиет пайда болды. Тағы бір прблема- проекті қосуда
қасиетіміз сақталмайды және бастапқы түрге қайта келе береді.
Бұл жерде өте ұзын көлемдегі атрибут керек.
Яғни, жаңа қасиеттің тексті және оның тақырыбы мына көріністе болады:
DesignerSerializationVisibility(De signerSerializationVisibility.Conte nt),
_
TypeConverter(GetType(ExpandableObj ectConverter)) _
Property Grad0Fon() As Gradient
Get
Return mGrad0Fon
End Get
Set(ByVal Value As Gradient)
mGrad0Fon = Value : MyBase.Invalidate()
End Set
End Property
Тарау II. ГРАДИЕНТ ҚАСИЕТІН ПАЙДАЛАНЫП ЭЛЕМЕНТТЕРМЕН ЖҰМЫС
2.1. Градиент қасиетімен жұмыс істеудің ерекшеліктері
Бәрі жұмыс істеп жатқан сияқты, бірақ қиыншылық бар. БЭ кез келген
қасиетін ауыстырсақ, өзгеріс тез іске қосылуы керек, бірақ біздің жағдайда
ол іске аспай отыр. Менің ойымша mGrad()Fon=Value:MyBase.Invalidate ()
қатары жұмыс істемей отырған сияқты. Оны алып тастасақта сол нәтиже шығады.
Тағы бір атрибут керек сияқты. Градиент қасиетін ауыстырғанда оқиға өзгеру
керек, біздің БЭ оқиға әсер етті.
Бірінші қадам. Қасиетті анықтаудың алдында“Gradient.vb”қатар файлын
қосамыз. Екінші қадам. Set конструкциясына шақыру оқиғасына үш рет қоюымыз
керек. Бұрынғы MyBase.Invalidate() тұрған жерге.
Үшінші қадам. Енді біздің қасиетіміз қарапайым емес. Ол енді оқиғалы
қасиет. Сол үшін оған WithEvents қоямыз.
Нәтижесінде біздің mGrad()Fon түсу (выпадающем) тізімінде көріне
бастады. Формадағы тетік сияқты көріністе. Сондықтан төртінші қадам ап
анық: mGrad()Fon сол жақтан, ал оң жақтан жалғыз оқиға GradChanged
таңдаймыз. Әрине қасына Invalidate.
Енді құрама қасиет өзгерген сайын оның қайтадан боялуына әкеп
соқтырады. New-де қасиет құрғанда құрылып жатқан қасиеттің атын оның
атасын көрсету керек.
Содан соң үш қасиеттің біреуі өзгергенде, Invalidate атасын жасау керек.
Жоқ біздің БЭ қылмыскер емес, ол ешкімді инвалид қылған жоқ, ол тек біздің
БЭ қайта суреттелуіне ықпалын тигізуде. Жаңа градиенттік заливка қасиетімен
жұмыс істеу қиын екен. Өйткені бір панель істедім, заливкасын таңдадым,
алдында жасағандарымды жаңасына көшірдім. Бәрі жақсы сияқты. Бір уақытта
панелдің стилін ауыстырғым, оны басқа түрде көргім келді. Енді ол үшін
қанша өзгерістер енгізуім керек!!!! Соның арқасында өмірге жаңа қасиет
пайда болды. Мен оны GradSource деп атадым яғни градиент көзі. Қасына
GradStyle ол қасиетті өшіріпқосу қызметін жасады. Осы екі қасиетті
қоямыз және оның қалай жұмыс істеп жатқанын бақылаймыз. Ішкі айнымалылар
береміз.
Қасиет құрамыз.
Property GradSource() As NewPanel
Get
Return mGradSource
End Get
Set(ByVal Value As NewPanel)
mGradSource = Value
End Set
End Property
Property GradStyle() As Boolean
Get
Return mGradSTyle
End Get
Set(ByVal Value As Boolean)
mGradSTyle = Value
End Set
End Property
Аздап OnPaint-тан көшіреміз.
Бұл жерде Try операторына көңіл бөлгеніміз жөн, көшіру барысында ол
бізді жағымсыз жәйттерден сақтайды. (мыс: панелдің ені мен ұзындығы нолге
тең болса, GradStyle қосулы тұрғанда GradSource көрсеткіш болмайды
немесе сілтеме жүріп жатқан элемент өшіп қалса.)
Build жасаймыз, тестік формаға көшеміз және осы жерде жаңа екі панель
құрамыз, екіншісінен қасиет тізімінің ішінен GradSource таңдаймыз және
GradStyle қасиетін ... жалғасы
Visual Basic басқа да Windows операциялық жүйесінің аясында жұмыс
істейтін бағдарламалау тілі болғандықтан, онда объектілермен, элементтермен
жұмыс істеуге тура келеді. Visual Basic бағдарламалау ортасы Microsoft
фирмасының басқа да бағдарламалық пакеттері тәрізді құрылымға ие. Яғни
көптеген басқару панельдері, объектілері және элементтерінен тұрады.
Қазіргі кездегі алдыңғы қатарлы бағдарламашылар дайындаған бағдарламалық
пакеттер терезелерден және формалардан тұрады. Ал бұл формаларды жасау
барысында бағдарламашы көптеген басқару элементтерінің көмегін пайдаланады.
Көптеген басқару элементтері құрал-жабдықтар панелінде орналасқан.
Мысалы файлдармен жұмыс жасайтын басқару мәзірі файлды алып қарастыруға
болады. Ол мәзірдің ішінде файлды құруды, оқу және шығу сияқты басқару
элементтері бар. Біз бұл курстық жұмыста өзіміз Visual Basic басқару
элементтерін қолданып, әртүрлі элементтерді құрып көреміз.
Visual Basic ортасы іске қосылғаннан кейін терезелі қсымша жасай
беруге болады.
Терезелі қосымшалар деп Visual Basic ортасында Windows операциялық
жүйесі үшін жұмыс істеуге лайықталып жасалған қосымшаларды айтады. Мысалы
Windows операциялық жүйесінің барлық дерлік қолданбалы программалары
терезелі қосымша болып табылады. Терезелі қосымшаларда мәліметтерді енгізу-
шығару процедуралары қолданылмайды. Олардың орнына арнаулы компаненттер
қолданылады. Visual Basic ортасында терезелі қсымшалар жасау үшін алдымен
программа терезесінің негізгі элементтерімен толық танысып алу керек.
Window мәзірі Visual Basic ортасындағы терезелердің орналасуын
реттейтін командалар болып табылады.
Тарау І. VB ОРТАСЫНДА БАСҚАРУ ЭЛЕМЕНТТЕРІН ПАЙДАЛАНУ ТӘСІЛДЕРІ
1.1. VB -да жеке басқару элементін құру
Біз басқару элементін Басқару элементтері немесе бүтін группа құрамыз.
Парақ, ручка алып басқару элементі тізімін жасаймыз, оларға ат қойып жаңа
қасиет жасаймыз. Мысалы: Панелді қою градиенттік фон түрінде жасадым оған
FonGrad деп атау бердім, ал жазбада ол керісінше GradFon деп жазылған екен.
Бір қасиеттің екі түрлі атаумен аталуы қолайсыз. Ең алдымен оңайынан
бастағанымыз жөн. онда қою градиенттік фон панелінің маңыздыларын
көрсетеді. Стандарттық БЭ Panel алайық, оған керекті қасиеттерін қосайық,
(BackColor и BackgroundImage) артығын алып тастаймыз. Неге Panel-ді
алдық? контейнер қасиетін иемдену үшін, яғни жаңа БЭ олда болуы тиіс. Ие
болу - бұл бәрін алу, атаңнан қалғанын алу, оның істегенін істей алу
дегенді білдіреді. Сол себептен жаңа БЭ қайсысы сәйкес екенін анықтап алу
қажет. Мен көбінесе атадан қалған Control-ды пайдаланғанды жөн көрдім,
өйткені ол өз элементіңді нөлден бастауды білдіреді.
Visual Studio іске қосамыз. New Project және Class Library
таңдаймыз. Проектке NewControl деп ат береміз БЭ кітапханасын құрамыз,
оның ішінде бірнеше жаңа БЭ болады. Оның әрқайсысы өз бетінше класс
құрайды. Одан басқада класстар болады, олар БЭ барлығына жалпы. БЭ жеке
проект жасаудың қажеті жоқ.
Класстың атын, файлдың атын NewPanel деп өзгертеміз өйткені БЭ
файлдарының аттары сәйкес келгені дұрыс.
Public Class NewPanel
Inherits Panel
End Class
Оған ыңғайлы жұмыс істеу үшін кітапханаға сілтеме қажет. References
проектінде бар жоғы үш сілтеме бар соны ашамыз. Қанағатсыздықтан, атасы
үшін System Windows сурет салу үшін System Drawing қосамыз.
Осы үш қатарды жазбасада болады. Ол жағдайда барлық атауды толығымен
көрсетуге тера келеді. Panel орнына System.Windows.Forms.Panel, ал
Color орнына System.Drawing.Color. Жақсы, тез оқылуы үшін ең жоғарғы
жағына Imports қосамыз.
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class NewPanel
Inherits Panel
End Class
Бәрі дайын деуге болады. Стандарттық панелге толығымен дәл келетін
өзіміздің БЭ құрдық.
Оны қалай тексеруге болады? Ол үшін проектке жаңа проект қосамыз.
File басамыз Add Project, New Project, Windows Application
таңдаймыз және оған TestNewControl деп атау береміз. Содан оң тетікпен
жүріп отырып Set as Start Up Project таңдаймыз. Сонда біз бір терезеде
БЭ өңдейміз бір жағынан тестке арналған проектпен жұмыс істейміз. VS
екінші рет ашуға және соның ішінде тест үшін проект құруға болады, бірақ ол
ыңғайлы болмайды. Құрал жабдық понелінде жаңа БЭ белгісі пайда болу үшін
бірінші DLL құрамыз (NewControl басып Build таңдаймыз), екіншіден
DLL сілтеме жасау керек (TestNewControl өтеміз, құрал жабдық
панелінде My User Control белгісін таңдаймыз, оң тетіктің көмегімен
контекстік мәзір қатарын шақырамыз, AddRemote Items..., Browse...
басамыз және NewControlbin папкасынан өзіміздің NewControl.dll тауып
аламыз. Бізде NewPanel атты донғалақ пайда болды. Оны формаға қасына
стандарты панелді орналастырамыз, қарап отырсақ олардың ешқандай
айырмашылығы жоқ. Қасиеттері, атқаратын қызметтері де бірдей.
Біріншіден дөңгелек белгі ешнәрсеге жарамайды. өз белгімізді жасаймыз
NewControl проектісінде оң тетікпен Add таңдаймыз, содан Add New
Items..., Bitmap File белгілейміз және оған атау береміз. Ол өзіміздің
БЭ атауымен сәйкес келуі тиіс, яғни NewPanel.bmp. Әріптеріне дейін сәйкес
келуі тиіс! Немесе БЭ белгіміз жабыспай қалады. Open басамыз, ашылған
редактордың көмегімен өз суретімізді саламыз. Мұнда да екі жұмыс атқаруымыз
керек. Бірінші белгінің өлшеме 16*16. Ол үшін (төменгі оң жақтағы) ақ
төртбұрышты керекті өлшемге дейін тартып. Екіншіден –сурет салғанда төменгі
сол жақтағы пикселді боямаймыз (оны ақ түрінде қалдырамыз, ол мөлдір түс
береді). Бейнелеу редактрының терезесін жабқаннан кейін, сақтауды бекітіп
және соңғы штрих, өз суретімізді проектке белгілейміз, қасиеттер
терезесінде Build Action қасиетін Embedded Resourse қасиетіне
дауыстырамыз. Енде тағыда Build керек. DLL проектінде өзгертулер
енгізген сайын бұны жасап отыруымыз керек. Енді құрал жабдық панеліндегі
дөңгелекті өшіреміз (DLL суретті ауыстырған кезде немесе жаңа БЭ қосқанда
мұны міндетті түрде істеу қажет). Құрал жабдық панеліне тағы өз DLL қосамыз
(AddRemote Items... және т.с.с).
1.2. Басқару элементін редакциялау
Енді өз БЭ редакторлауға болады. Ал тестік проект Build кейін
автоматты түрде бетіне шығады. Расында, БЭ салмақты өзгертулерден кейін
өзіміздің БЭ формадан өшіруді, содан соң формаға жаңасын қою ұсынады.
Жаңа үш қасиет құру: екі түр және градиент бағыты. Оларды Color1,
Color2, ColorN деп атаймыз. Бұл қасиеттердің жұмыс істеуі үшін үш ішкі
айнымалы береміз. mColor1, mColor2, mColorN. Бұл тәсіл программамен
жұмыс істегенде қолайлы.
Private mColor1 As Color
Private mColor2 As Color
Private mColorN As LinearGradientMode
Қасиеттің өзін құру әлдеқайда оңай: Property Color1 as color теріп Enter
басамыз.
Содан соң программада мына текст шығады.
Property Color1() As Color
Get
End Get
Set(ByVal Value As Color)
End Set
End Property
Енді бос қатарға маңызды заттар енгіземіз:
Property Color1() As Color
Get
Return mColor1
End Get
Set(ByVal Value As Color)
mColor1 = Value : MyBase.Invalidate()
End Set
End Property
Бірінші қатардың мәні – бұл қасиеттің мағынасын қайтару. Ал екіншіден
– бұл жаңа мағынаның қасиетіне тапсырма және осы өзгерістен кейінгі БЭ
перерисовкасы. Қалған екі қасиетті алу үшін, келтірілген фрагменті екі рет
және аздап өзгерген түрінен көшіреміз.
Property Color2() As Color
Get
Return mColor2
End Get
Set(ByVal Value As Color)
mColor2 = Value : MyBase.Invalidate()
End Set
End Property
Property ColorN() As LinearGradientMode
Get
Return mColorN
End Get
Set(ByVal Value As LinearGradientMode)
mColorN = Value : MyBase.Invalidate()
End Set
End Property
Енді ең қызықтысы – OnPaint қасиеттіy анықтаудан алдын, оны (Overrides)
тізімінің сол жағынан, содан оң жағынан OnPaint таңдаймыз. Текст пайда
болады.
Бірінші қатар-БЭ тең болатын төрбұрыштың тапсырмасы. Екіншісі
тіктөртбұрышты градиенттік қаламмен толтырамыз.
Public Sub New()
Me.Color1 = Color.FromArgb(255, 221, 236, 254)
Me.Color2 = Color.FromArgb(255, 129, 169, 226)
Me.ColorN = LinearGradientMode.Vertical
End Sub
Жаңа БЭ құрған кезде, бастапқы айнымалылар беріледі. Оның басқада тәсілдері
бар- ол бастапқы мәндердің ішкі мәндері (переменныларын) беру. Маған
екеуіде ұнайды.
Private mColor1 As Color = Color.FromArgb(255, 221, 236, 254)
Private mColor2 As Color = Color.FromArgb(255, 129, 169, 226)
Private mColorN As LinearGradientMode = LinearGradientMode.Vertical
Мұны істеп болғаннан соң Build басамыз да тестік формаға өтеміз.
Сол жерде жаңа БЭ құрамыз
Үш қасиет қосамыз, қасиеттер бетінен(страница) бірнешеуін алып тастаймыз.
Ол үшін оларды алдын ала анықтап алуымыз қажет. OnPain аналитикалық түрде
жасалынады сол жақтаға тізімдегі (Overrides), содан оң жақтағы BackColor
таңдаймыз. Нәтижесінде текст пайда болады.
Public Overrides Property BackColor() As System.Drawing.Color
Get
End Get
Set(ByVal Value As System.Drawing.Color)
End Set
End Property
Енді Browsable(False) тексін жазамыз.
Енді біз АТРИБУТТАРды емін еркін қолдана аламыз. Осы қатар болмағанда,
бізге мына сөзді жазуға тура келер еді.
System.ComponentModel.Browsable(Fa lse).
BackgroundImage аналогтық түрде келіп түспейтінін ескерейік .
Атрибуттар көмегімен тағы не істеуге болады? Коптеген нәрселер. Бұл
праграммалаудың жаңа жетістіктері. Барлық атрибуттар жақша ішінде жазылады
Attribut(),Attribut(),Attribut () класс немесе қасиеттердің алдына
үтір қоямыз.
Мына атрибуттар жиі кездеседі.
Discription (Первый цвет градиентной заливки)-қасиеттер бетінің төменгі
жағында көрінетін, қасиеттер анықтамасы.
Category(“Gradient”)-группаларға және қасиеттер бетінедеп қасиеттерге
топтастыру. Егер біз Categorized деп қасиеттерді сартировка жасайтын болсақ
(алфабит бойынша емес) онда ол бір категорияға жататын қасиеттер жанына
орналасады. Сонда атрибутта осы категорияға жататын жаңа категория
құрылады.
БЭ қиындықтарына қарай басқада атритуттарды қарастырамыз.
Енді градиенттік заливкақасиетін қарастырып өтейік. Панелде бір ғана
градиенттік заливка бар, ал басқа БЭ бірнешеуі болады. Мысалы: тетіктің
бір ғана заливкасы болу мүмкін, сонда тетік басулы түрде, екінші-тышқан
тетіктің үстінде, үшінші- тетікке рұқсат жоқ. Үш фон залифкасынан басқа
тағы текс үшін үш градиент болуы керек. Нәтижесінде 6*3=18 жаңа қасиет п.б.
олармен шатасуғада болады. Одан қалай құтыламыз? Егер градиент қасиетін
қиындатсақ (мыс: Font немесе Size деп) Нәтижесі анық:қасиеттер саны үш есе
кемиді, бұл дегеніміз прграмма қысқа және қасиеттер редакторы оңай дегенді
білдіреді.
Ең алдымен жаңа қасиетке жаңа класс құрамыз. Бәрін қайтадан бастау
керек пе деген сұрақ туындауы мүмкін?! Жоқ! Біз тек класстың бір бөлігінің
кодын қырқып аламыз да келесі класқа қоямыз. *.vb файлда бірнеше кластар
болуы мүмкін. Бірақ мен жаңа қосымша қасиетке бөлек файл құруды ұсынамын.
Сол себептен проектке жаңа NewControl класын қосамыз. Атын Gradient деп
аламыз. Бір уақытта екі проект болғандықтан жаңа элементтер қосудан бұрын
сақ болыңыз. Қателіктер жоқ болуы үшін контекс мәзірін қолданған жөн.
Үстіндегі бастапқы мәзірге тиіспеңіз. Енді Imports бәрін көшіріп аламыз,
ол анықталған кластың алдында тұр. Содан анықталған үш ішкі айнымалыны
(переменный) қырқып және оларды жаңа класқа қоямыз. Бұны үш қасиетке де
жасаймыз. Енді біз өз қасиетімізден MyBase.Invalidate()командасын алып
тастаймыз. Gradient класы қолданысқа дайын.
Енді NewPanel ішіне mGrad()Fon ішкі айнымалы құрамыз.
Private mGrad0Fon As Gradient
Арықарай жаңа қасиет.
Property Grad0Fon() As Gradient
Get
Return mGrad0Fon
End Get
Set(ByVal Value As Gradient)
mGrad0Fon = Value : MyBase.Invalidate()
End Set
End Property
Кесте
OnPain аздап жөндейміз. Ескі Color1 айнымалысын mGradColor1 деп
көрсетіледі. Сонда m әріпінің және айнымалы атауларының арасына жаңа
айнымалыларды нүкте арқылы қойып шығамыз. Енді Build тестік форманы
көрейік. Енгізілген БЭ өте принципиальный болды және ол құрал жабддық
панелінде көрінбей қалды. Оны қайтадан ендіру керек болды. Қостық, формаға
орналастырдық, ал оның жұмыс істегісі келмейді. Қызыл рамка сызып
бірнәрселер жазады. Элементтің рамкасын үлкейтіп қарасақ, оған біздің
қатарды бояған БЭ ұнамайды. Windows Form Designet generated code қарасақ,
онда, автоматты түрде қасиеттер жазылып жатқанын көреміз.
Енді түсінікті болған сияқты. Біз градиентік заливканы түс туралы ешқандай
мәлімет білмей жатып жасайын деп жатыр екенбіз. Мұны түзетейік. Бар жоғы
анықталған айнымалылар қатарына New деген кілтік сөз ендіреміз. Тағы бір
көңілсіз жағдай – қасиеттер бетінде (страницасында) біздің жаңа қасиетіміз
жоқ.
Ол үшін былай жазылатын атрибут жауап береді.
Оны қасиеттер бетіне қоямыз, қасиеттер ашылатын және ішкі қасиеттерді
редакторлайтын жаңа қасиет пайда болды. Тағы бір прблема- проекті қосуда
қасиетіміз сақталмайды және бастапқы түрге қайта келе береді.
Бұл жерде өте ұзын көлемдегі атрибут керек.
Яғни, жаңа қасиеттің тексті және оның тақырыбы мына көріністе болады:
DesignerSerializationVisibility(De signerSerializationVisibility.Conte nt),
_
TypeConverter(GetType(ExpandableObj ectConverter)) _
Property Grad0Fon() As Gradient
Get
Return mGrad0Fon
End Get
Set(ByVal Value As Gradient)
mGrad0Fon = Value : MyBase.Invalidate()
End Set
End Property
Тарау II. ГРАДИЕНТ ҚАСИЕТІН ПАЙДАЛАНЫП ЭЛЕМЕНТТЕРМЕН ЖҰМЫС
2.1. Градиент қасиетімен жұмыс істеудің ерекшеліктері
Бәрі жұмыс істеп жатқан сияқты, бірақ қиыншылық бар. БЭ кез келген
қасиетін ауыстырсақ, өзгеріс тез іске қосылуы керек, бірақ біздің жағдайда
ол іске аспай отыр. Менің ойымша mGrad()Fon=Value:MyBase.Invalidate ()
қатары жұмыс істемей отырған сияқты. Оны алып тастасақта сол нәтиже шығады.
Тағы бір атрибут керек сияқты. Градиент қасиетін ауыстырғанда оқиға өзгеру
керек, біздің БЭ оқиға әсер етті.
Бірінші қадам. Қасиетті анықтаудың алдында“Gradient.vb”қатар файлын
қосамыз. Екінші қадам. Set конструкциясына шақыру оқиғасына үш рет қоюымыз
керек. Бұрынғы MyBase.Invalidate() тұрған жерге.
Үшінші қадам. Енді біздің қасиетіміз қарапайым емес. Ол енді оқиғалы
қасиет. Сол үшін оған WithEvents қоямыз.
Нәтижесінде біздің mGrad()Fon түсу (выпадающем) тізімінде көріне
бастады. Формадағы тетік сияқты көріністе. Сондықтан төртінші қадам ап
анық: mGrad()Fon сол жақтан, ал оң жақтан жалғыз оқиға GradChanged
таңдаймыз. Әрине қасына Invalidate.
Енді құрама қасиет өзгерген сайын оның қайтадан боялуына әкеп
соқтырады. New-де қасиет құрғанда құрылып жатқан қасиеттің атын оның
атасын көрсету керек.
Содан соң үш қасиеттің біреуі өзгергенде, Invalidate атасын жасау керек.
Жоқ біздің БЭ қылмыскер емес, ол ешкімді инвалид қылған жоқ, ол тек біздің
БЭ қайта суреттелуіне ықпалын тигізуде. Жаңа градиенттік заливка қасиетімен
жұмыс істеу қиын екен. Өйткені бір панель істедім, заливкасын таңдадым,
алдында жасағандарымды жаңасына көшірдім. Бәрі жақсы сияқты. Бір уақытта
панелдің стилін ауыстырғым, оны басқа түрде көргім келді. Енді ол үшін
қанша өзгерістер енгізуім керек!!!! Соның арқасында өмірге жаңа қасиет
пайда болды. Мен оны GradSource деп атадым яғни градиент көзі. Қасына
GradStyle ол қасиетті өшіріпқосу қызметін жасады. Осы екі қасиетті
қоямыз және оның қалай жұмыс істеп жатқанын бақылаймыз. Ішкі айнымалылар
береміз.
Қасиет құрамыз.
Property GradSource() As NewPanel
Get
Return mGradSource
End Get
Set(ByVal Value As NewPanel)
mGradSource = Value
End Set
End Property
Property GradStyle() As Boolean
Get
Return mGradSTyle
End Get
Set(ByVal Value As Boolean)
mGradSTyle = Value
End Set
End Property
Аздап OnPaint-тан көшіреміз.
Бұл жерде Try операторына көңіл бөлгеніміз жөн, көшіру барысында ол
бізді жағымсыз жәйттерден сақтайды. (мыс: панелдің ені мен ұзындығы нолге
тең болса, GradStyle қосулы тұрғанда GradSource көрсеткіш болмайды
немесе сілтеме жүріп жатқан элемент өшіп қалса.)
Build жасаймыз, тестік формаға көшеміз және осы жерде жаңа екі панель
құрамыз, екіншісінен қасиет тізімінің ішінен GradSource таңдаймыз және
GradStyle қасиетін ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz