5.4.6. Visual Basic mühitində idarəedici quruluşlar
Forma və idarəedici elementlərin formada yerləşdirilməsi.
Fərz edək ki, məsələn, ―Birinci layihə‖ kimi sözlərdən ibarət mətni çap edən proqram
əlavəsi hazırlamaq tələb olunur.
Mətn informasiyasının formaya çıxarılması üçün Label (Metka), TextBox (Mətn
sahəsi) idarəedici elementlərindən və Print metodundan istifadə etmək olar.
“Qrafik interfeys yaradılması” layihəsi:
1.
Visual Basic sistemini işə buraxmalı. [File-New-Standart] əmri ilə yeni layihə
yaratmalı.
79
2.
Formadakı alətlər panelinin köməyi ilə susma rejimində forma adını - Form1,
metkanı - Label1, mətn sahəsini - Text1 və əmr düyməsini - Command1 daxil
etməli.
3.
Obyektin xassələri pəncərəsinin köməyi ilə aşağıdakı cədvəldə verilmiş idarəedici
elementləri daxil etməli:
Obyektlər sinfi
Xassələr
Susma rejimində qiyməti Yeni qiyməti
Form (forma)
Name
Form1
frm1
Caption
Form1
Birinci layihə
Label (üst yazı)
Name
Label1
lbl1
Caption
Label1
Birinci layihə
TextBox
(mətn sahəsi)
Name
Text1
txt1
Text
Text1
Birinci layihə
CommandButton
(əmr düyməsi)
Name
Command1
cmd1
Caption
Command1
Print metodu
Növbəti addım hadisəvi prosedurun proqram kodunun yaradılmasından ibarətdir.
Obyekt (forma və ya idarəedici element) üzərində mışın sol düyməsini 2 dəfə
basmaqla proqram kodu pəncərəsini açmaq lazımdır. Açılmış pəncərədəki hadisəvi
prosedurun sərlövhəsi boş olur. cmd1 düyməsi üzərində sol düyməni 2 dəfə basdıqda
hadisəvi prosedurun sərlövhəsi cmd1_Click şəklinə düşür:
Private Sub cmd1_Click ()
End Sub
4.
cmd1 düyməsi üzərində mışın sol düyməsini 2 dəfə basmaqla cmd1_Click () boş
prosedurlu proqram kodu pəncərəsini açıb, Print metodu prosedurunu daxil
etməli. Bu prosedurun məzmunu aşağıdakı operatorlar ardıcılığından ibarət
olmalıdır:
frm1.Print ―Visual Basic dilində birinci layihə‖
Layihənin ilk variantı artıq icraya hazırdır.
5.
[Run-Start] əmrini daxil etməli. Bu zaman proqram əlavəsinin açılan pəncərə-
sində ―Birinci layihə‖ sözləri görünəcəkdir. Bu hadisə Print metodu düyməsi
üzərində sol düyməni basdıqda baş verir.
80
Formanın rənginin və şriftin parametrlərinin verilməsi. Layihənin xarici görünü-
şünü cazibədar etmək üçün obyektlərə məxsus görünüşü dəyişən xassələrin qiymətlərini
dəyişmək və Print metodundan istifadə etmək lazımdır. Bunun üçün:
6.
frm1 formasını aktivləşdirməli. Obyekt xassələri pəncərəsində BackColor (fonun
rəngi) xassəsini seçməli və sol düymə ilə açılan dialoq pəncərəsində rənglər palit-
rasından bir rəng, məsələn, sarı rəng seçməli.
7.
lbl1 metkasını aktivləşdirməli. Obyekt xassələri pəncərəsində BackColor üçün
yaşıl rəng, ForeColor (üst yazı) üçün göy rəng, Font (şriftin ölçüsü) üçün 18,
Alignment (düzləndirmə) üçün mərkəz seçməli.
8.
txt1 mətn sahəsini aktivləşdirməli. Obyekt xassələri pəncərəsində ForeColor (üst
yazı) üçün qırmızı rəng, Font (şriftin ölçüsü) üçün 14 və kursiv, Alignment
(düzləndirmə) üçün mərkəz seçməli.
9.
cmd1 düyməsi üzərində sol düyməni iki dəfə basmaqla Proqram kodu pəncərəsini
açmalı və cmd1_Click() prosedurunu və Font.Size = 12 sətrini daxil etməli.
10.
Layihəni işə buraxdıqdan və Print metodu düyməsini basdıqdan sonra qrafik
interfeysin yeni görünüşü ekrana çıxacaqdır.
11.
Forma faylını [Save Form1.frm As…] əmri ilə frmVB1.frm adı ilə, layihə faylını
isə [Save Project As...] əmri ilə prjVB1.vbp adı ilə yaddaşa yazmalı.
Yəni, layihəni \textbook\VB\prjVB1\ adı ilə saxlamalı.
QEYD: Kompüterdə Visual Basic sistemi yoxdursa, VBA-dan istifadə etmək olar.
VBA-nı Microsoft Excel elektron cədvəlindən çağırmaq üçün Excel/ Servis/ Makros /
Redaktor Visual Basic marşrutu ilə gedib Menu/Insert/Uzer Form marşrutu ilə forma
pəncərəsini açmaq lazımdır. Sonra alətlər panelindəki A düyməsi ilə metka (Label)
yaratmaq olar. Bu məqsədlə Name bəndi üzərində sol düyməni 2 dəfə basıb L1 metkası,
Caption bəndində isə metkanın münasib adını daxil etmək lazımdır. Əgər yaradılan layihə
iki ədədin fərqini hesablayan proqram kodundan ibarətdirsə, münasib ad ―Azalan‖ ola
bilər. Sonra alətlər panelindəki ab düyməsi ilə mətn sahəsi (TextBox) yaradılır. Bunun
üçün Name bəndi sol düymə ilə açılır və mətn sahəsi t1 adlandırılır. Sonra alətlər
panelindəki A düyməsi ilə Name-də L2 metkası, Caption-da ―Çıxılan‖ (Enter), sonra ab
düyməsi ilə TextBox-da Name-də t2 mətn sahəsi, sonra A düyməsi ilə Name-də L3
metkası, Caption-da ―Fərq‖ (Enter), sonra ab düyməsi ilə TextBox-da Name-də t3 mətn
sahəsi yaradılır. Bundan sonra forma üzərində əmr düymələri (Hesabla, Təmizlə, Son)
81
yaradılır. Bu məqsədlə alətlər panelindəki CommandButton düyməsini basıb Name-də
cmdHes, Caption-da ―Hesabla‖ yazmaq lazımdır. Bu qayda ilə Name-də cmdTem,
Caption-da ―Təmizlə‖, Name-də cmdSon, Caption-da ―Son‖ yazılır. Sonra Formanın boş
yerində sol düyməni basıb Formaya ad vermək olar. Bunun üçün Name-də FrmİEFH,
Caption-da ―İki ədəd fərqinin hesablanması‖ yazıb enter basmaq lazımdır.
Bütün bu işlərdən sonra proqram kodu yazılır. Bunun üçün kod pəncərəsi açılır. Kod
pəncərəsi cmdSon əmr düyməsi üzərində sol düymə ilə açılır. Bu zaman kod pəncərəsində:
Private Sub cmdSon_Click()
End Sub
yazısı çıxır. ―Son‖ düyməsinə aid prosedurun icrası üçün bu yazı end operatoru ilə
tamamlanmalıdır. Yəni:
Private Sub cmdSon_Click()
end
End Sub
Sonra Forma(object) pəncərəsinə keçib ―Təmizlə‖ prosedurunu hazırlayırıq. Yəni,
cmdTem əmr düyməsi üzərində sol düyməni 2 dəfə basıb kod pəncərəsini açıb proseduru
aşağıdakı kimi yazırıq:
Private Sub cmdTem_Click()
t1=” “
82
t2=” “
t3=” “
End Sub
Sonra Forma(object) pəncərəsinə keçib ―Hesabla‖ prosedurunu hazırlayırıq. Yəni, cmdHes
əmr düyməsi üzərində sol düyməni 2 dəfə basıb kod pəncərəsini açıb proseduru aşağıdakı
kimi yazırıq:
Option Explickt
Dim a, b, c As Single
Private Sub cmdHes_Click()
a=Val(t1)
b=Val(t2)
c=a-b
t3=str(c)
End Sub
Sonra Run və ya F5 düyməsi ilə layihəni icraya buraxırıq. Sonra ―Son‖ düyməsini basıb,
işi bitiririk. Sonra Excel faylına ad verib yadda saxlayırıq. Sonra Сервис-də Защита-
Параметры-Безопасность-Средняя marşrutu ilə Excelin müdafiə rejimini orta
səviyyəyə endirməli. Sonra Servis-Redaktor Visual Basic- ok marşrutu ilə formanı açıb
F5-lə işləmək olar. Sonra isə Сервис-də Защита-Параметры-Безопасность-Высокая
marşrutu ilə Excelin müdafiə rejimini bərpa etmək lazımdır. Əgər növbəti açılışda forma
görünməzsə, Alt+F11 düyməsi ilə module bəndinə keçmək və sonra Play bəndi ilə
layihəni işlətmək olar. Ən yaxşısı Excel səhifəsində Forma açan düymə yaratmaqdır.
Bunun üçün modulda:
Sub Кнопка1_Щелкнут()
IEFH.Show
End Sub
Yazmaq kifayətdir.
5.4.7. Dəyişənin tipi, adı və qiyməti
Prosedur dillərində olduğu kimi, obyekt-istinad dillərində, o cümlədən, Visual Basic
dilində də dəyişənlər mühüm rol oynayır. Dəyişənlər verilənləri saxlamaq və emal etmək
üçündür.
83
Dəyişənlərin hər biri öz adı ilə verilir. Bu ad dəyişənin qiymətinin saxlandığı yaddaş
oblastını göstərir. Dəyişənin qiyməti müxtəlif tip verilənlər ola bilər.
Dəyişənin tipi. Dəyişənin tipi verilənin tipinə görə təyin edilir. Ədədi tip dəyişənin
qiyməti ədəddir (Byte, İnteger, Long, Single, Double). Məntiqi tip dəyişənin (Boolean)
qiyməti True (doğru) və ya False (yalan), sətri tip dəyişənin (string) qiyməti isə simvollar
ardıcıllığıdır və s.
Dəyişənin tipi açar sözdür. Buna görə də bunlar digər sözlərdən seçilməlidir.
Müxtəlif dəyişən (verilən) tipləri üzərində müxtəlif əməllər
103
icra edilir. Müxtəlif tip
verilənlər yaddaşda müxtəlif həcmdə yaddaş sahəsi tutur.
Dəyişənin adı. Hər bir dəyişənin adı (identifikatoru) yeganədir və o, proqramın gedişi
prosesində dəyişə bilməz. Dəyişənin adı müxtəlif simvollardan (latın və rus hərflərindən,
rəqəmlərdən və s.) təşkil edilə bilər. Lakin dəyişənin adı yalnız hərflə başlamalıdır və adda
nöqtə işarəsindən istifadə etmək olmaz. Adın uzunluğu 255 simvoldan çox olmamalıdır.
Ədədi dəyişəni, məsələn, A və ya Число adlandırmaq, sətri dəyişəni A və ya Строка
adlandırmaq mümkündür. Visual Basic dilində tam ədədi dəyişənin adı intA və ya
intЧисло, sətri dəişənin adı strA və ya strСтрока kimi yazılır.
Dəyişənin tipinin elan edilməsi. Həm proqramçı, həm də kompüter bilməlidir ki,
dəyişənin tipi hansıdır. Buna görə də dəyişənin tipi elan edilir. Bunun üçün dəyişəni təyin
edən operatordan istifadə edilir. Bu operatorun sintaksisi aşağıdakı kimidir: Dim
Dəyişənin Adı [As ТипПеременной].
Bir operatorla bir neçə dəyişəni elan etmək olar:
Dim intЧисло As İnteger, strСтрока As String.
Proqramın icrası gedişində qiyməti dəyişməyən dəyişənə sabit deyilir. Bu, belə elan
edilir: Const ИмяКонстанты [As Тип] = ЗначениеКонстанты.
5.4.8. Hesabi, sətri və məntiqi ifadələr. Mənimsətmə
Dəyişənlərdən hesabi, sətri və məntiqi ifadələr yaratmaq mümkündür.
Hesabi ifadələr. Hesabi ifadələrin tərkibinə ədədi dəyişənlərlə yanaşı, həm də
bilavasitə ədədlər daxil ola bilər. Dəyişənlər və ədədlər üzərində müxtəlif hesabi əməllər,
həmçinin funksiyaların köməyi ilə ifadə edilmiş riyazi əməllər icra edilir. Hesabi ifadələrin
103
ədədi dəyişənlər üzərində hesabi əməllər, məntiqi dəyişənlər üzərində məntiqi əməllər və s.
84
hesablanması ardıcıllığı məlum qayda üzrə, mötərizə daxilində qüvvətə yüksəltmə, vurma,
bölmə, toplama və cıxma ardıcıllığı ilə aparılır.
Sətri ifadələr. Sətri ifadələrin tərkibinə sətri dəyişənlər, sətrlər və sətri funksiyalar
daxil olur. Dırnaq arasında verilmiş ixtiyari simvollar ardıcıllığı sətr adlanır. Məsələn,
―informatika‖, ―2000‖, ―2+2‖.
Sətri dəyişənlər və sərtlər üzərində konkatenasiya
104
əməli icra edilir. Konkatenasiya
əməli ―+‖ işarəsi ilə təsvir edilir və bunun nəticəsində iki sətir bir sətrə çevrilir.
Məntiqi ifadələr. Məntiqi ifadələrin tərkibinə, məntiqi dəyişənlərlə yanaşı, ədədlər,
bir-biri ilə müqayisə edilən
105
ədədi və sətri dəyişənlər daxil ola bilər.
Məntiqi ifadələr yalnız iki qiymət ala bilir: ―doğru‖ və ―yalan‖. Məsələn:
5>3 – doğru; 2*2=5 – yalan.
Məntiqi ifadələrin elementləri üzərində məntiqi vurma (And) və məntiqi toplama (Or)
əməlləri aşağıdakı kimi icra edilir:
(5>3) And (2*2=5) – yalan
(5>3) Or (2*2=5) – doğru
Dəyişənlərə qiymətlərin mənimsədilməsi. Dəyişənin qiymətini mənimsətmə operato-
runun köməyi ilə daxil etmək mümkündür. Bu operatorun sintaksisi aşağıdakı kimidir:
[Let] DəyişəninAdı = İfadə
Adətən Let açar sözü yazılmır. Bu sözü = işarəsi əvəz edir.
İndi bu deyilənlərdən istifadə edərək, müxtəlif dəyişənlər üzərində müxtəlif əməllər
icra edən ―Dəyişənlər‖ layihəsi tərtib etməyə çalışaq.
1.
Yeni layihə yaratmalı. Qrafik interfeys yaratmaq üçün forma (frm1) üzərində əmr
düyməsi (cmd1) yerləşdirməli. Fərz edək ki, proqramda arqument kimi iştirak edən
dəyişənlər tam ədədlərdir: (intA) və (intB). Nəticələr mənfi olmayan tam dəyişən: bytC ,
birqat dəqiqlikli həqiqi dəyişən: sngD və ikiqat dəqiqlikli həqiqi dəyişəndir: dblE.
2.
Proqramda istifadə edilmək üçün dəyişənləri elan etməli: Dim intA, intB As İnteger,
bytC As Byte, sngD As Single, dblE As Double. Bundan sonra hadisəvi prosedur
hazırlanmalıdır. Bunun üçün obyekt olaraq cmd1 düyməsi, hadisə olaraq düymənin
basılması – Click() seçməli.
104
sətri birləşdirmə
105
>, <, =, >=, <= və s.
85
3.
cmd1 düyməsini dalbadal 2 dəfə basmaqla Proqram kodu pəncərəsində aşağıdakı
hadisəvi proseduru hazırlamalı:
Sub cmd1_Click()
End Sub
İndi A ədədini B-yə bölən alqoritmi reallaşdıran proqram modulunu işləyib
hazırlamaq lazımdır:
1.
intA və intB parametrlərinə konkret qiymətlər verməli;
2.
Bölmənin nəticəsini bytC, sngD və dblE dəyişənlərinə mənimsətməli;
3.
Nəticələri, yəni, bytC, sngD və dblE dəyişənlərinin qiymətlərini formada çap etməli.
4.
Proqram kodu pəncərəsində ilk hadisəvi proseduru aşağıdakı şəkildə tərtib etməli:
Dim intA, intB As İnteger, bytC As Byte, sngD As Single, dblE As Double
Sub cmd1_Click()
intA = 2
intB = 3
bytC = intA / intB
sngD = intA / intB
dblE = intA / intB
frm1. Print bytC, sngD, dblE
End Sub
İndi sətr və sətri dəyişənləri birləşdirən (konkatenasiya edən) hadisəvi proseduru
hazırlamaq lazımdır. Bunun üçün:
5.
frm1 forması üzərində cmd2 əmr düyməsi yerləşdirməli. Yaradılacaq hadisəvi
prosedurda obyekt cmd2 düyməsi, hadisə isə Click() olacaqdır. Bundan sonra sətri
dəyişənləri elan etmək və bunları birləşdirmək lazımdır. Bunun üçün:
6.
Proqram kodu pəncərəsində ikinci hadisəvi proseduru yazmaq lazımdır:
Dim strA, strB As String
Sub cmd2_Click()
strA=‖forma‖
strB=‖in‖+strA+‖tika‖
frm1.Print strB
End Sub
86
İndi də məntiqi dəyişənlər üzərində məntiqi əməllər icra edən hadisəvi prosedur
hazırlayaq.
7.
frm1 forması üzərində cmd3 əmr düyməsi yerləşdirməli. Yaradılacaq hadisəvi
prosedurda obyekt cmd3 düyməsi, hadisə isə Click() olacaqdır. Bundan sonra məntiqi
dəyişənləri elan etmək, bunları müqayisə etmək, məntiqi vurma əməlini icra etmək
lazımdır. Bunun üçün:
8.
Proqram kodu pəncərəsində üçüncü hadisəvi proseduru yazmaq lazımdır:
Dim blnA, blnB, blnC As Boolean
Sub cmd3_Click()
blnA = 5 > 3
blnB = 2*2 = 5
blnC = blnA And blnB
frm1. Print blnC
End Sub
9.
Layihəni işə buraxdıqdan sonra ekranda onun qrafik interfeysi görünəcəkdir.
Buradakı əmr düymələrini basmaqla müvafiq əməliyyatın icra nəticələrini forma üzərində
almaq mümkün olacaqdır. Belə ki, birinci hadisəvi prosedur icra edildikdə bölmənin
nəticələri müxtəlif dəqiqliklə ekrana çıxacaqsa, ikinci hadisəvi prosedur ―informatika‖
sözünü ekrana çıxaracaq, üçüncü prosedur isə ekrana False (yalan) sözünü çap edəcəkdir.
Layihəni \textbook\VB\prjVB2\ adı ilə saxlamalı.
5.4.9. Proqram layihəsinin kompüterdə icrası
İnterpretator və kompilyatorlar.
Prosessorun proqramı icra edə bilməsi üçün proqram və verilənlər operativ yaddaşa
yüklənməlidir. Bundan əvvəl operativ yaddaşa yüklənmiş tərcüməçi proqram (translyator)
yüksək səviyyəli proqramlaşdırma dilində yazılmış proqram mətnini avtomatik olaraq
maşın dilinə, prosessorun anladığı dilə tərcümə edir. Translyatorlar 2 tip olur: interpreta-
torlar və kompilyatorlar.
İnterpretator yüksək səviyyəli dildə yazılmış proqram əmrlərini ardıcıl olaraq maşın
dilinə tərcümə edib icraya buraxan proqramdır. İnterpretatopun üstün cəhəti odur ki,
proqramdakı səhvi tapmağa imkan verir. Nöqsanı isə yavaş işləməsidir.
87
Kompilyator bir qədər başqa cür işləyir. O, proqram mətnini bütövlükdə tərcümə edib
exe fayla çevirir ki, bu da icraya tam hazır olur. Bundan sonra həmin proqramı istənilən
qədər işlətmək olar. Kompilyator cəld işləsə də, proqramdakı səhvi tapmağa imkan vermir.
Müasir proqramlaşdırma sistemləri, o cümlədən, Visual Basic həm interpretatorla,
həm də kompilyatorla işləməyə imkan verir. Proqramın tərtibi mərhələsində interpretator
rejimindən, bütün səhvlər aradan qaldırıldıqdan sonra isə kompilyator rejimindən istifadə
edilir.
Proqramın icrası prosesi. Bu prosesi yuxarıda baxdığımız ―Dəyişənlər‖ layihəsi
timsalında nəzərdən keçirək.
Proqram mətninin operativ yaddaşa yüklənməsi. Proqram mətni operativ yaddaşa ya
klaviaturadan daxil edilir, ya da vinçesterdən yüklənir. Proqram mətni yaddaşda müəyyən
miqdarda, məsələn İ-ci yuvadan İ+K-cı yuvayadək yer tutur.
Proqramın maşın dilinə tərcümə edilməsi. Proqramçının yüksək proqramlaşdırma
dilində, məsələn, Visual Basic dilində tərtib etdiyi proqramı prosessorun anlaması üçün
yaddaşda Visual Basic dilindən tərcüməçi-translyator olmalıdır. Proqram operativ yaddaşa
oxunarkən bu translyator orada müəyyən yaddaş sahəsi zəbt edir, məsələn, N-ci yuvadan
N+M-ci yuvayadək yer tutur.
Proqramın icrası. Proqramı işə buraxdıqdan sonra prosessor proqramdakı
operatorları (əmrləri) ardıcıl oxuyub, icra edir. Dəyişənlərin elan edilməsi operatorunun
(Dim) icrası prosesində operativ yaddaşda intA və intB tamədədli dəyişənlərinin hər biri
üçün 2 yuva, mənfi olmayan tamədədli bytC dəyişəni üçün 1 yuva, birqat dəqiqlikli sngD
dəyişəni üçün 4 yuva, ikiqat dəqiqlikli dblE dəyişəni üçün 8 yuva, strA və strB sətri
dəyişənlərinin hər biri üçün onların qiymətlərindəki simvolların sayı qədər yuva, blnA,
blnB, blnC məntiqi dəyişənlərinin hər biri üçün 2 yuva ayırır. Beləliklə, verilənlərin
yaddaşda saxlanması üçün müəyyən yaddaş sahəsi, məsələn, 1-ci yuvadan 39-cu
yuvayadək yer ayrılır.
Bu, aşağıdakı cədvəldəki kimidir:
Dəyişənlərin adı
Operativ yaddaş
yuvalar
qiymətlər
intA
1-2
2
intB
3-4
3
88
bytC
5
1
sngD
6-9
0,6666667
dblE
10-17
0,66666686534882
strA
18-22
Forma
strB
23-33
Informatika
blnA
34-35
True
blnB
36-37
False
blnC
38-39
False
...
İ
Proqram kodu
İ+K
...
N
Proqramlaşdırma dilinin translyatoru
N+M
...
Sonra mənimsətmə operatorunun icrasına keçilir. Bu zaman operativ yaddaşa
dəyişənin qiyməti
106
yazılır.
Sonra Print metodunun köməyi ilə dəyişənlərin qiymətləri proqramın qrafik
interfeysini reallaşdıran forma üzərinə çıxarılır. Bu prosesdə dəyişənlərin qiymətləri
yaddaşdan oxunur və monitor ekranında işıqlandırılır.
5.4.10. Visual Basic dilində dialoq pəncərələri və fayllarla iş
Visual Basic dilindəki funksiyalar.
Proqramlaşdırma dilindəki funksiya anlayışı riyaziyyatdakı funksiya anlayışına
yaxındır. Funksiyanın bir və ya bir neçə arqumenti ola bilər. Çoxarqumentli funksiyada
arqumentlər vergüllə ayrılır: FunksiyaAdı (ArqumentlərSiyahısı).
Arqumentlərin hər yığımına funksiyanın bir qiyməti uyğun gəlir. Aqumentlərin
qiymətləri verildikdə proqramlaşdırmada deyirlər ki, funksiya öz qiymətini alır (qaytarır).
106
əgər mənimsətmə operatorunun qarşısında, yəni bərabərliyin sağ tərəfində hesablanacaq ifadə varsa,
hesablamanın nəticəsi
89
Funksiyalar adətən ifadələrin tərkibinə daxil olur. Funksiyaların müxtəlif tipləri vardır:
verilən tiplərinin dəyişdirilməsi funksiyaları, riyazi funksiyalar, sətri funksiyalar, maliyyə
funksiyaları, tarix funksiyaları və s. Funksiyanın tipi arqumentin və funksiyanın özünün
aldığı mümkün qiymətlərlə təyin edilir.
Verilən tiplərinin dəyişdirilməsi funksiyaları. Bunlar veriləni bir tipdən başqa tipə
çevirir.
Val funksiyası. Bu, sətrin qiymətini ədədə çevirir. Val (Sətir$) kimi yazılır. Yəni
bunun arqumenti sətir, qiyməti isə ədəddir. Məsələn, Val (―2012‖) funksiyasının qiyməti
2012-dir. Bu funksiya mətn sahələrinin Text xassəsinin sətri qiymətlərini ədədə çevirmək
və onların üzərində hesabi əməllər aparmaq üçün istifadə edilir.
İndi Val funksiyasından istifadə etməklə, ―adi kalkulyator‖ proqram əlavəsi yarat-
mağa çalışaq. Bu proqram əlavəsi 10-luq tam ədədlər üzərində hesab əməlləri icra etməli
və nəticələri formanın mətn sahələrinə çıxarmalıdır. Sözü gedən proqram əlavəsinin qrafik
interfeysini yaratmaq üçün forma üzərində 3 mətn sahəsi
107
və toplama, çıxma, vurma,
bölmə və işin bitməsi kimi əməlləri reallaşdıran 5 hadisəvi prosedur düymələri yerləşdirək.
Bunun üçün:
1. Yeni layihə yaratmalı. Forma üzərində 3 mətn sahəsi və 5 düymə yerləşdirib
aşağıdakı adları mənimsətməli: txt1, txt2, txt3, cmdPlus, cmdUmn, cmdDelen, cmdExit.
cmdPlus_Click proseduru txt1 və txt2 mətn sahələrindəki Text xassəsinin ədədi
qiymətlərini toplayıb txt3 mətn sahəsinə çıxarmalıdır. Bu, aşağıdakı proqram kodu ilə
reallaşdırılır:
Sub cmdPlus_Click
Txt3.Text = Val(txt1.Text)+Val(txt2.Text)
End Sub
Çıxma, vurma və bölmə prosedurları da buna analojidir.
2. Hər bir düymə üçün hadisəvi prosedur proqramı tərtib etməli.
3. Mətn sahələrinin Alignement (düzləndirmə) xassəsi üçün Right Justufy qiyməti
verilməlidir.
4. Layihəni icraya buraxmalı. Soldakı iki mətn sahəsinə ədəd daxil edib müvafiq
hesab əməli düyməsini basmalı. Sağdakı mətn sahəsində nəticə görünəcəkdir.
107
ikisi daxil ediləcək ədədlər üçün, biri nəticə üçün
90
Layihəni \textbook\VB\prjVB3\ adı ilə saxlamalı.
Val funksiyasının arqumentləri olan sətri ifadələr 8-lik say sistemində &O, 16-lıq say
sistemində isə &H sözönü ilə verilir. Məsələn, Val (―&O3720‖) və Val (―&H7D0‖)
funsiyalarının ədədi qiyməti 10-luq say sistemində 2000 ədədidir.
Str, Hex, Oct funksiyaları. Bu funksiyalar 10-luq, 16-lıq və 8-lik ədədləri sətrə
çevirir. Məsələn, Str(2000), Oct (2000), Hex (2000) 10-luqdakı 2000 ədədidir ki, bunu da
Oct funksiyası 3720-yə, Hex funksiyası H7D0-a çevirir. Yəni bu funksiyalar Val
funksiyasının əksinə işləyir.
İndi tam ədədləri 10-luqdan 8-liyə və 16-lığa və əksinə çevirən layihə yaradaq.
Bunun üçün:
1. Yeni layihə yaratmalı. Forma üzərində ədədləri daxil etmək və nəticəni çıxarmaq
üçün txtDec, txtOct, txtHex adlı 3 mətn sahəsi və cmdDecOct, cmdDecHex, cmdOctDec
və cmdHexDec adlı 4 əmr düyməsi və mətn sahələri üzərində izahedici metkalar (lblDec,
lblOct, lblHex) yaratmalı. txtOct və txtHex mətn sahələrinə sətri formada daxil ediləcək
ədədlərə konkatenasiya (sətrlərin birləşdirilməsi) əməlinin tətbiqi ilə ―&O‖ və ―&H‖
sözönlərini birləşdirməli. Alınmış 8-lik və ya 16-lıq ədədləri Val funksiyasından istifadə
etməklə sətri formadan 10-luq ədədi formaya çevirməli.
2. cmdOctDec_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdOctDec_Click()
txtDec.Text = Val(―&O‖ +txtOct.Text)
End Sub
3. cmdHexDec_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdHexDec_Click()
txtDec.Text = Val(―&H‖ +txtHex.Text)
End Sub
txtDec mətn sahəsinə daxil edilən ədədləri əvvəlcə Val funksiyasının köməyi ilə sətri
formadan ədədi formaya, sonra isə 10-luq ədədləri Oct və Hex funksiyalarından istifadə
etməklə sətri 8-lik və sətri 16-lıq formaya çevirməli.
Bunun üçün:
4. cmdDecHex_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdDecHex_Click()
txtHex.Text = Hex(Val(txtDec.Text))
91
End Sub
5. cmdDecOct_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdDecOct_Click()
txtOct.Text = Oct(Val(txtDec.Text))
End Sub
6. Layihəni icraya buraxmalı. Soldakı mətn sahəsinə 10-luq ədəd daxil edib, 8-liyə və
16-liğa çevirməli.
Layihəni \textbook\VB\prjVB4\ adı ilə saxlamalı.
Asc funksiyası. Bu, sətri kodlaşdırma cədvəlindəki ədədi koda çevirir. Yəni həfin
ədədi kodunu ekrana çıxarır. Asc(Sətir$) şəklində yazılır.
Chr funksiyası. Bu, ədədi kodu simvola çevirir. Chr(Ədəd) kimi yazılır.
İndi daxil edilən simvolu ədədi koda çevirən və simvolları ədədi kodlar üzrə çap edən
layihə yaradaq.
Bunun üçün:
1. Yeni layihə yaratmalı. Forma üzərində txtS və txtN adlı 2 mətn sahəsi və cmdS və
cmdT adlı iki əmr düyməsi yerləşdirməli. Asc() funksiyasından istifadə etməklə txtS mətn
sahəsinə daxil ediləcək simvolun ədədi kodunu txtN mətn sahəsinə çap etməli.
2. cmdS_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdS_Click()
txtN.Text = Asc(txtS.Text)
End Sub
Mənfi bir (-1) addımla işləyən sayğac düzəldib simvol kodlarını böyükdən (255)
kiçiyə ardıcıl çap etməli.
3. Bunun üçün cmdT_Click() hadisəvi prosedurunu aşağıdakı kimi yazmalı:
Dim strA As String, N As İnteger
Sub cmdT_Click()
For N=255 To 33 Step -1
strA = Chr(N)
Print N; ― – ―; strA
Next N
End Sub
92
4. Layihəni icraya buraxmalı.
Layihəni \textbook\VB\prjVB5\ adı ilə saxlamalı.
Riyazi funksiyalar.
Riyazi funksiyalarda həm arqumentlər, həm də funksiyanın özü ədədi qiymətlər alır.
Visual Basic dilində 12 riyazi funksiya vardır. Buraya: Sin(), Cos(), Tan(), Atn(), Sqr()
108
,
Log(), Exp()
109
, Rnd()
110
və s. aiddir.
Riyazi funksiyalardan istifadə etməklə yuxarıda tərtib etdiyimiz ―Adi kalkulyator‖
layihəsinin imkanlarını genişləndirib onu ―Mühəndis kalkulyatoru‖na çevirməyə çalışaq.
Bunun üçün:
1. ―Adi kalkulyator‖ layihəsini açmalı. Formaya cmdSin, cmdCos, cmdTan, cmdSqr,
cmdSt
111
və cmdLog düymələrini əlavə etməli. Bu düymələrin hər biri üçün hadisəvi
proseduru aşağıdakı kimi yazmalı:
2. Məsələn, qüvvətə yüksəltmə üçün cmdSt_Click() aşağıdakı kimi olacaqdır:
Sub cmdSt_Click()
txt3Dec.Text=Val(txt1Dec.Text)^Val(txt2Dec/Text)
End Sub
3. Qalan funksiyaları Visual Basic dilinin qurulmuş funksiyaları kimi, yəni Sin(),
Cos(), Tan(), Sqr() və Log() şəklində daxil etməli.
4. Layihəni icraya buraxmalı.
32
2
ədədini hesablamalı. Bunun üçün 2 və 32 ədədlərini
daxil edib, X^Y düyməsini basmaq lazımdır.
Bu layihəni \textbook\VB\prjVB6\ adı ilə saxlamalı.
Sətri funksiyalar.
Sətri funksiyalarda ya arqumentlər, ya da funksiyanın özü sətri qiymət alır.
Sətrin uzunluğunu təyin edən funksiya. Bu, Len(Sətir$) kimi yazılır və sətri ədədə
çevirir. Yəni sətrdəki simvolların sayını çap edir.
Fərz edək ki, Len funksiyasının arqumenti ―informatika‖ sətridir. Bu halda tam ədədli
sətri dəyişən olan intDlinaStroki = Len(―informatika‖) = 11 olacaqdır.
Sətri bölmə funksiyaları. Bunlar sətrin solundan, sağından və ortasından müəyyən
uzunluqda hissə, məsələn, Left$(Stroka$, Dlina$) funksiyası Stroka$ sətrinin birinci
108
kvadrat kökalma
109
Üstlü funksiya
110
Təsadüfi kəmiyyətlər generatoru
111
Bu düymənin üstündə (X^Y) göstərməli.
93
simvolundan başlayaraq Dlina$ parametri qədər, Right$(Stroka$, Dlina$) funksiyası
Stroka$ sətrinin son simvoldan başlayaraq Dlina$ parametri qədər, Mid$(Stroka$,
Pozisiya$, Dlina$) isə Stroka$ sətrinin Pozisiya$ parametrində göstərilən simvolundan
başlayaraq Dlina$ parametri qədər hissə ayırıb çap edir.
Fərz edək ki, Stroka$ =‖informatika‖, bu halda, Left$ (―informatika‖, 2) = ‖in‖,
Right$ (―informatika‖, 4) = ‖tika‖, Mid$(―informatika‖, 3, 5) = ―forma‖ olacaqdır.
İndi ―sətri kalkulyator‖ yaradaq. Bunun üçün:
1. Forma üzərində sətr daxil etmək üçün txt1 və txt2, nəticəni çap etmək üçün txt3
mətn sahələri və konketenasiya (birləşdirmə) əməlini reallaşdıran cmdCon əmr düyməsi
yerləşdirməli.
2. cmdCon_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdCon_Click()
txt3.Text = txt1.Text + txt2.Text
End Sub
3. Layihəni icraya buraxmalı. txt1 və txt2 mətn sahələrinə sətr daxil edib, əmr
düyməsini sıxmalı. Nəticə txt3 mətn sahəsində görünəcəkdir.
İndi Mid$(stroka$, bytM,bytN) funksiyasından istifadə etməklə sətrin dəyişdirilmə-
sinə baxaq.
Bunun üçün:
4. Forma üzərində txt1Mid, txt2Mid, bytM, bytN mətn sahələri və cmdMid əmr
düyməsi yerləşdirməli.
5. cmdMid_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdMid_Click()
txt3.Text = Mid$(txt1.Text, Val(txt1Mid.Text), Val(txt2Mid.Text))
End Sub
6. Layihəni icraya buraxmalı.
7. İndi sətrin uzunluğunu göstərən əməli icra etmək üçün forma üzərində cmdLen
düyməsi yerləşdirməli və cmdLen_Click() prosedurunu aşağıdakı kimi yazmalı:
Sub cmdLen_Click()
txt3.Text = Len(txt1.Text)
End Sub
8. Layihəni icraya buraxmalı.
94
9. İndi forma üzərində cmdAsc əmr düyməsi yerləşdirib, cmdAsc_Click()
prosedurunu aşağıdakı kimi yazmalı:
Sub cmdAsc_Click()
txt3.Text = Asc(txt1.Text)
End Sub
10. Layihəni icraya buraxmalı.
Bu layihəni \textbook\VB\prjVB7\ adı ilə saxlamalı.
Daxiletmə və çıxarma funksiyaları.
İnputBox
112
funksiyası. Bu, verilənləri dialoq panelindən daxil etmək üçündür. Bu
funksiyanın arqumentləri 3 sətirdən ibarətdir və funksiyanın aldığı qiymət də sətirdir:
İnputBox (Dəvət$, Başlıq$,[Susma$]).
Bu funksiya icra edilərkən ekrana mətn sahəsi olan dialoq paneli açılır. Panelin başlıq
sətrində Başlıq$ arqumentinin, panelin özündə isə Dəvət$ arqumentinin qiyməti çap edilir.
Üçüncü arqument Susma$ varsa, cap edilir, yoxdursa, ona aid pəncərə açılmır. Bu
funksiyanın qiyməti istifadəçinin mətn sahəsinə daxil etdiyi sətrdən ibarətdir.
MsgBox
113
funksiyası. Bu funksiya xəbəri forma üzərinə deyil, xüsusi xəbərlər
panelinə çıxarır. Bunun qiymətini hər hansı dəyişənə mənimsətmək mümkündür. MsgBox
funksiyasının sintaksisi aşağıdakı kimidir:
MsgBox(Xəbər$[,ƏdədiKod1+ƏdədiKod2][,Başlıq$])
Xəbər$
sətri
xəbərlər
panelinə
çıxarılır.
Panelin
xarici
görünüşünü
ƏdədiKod1+ƏdədiKod2 arqumenti təyin edir. Başlıq$ sətri panelin sərlövhəsinə çıxarılır.
Kvadrat mötərizədəki arqumentlər məcburi deyillər. ƏdədiKod1 piktoqramı, ƏdədiKod2
düymələr yığımını təyin edir. Məsələn:
ƏdədiKod1 Piktoqram
ƏdədiKod2 Düymələr yığımı
16
0
Ok
32
?
1
Ok, Отмена
48
!
2
Стоп,
Повтор,
Пропустить
64
i
3
Да, Нет, Отмена
112
İnputBox - Daxiletmə pəncərəsi
113
MsgBox – Xəbərlər paneli
95
4
Да, Нет
5
Повтор, Отмена
İki ədədi kodun cəmi (ƏdədiKod1+ƏdədiKod2) olan bir ədədlə eyni vaxtda həm
piktoqramı, həm də düymələr yığımını təyin etmək olar. Məsələn, 36 ədədinə 32+4 kimi
baxmaqla, ? piktoqramını və Да, Нет düymələrini panel üzərinə çıxarmaq mümkündür.
Düymə basılan kimi MsgBox funksiyasının qiyməti hesablanır. Funksiyanın qiyməti
basılan düymədən asılıdır. Məsələn:
Basılan
düymə
Funksiyanın qiyməti
OK
1
Отмена
2
Стоп
3
Повтор
4
Пропустить
5
Да
6
Нет
7
İndi biliyi yoxlayan layihə yaradaq. Bunun alqoritmi aşağıdakı əməliyyatları özündə
birləşdirməlidir:
Sualı ekrana çıxarmaq;
Klaviaturadan daxil edilən cavabı yadda saxlamaq;
Daxil ediləni düzgün cavabla müqayisə etmək və bu şərtin ödənib-ödənmə-
məsindən asılı olaraq müxtəlif əməllərin reallaşdırılması.
Əvvəlcə İnputBox və MsgBox funksiyalarından istifadə etməklə biliyi yoxlanılanı
qeydiyyata almağı reallaşdırmaq lazımdır.
“Biliyin yoxlanması” layihəsi
1. Forma üzərində cmd1 düyməsi yerləşdirməli və Caption xassəsi üçün ―Yoxlamanı
başla‖ qiymətini verməli. Sonra isə cmd1_Click() hadisəvi prosedurunu hazırlamalı.
96
2. İnputBox funksiyası ilə adını və soyadını soruşub strA sətri dəyişəninə
mənimsətməli. MsgBox funksiyasının köməyi ilə qeydiyyataalmanın nəticəsini ekrana
çıxarmalı. Bu işi yerinə yetirmək üçün aşağıdakı proqram kodunu yazmalı:
Dim strA As String, bytB As Byte
Sub cmd1_Click()
strA = inputBox (―Adınızı və Soyadınızı daxil edin:‖,‖Qeydiyyat‖)
bytB = MsgBox (―Hörmətli ― + strA + ―, biliyinizin yoxlanması üçün hazırsınızmı?‖,
36, ―Qeydiyyat bitdi‖)
End Sub
3. Layihəni icraya buraxmalı və ―Yoxlamanı başla‖ düyməsini basmalı. Qeydiyyat
panelinin mətn sahəsində ad və soyadı daxil etməli.
4. MsgBox funksiyasının ikinci arqumenti (36) ? piktoqramını və Да, Нет
düymələrini panel üzərinə çıxarır. Да düyməsi üçün bytB ədədi dəyişəninə 6, Нет düyməsi
üçün 7 mənimsədilməlidir.
5. Şərt operatorunun köməyi ilə proqramdan çıxmaq və ya yoxlamanı davam
etdirmək olar. Bunun üçün: İf bytB =7 Then End yazmaq kifayətdir.
Sual İnputBox funksiyasının köməyi ilə verilir. Cavabın düzgünlüyü İf...Then...Else
şərti keçid operatorunun köməyi ilə yoxlanır. Cavabın düzgün olub-olmaması barədə
informasiyanı MsgBox funksiyası ikinci arqumentin 0 qiymətində OK düyməsi ilə ekrana
çıxarır.
6. Aşağıdakı proqram kodu düzgün cavabları yığır. Yanlış cavabların sayı bytN ədədi
dəyişənində yığılır:
strC = İnputBox (―1 bayt neçə bitdir?‖, ―Birinci sual‖)
İf strC = ―8 bit‖ Then MsgBox (―Düzdür!‖, 0, ―Birinci sual‖) Else MsgBox (―Səhvdir!‖,
0, ―Birinci sual‖): bytN = bytN+1
strC = İnputBox (―10-luqdakı 5 ədədini 2-lik say sisteminə çevirin:‖, ―İkinci sual‖)
İf strC = ―101‖ Then MsgBox (―Düzdür!‖, 0, ―İkinci sual‖) Else MsgBox (―Səhvdir!‖,
0, ―İkinci sual‖): bytN = bytN+1
MsgBox (―Hörmətli ― + strA + ‖, ―Siz‖ +str(bytN) + ‖suala səhv cavab verdiniz‖, 0,
―Sorğu bitdi‖
7. Layihəni icraya buraxmalı. Qeydiyyatdan keçib, suallara cavab verməli. Nəticə
MsgBox funksiyasının xəbərlər panelində çap ediləcəkdir.
97
Bu layihəni \textbook\VB\prjVB8\ adı ilə saxlamalı.
Tarix və vaxt funksiyaları.
Date funksiyası. Bu, cari tarixi Date dəyişəninə mənimsədir. Date dəyişəninin qiyməti
#Ay/Gün/İl# kimi 3 ədəddən ibarətdir.
Date layihəsinin proqram kodu aşağıdakı kimidir:
Dim dtmA, dtmB As Date
Sub cmd1_Click()
dtmA = Date
dtmB = #1/1/2007#
Print ―Bu gün ―; dtmA
Print ―Üçüncü minilliyin əvvəlindən ―; dtmA – dtmB; ― gün keçmişdir‖
End Sub
Layihəni icraya buraxıb nəticəni ekranda görmək olar.
Bu layihəni \textbook\VB\prjVB9\ adı ilə saxlamalı.
Time$ funksiyası. String (sətri) tipli bu funksiya cari vaxtı mətn sahəsinə çıxarır.
Vaxt #Saat: Dəqiqə: Saniyə# formatında verilir. Vaxtın qiymətinin dövri təzələnməsi üçün
Timer obyektindən istifadə edilir. Proqramın icrası zamanı Timer obyekti forma üzərində
görünmür. Bu, sistem saatının göstəricisini yoxlayır. Timer hadisəsinin dövrülüyü İnterval
xassəsi ilə təyin edilir. Bu xassə millisaniyə ölçüsü ilə verilir və 0-dan 65535-dək dəyişə
bilir. Timer hadisəsinin hər saniyə baş verməsi üçün İnterval xassəsinə 1000 mənimsədil-
məlidir.
İndi ―Saniyəölçən‖ layihəsini yaradaq. Bunun üçün:
1. Timer obyektini forma üzərində yerləşdirib onu tmr1 adlandırmalı. İnterval
xassəsinə 1000 ədədini mənimsətməli. Forma üzərində txtTime mətn sahəsi yaratmalı.
tmr1_Timer() hadisəvi proseduru aşağıdakı proqram kodu şəklində daxil etməli:
Sub tmr1_Timer()
txtTime.Text = Time$
End Sub
2. Layihəni icraya buraxmalı.
Bu layihəni \textbook\VB\prjVB10\ adı ilə saxlamalı.
Visual Basic dilinin qrafik imkanları.
98
Formalar (Form) və ya qrafik pəncərələr (PictureBox) üzərində müxtəlif qrafik
primitivlər
114
çəkmək üçün aşağıdakı qrafik metodlardan istifadə etmək olar:
Scale – forma və ya qrafik pəncərəyə koordinat sistemi və miqyas daxil etməyə
imkan verir: object.Scale (X1, Y1) – (X2, Y2). Bu metodun X1,Y1 arqumentləri obyektin
yuxarı sol, X2,Y2 isə aşağı sağ küncünün koordinatlarıdır.
Pset – verilmiş koordinata verilmiş rəngli nöqtə qoymağa imkan verir: object.Pset
(X,Y) [,color]. Bu metodun X,Y arqumentləri nöqtənin koordinatları, color isə xəttin
rəngidir. Color arqumentinin qiymətini aşağıdakı üsullarla:
Rəngi təyin edən vbBlack – qara, vbBlue – göy, vbGreen – yaşıl, vbCyan – mavi,
vbRed – qırmızı, vbMagenta – çöhrəyi (yasəməni), vbYellow – sarı, vbWhite – ağ kimi 8
sabitdən biri ilə;
Arqumenti 16 əsas rəngi ifadə edən 0-dan 15-dək nömrələrdən ibarət olan QBColor
(number) funksiyasının köməyi ilə;
RGB (bytRed, bytGreen, bytBlue) funksiyasının köməyi ilə vermək olar. Bu funksi-
yanın arqumentləri olan hər üç parametr 0-dan 255-dək qiymətlər ala bilir. Bunların
nəticəsi olan funksiyanın qiyməti Long tipli ədəd olmaqla 0-dan 16777215 (
1
256
3
)
diapazonunda dəyişə bilir. Yəni, rəng palitrası 16 milyondan artıq çalara malikdir. Hər bir
rəng
bytBlue
bytGreen
d
byt
2
256
256
Re
düsturu ilə hesablanan ədəd vasitəsilə verilir.
Color arqumenti verilmədikdə şəkil qara rəngdə çıxır.
Line – müəyyən rənglə rənglənmiş xətt çəkmək üçün istifadə edilir:
Bu metod: object.Line (X1,Y1) – (X2, Y2) [, color] [, B] [F] kimi verilir. X1 və Y1
düzbucaqlının yuxarı sol küncnün, X2 və Y2 aşağı sağ küncünün koordinatlarını, color
xəttin rəngini, B bayraqcığı düzbucaqlı çəkməyi, F bayraqcığı rəngləməyi ifadə edir.
Circle – çevrə və oval çəkir.
Bu metod: object.Circle (X, Y), radius [, color, start, end, aspect] kimi verilir. X, Y
çevrənin mərkəzinin koordinatlarını, radius çevrənin radiusunu, color çevrənin rəngini,
start və end şüa bucağının əvvəlini və sonunu, aspekt sıxma əmsalını göstərir.
Qrafik metod ―forma‖ (Form) obyektinə tətbiq edilərkən, obyektin adının yazılışında
object sözünü yazmamaq olar.
İndi y=sinx funksiyasınin qrafikini qurmaq üçün layihə yaradaq.
114
primitiv - ibtidai
99
“Funksiyanın qrafikinin qurulması” layihəsi.
1. Forma üzərində qrafikin qurulmasının həyata keçirilməsi üçün picGraph qrafik
sahəsi yerləşdirməli.
Proqram kodunun aydın olması üçün ona izahlar (şərhlər) daxil etmək məqsədə
uyğundur. Şərhlər apostrofla başlanır.
2. Forma üzərində cmd1 düyməsi yaratmalı və hadisəvi proseduru aşağıdakı kimi
yazmalı:
Dim sngX As Single, int As İnteger
Sub cmd1_Click()
‗Miqyasın daxil edilməsi
picGraph.Scale (-10, 2)-(10, -2)
‗Qrfikin qurulması
For sngX = -10 To 10 Step 0.01
picGraph.PSet (sngX, Sin(sngX))
Next sngX
‗X oxu
picGraph.Line (-10, 0)-(10, 0)
For intİ = -10 To 10
picGraph.PSet (intİ, 0)
picGraph.Print intİ
Next intİ
‗Y oxu
picGraph.Line (0,2)-(0, -2)
For intİ = -2 To 2
picGraph.PSet (0, intİ)
picGraph.Print intİ
Next intİ
End Sub
3. Layihəni icraya buraxmalı və \textbook\VB\prjVB11\ adı ilə saxlamalı.
100
Animasiya
115
. Animasiya, multiplikasiyada olduğu kimi, kadrların (şəkillərin)
əvəzlənməsi prinsipi ilə yaradılır. Hərəkəti imitasiya (təqlid) edən proqram aşağıdakı
mərhələlərdən ibarət olmalıdır:
1.
ekranda şəklin yaradılması;
2.
şəklin gözlə görünməsi üçün pauza yaradılması;
3.
şəklin korreksiyası (dəyişdirilməsi).
“Dairənin hərəkəti” layihəsi.
1.
Dairənin hərəkət etməsi üçün forma üzərində picAnim adlı mətn sahəsi yaratmalı.
OX oxu üzrə hərəkəti dövrlə reallaşdıraq. Animasiya effektini almaq üçün dairəni göy
rənglə rəngləyib silmək lazımdır. Rəngli dairə almaq üçün FillColor xassəsinə qiymət
vermək (rəngləyəndə vbBlue, siləndə vbWhite) lazımdır. FillStule xassəsi üçün verilən
qiymət Transparent (şəffaf) və Solid (tünd) ola bildiyindən, Solid vermək lazımdır.
Dairənin hərəkət sürətini
116
tənzimləmək üçün şəkilçəkmə ilə şəkli silmə arasında boş
dövr yaradıb müvafiq sayda təkrarlamalardan istifadə etmək olar.
2. Forma üzərində cmdStart düyməsi yaradıb onun üçün aşağıdakı hadisəvi proseduru
yazmalı:
Dim intX As Integer, lngI As Long
Private Sub cmdStart_Click()
‗Miqyas
picAnim.Scale (-10, 10)-(10, -10)
‗Animasiya
For intX = -10 To 10
‗Şəkilçəkmə
picAnim.FillColor = vbBlue
picAnim.Circle (intX, 0), 1, vbBlue
‗Şəkli silmənin yubadılması
For lngI = 1 To 10000000
Next lngI
‗Şəklin silinməsi
picAnim.FillColor = vbWhite
115
Hər hansı obyektin ekranda hərəkət illüziyası
116
Şəkillərin bir-birini əvəzetmə sürətini
101
picAnim.Circle(intX, 0),1,vbWhite
Next intX
End Sub
3. Layihəni Start düyməsi ilə icraya buraxmalı və \ textbook\ VB\ prjVB12\ adı ilə
saxlamalı.
Dostları ilə paylaş: |