bu kutubxona random funksiyasini ishlatish uchun,
ushbu funksia esa istalgan qiymatni berish uchun ishlatiladi.
85
Dasturning kodi quyida keltirilgan:
#pragma
once
#include
namespace
WindowsFormsApplication2 {
using
namespace
System;
using
namespace
System::ComponentModel;
using
namespace
System::Collections;
using
namespace
System::Windows::Forms;
using
namespace
System::Data;
using
namespace
System::Drawing;
///
///
public
ref
class
Form1
:
public
System::Windows::Forms::
Form
{
public
:
Form1(
void
)
{
InitializeComponent();
//
//TODO: konstruktor kodini qo’shish
//
}
protected
:
///
/// barcha foydalaniladigan resurslarni tozalash.
///
~Form1()
{
if
(components)
{
delete
components;
86
}
}
private
: System::Windows::Forms::
Timer
^ timer1;
protected
:
private
: System::Windows::Forms::
Button
^ button1;
private
: System::Windows::Forms::
ProgressBar
^ progressBar1;
private
: System::ComponentModel::
IContainer
^ components;
private
:
///
/// O’zgaruvchan konstruktor talab qilinadi.
///
#pragma
region
Windows Form Designer generated code
///
///
void
InitializeComponent(
void
)
{
this
->components = (
gcnew
System::ComponentModel::
Container
());
this
->timer1 = (
gcnew
System::Windows::Forms::
Timer
(
this
-
>components));
this
->button1 = (
gcnew
System::Windows::Forms::
Button
());
this
->progressBar1 = (
gcnew
System::Windows::Forms::
ProgressBar
());
this
->SuspendLayout();
//
// timer1
//
this
->timer1->Tick +=
gcnew
System::
EventHandler
(
this
,
&
Form1
::timer1_Tick);
//
// button1
87
//
this
->button1->Location = System::Drawing::
Point
(24, 14);
this
->button1->Name = L
"button1"
;
this
->button1->Size = System::Drawing::
Size
(79, 52);
this
->button1->TabIndex = 0;
this
->button1->Text = L
"Vaqtni boshlash/to\'xtatish"
;
this
->button1->UseVisualStyleBackColor =
true
;
this
->button1->Click +=
gcnew
System::
EventHandler
(
this
,
&
Form1
::button1_Click);
//
// progressBar1
//
this
->progressBar1->Location = System::Drawing::
Point
(24, 72);
this
->progressBar1->Name = L
"progressBar1"
;
this
->progressBar1->Size = System::Drawing::
Size
(100, 23);
this
->progressBar1->TabIndex = 1;
//
// Form1
//
this
->AutoScaleDimensions = System::Drawing::
SizeF
(6, 13);
this
->AutoScaleMode =
System::Windows::Forms::
AutoScaleMode
::
Font
;
this
->ClientSize = System::Drawing::
Size
(284, 262);
this
->Controls->Add(
this
->progressBar1);
this
->Controls->Add(
this
->button1);
this
->Name = L
"Form1"
;
this
->Text = L
"Form1"
;
this
->ResumeLayout(
false
);
}
#pragma
endregion
88
private
: System::
Void
timer1_Tick(System::
Object
^
sender
,
System::
EventArgs
^
e
) {
Color
^col =
gcnew
Color
();
Pen
^pen =
gcnew
Pen
(col->Black);
Graphics
^im =
this
->CreateGraphics();
int
x1,x2,y1,y2;
x1=rand();
//tasodifiy sonni olish uchun funksiya
x2=rand();
y1=rand();
y2=rand();
pen->Width=5;
if
(x1 > 200)
x1=200-(x1%200);
pen->Color=
Color
::FromArgb(x1);
if
(x2 > 200)
x2=200-(x2%200);
if
(y1 > 200)
y1=200-(y1%200);
if
(y2 > 200)
y2=200-(y2%200);
pen->Color=
Color
::FromArgb(x1,x2,y1,y2);
im->DrawLine(pen,x1,y1,x2,y2);
if
(progressBar1->Value!=
'100'
){
this
->progressBar1->Value++;
}
else
timer1->Enabled=
false
;
}
private
: System::
Void
button1_Click(System::
Object
^
sender
, System::
EventArgs
^
e
)
{
this
->progressBar1->Value=0;
//timerni yoqish/o’chirish
if
(!timer1->Enabled)
89
timer1->Enabled=
true
;
else
timer1->Enabled=
false
;
}
};
}
Progressbar komponentasi
Progressbar komponentasi All Windows Forms komponentalar panelida
joylashgan. Ushbu komponenta vaqt komponentasi bilan birgalikda ish yuritadi. Bu
component jarayonning ko’rstakchini ifoda etadi, shuning uchun siz bu jarayon qay
tarzda borayotganiga guvoh bo’lasiz. To’rtburchakli indicator chapdan o’ng tomonga
qarab to’ladi. Bu progressbarning xususiyatlari va usullari orqali to’ldiriladi.
Min va Max xossalari indicator intervali qiymatlarini belgilaydi.
Value xossasi indicator intervail ichidagi Min va Max qiymatlarini pozitsiyasini
o’zgartiradi.
Step xossasi value qiymati uchun kelib chiqishini belgilaydi.
Progressbar komponentasining ishini tashkil qilish uchun jarayonning
ko’rinishini tashkil qilish uchun timer komponentasidan foydalanish kerak: vaqtni
hisoblagichni jarayonning boshidan tashkil qilish kerak (Timer1->Enabled=true;).
Value xossasiga 0 qiymat berilishi kerak (ProgressBar1->Value=0;), va qayta
ishlovchi tick xodisasiga (ProgressBar1->Value++;) yoziladi.
Jarayon yakuniga yetgach, timerni o’chirish va indiaktorni yashirish kerak
bo’ladi. ProgressBar1->Visible=false;
Progressbarga misol, yuqorida keltirilgan timer komponentasida mavjud.
Nazorat savollari:
1. Combobox komponentasiga bandlar qanday qo’shiladi?
2. Picturebox komponentasi nima uchun ishlatiladi?
3. Timerning vaqt sozlovini qayerda amalga oshirish mumkin?
4. Progressbar komponentasi haqida ma’lumot bering
90
Tajriba ishi №14
Mavzu: DateTimePicker, Tabcontrol va PageControl komponentalari
Ishni bajarishdan maqsad: Visual Studio 2012 muhitida C++ dasturlash tilida
DateTimePicker, Tabcontrol va PageControl komponentalarining xossa va hodisalari
bilan tanishish.
Nazariy qism:
DateTimePicker komponentasi
DateTimerPicker komponentasi All Windows Forms komponentalar ro’yxatida
joylashgan. Bu komponenta calendar soat vazifasini bajarib, dasturda agarda soat
yoki sanalar ishlatiladigan bo’lsa, ushbu komponenta keng foydalaniladi.
Komponentaning ko’rinishi quyidagicha:
Showuodown xossasi orqali kun oy yillarning o’zgartirishimiz mumkin. Agarda
ushbu xossaning qiymatini true qilib belgilab bersak. Odatda ushbu xossa false
qiymatida bo’ladi.
Showcheckbox komponentasi orqali mavjud sanaga galochka qo’yish imkon
mavjud bo’ladi.
Maxdate va Mindate xossalarida maksimum kun va minimum kunlar orqali
kunlarni chegaralash mumkin bo’ladi. Value xossasida esa tanlangan kun turadi.
Misol tariqasida max kun va min kunni 01.02.2016 va 15.02.2016 kiritilgan
bo’lsa u holda siz 19.02.2016ni tanlay olmaysiz.
Format xossasining 4 xususiyati mavjud:
- Long – Uzun format, bunda sana uzun qilib yoziladi va oy harflar bilan
bitiladi. Misol uchun 10 february 2016
- Short – Qisqa ko’rinishdagi format. Bunda oy sonlar bilan ifodalanadi.
Masalan: 10.02.2016
- Time – Vaqtni ifodalovchi format.
91
- Custom – bu format faol bo’lishi uchun CustomFormat xossasiga sanani
kiritish lozim va DateTimePicker kiritilgan sanani faol qilib oladi va
o’zgarmaydi.
Do'stlaringiz bilan baham: