Standart komponentasining xususiyatlari va hodisalari

|
Standart komponentasining xususiyatlari va hodisalari
|
bet | 103/131 | Sana | 13.05.2024 | Hajmi | 1,83 Mb. | | #228405 |
Bog'liq Tiplarni dinamik tarzdaStandart komponentasining xususiyatlari va hodisalari. Standart komponentalarga Toolbox oynasidagi [Common Controls] Tab dagi komponentalar kiradi. Ularni tarkibini o‘zgartirish mumkin, yaʻni yangilarini qo‘shish va keraksizlarini o‘chirib tashlash mumkin. Shuningdek, agar maxsus ishlab chiqilgan yangi komponentalar guruhi bo‘lsa ulardan ham foydalanish mumkin. Standart komponentalarni quyidagi guruhlarga bo‘linadi va shu asosida ularning hususiyatlari va hodisalari 95% bir xil bo‘ladi.
10.7-rasm. Standart komponentalar ko‘rinishi.
Bu komponentalarni oynaga joylashtirish uchun sichqonchaning chap bitta bosiladi va oynaga keltirib chap tomoni yana bir marta bosiladi va oynada tanlangan komponentaning nusxasi paydo bo‘ladi. Bu nusxani obʻyekt deb aytamiz. Chunki eslab ko‘ring, sinfning nusxasi bu obʻyekt deb aytiladi. Obʻyektning ustiga sichqonchaning o‘ng tugmasini bossangiz, u bilan bajarish mumkin bo‘lgan amallarni ko‘rasiz. Agar obʻyektdan nusxa olsangiz uning super sinfining, yaʻni shu obʻyekt tipidagi boshqa bir obʻyekt yaratiladi. Ikkita bir xil tipdagi obʻyektlarning xususiyatlari va hodisalariga alohida – alohida ishlov beriladi.
Standart komponentalarni xususiyat va hodisalarini ko‘rib chiqish uchun arifmetik amallarni bajaruvchi dastur yaratish masalasini olamiz.
Mantiqiy jihatdan sonlarni kiritish uchun 2 ta NumericUpDown, matnli yozuvlar uchun 4 ta Label, hisoblash uchun bitta Button, amallar uchun bitta CheckBox komponentlarini olamiz va oynaga quyidagi 10.8-rasmdagidek qilib joylashtiramiz.
10.8-rasm. Standart komponentalarni xususiyat va hodisalaridan
foydalanish.
Bu masalani loyiha sifatida amalga oshirish uchun quyidagi qadamlar bajariladi:
qadam. Forma xususiyatlarini o‘rnatish: BackColor xususiyatiga oq rang; font xususiyatiga 14 o‘lchamli yozuv; Icon ga maxsus ikinka; MaximizeBox xususiyatiga false qiymat; MinimizeBox xususiyatiga false qiymat; Size xususiyatiga yangi o‘lchamlar; StartPosition – CenterScreen holati; Text xususiyatiga “Easy Calculator” matnni yoziladi;
Buni qanday ajratishsh mumkin, yaʻni o‘zgargan xususiyatlarni, qiymatining matni yog‘on qora ranga kirganlari o‘zgartirilgan hisoblanadi. Bu o‘zgarishlarni dastur fragment ko‘rinida keltiish ham mumkin. Bu dastur fragmentini qo‘lda yozish kerak emas, ammo tushunarli bo‘lishi uchun keltiramiz. Buni InitializeComponent funksiyasi ichida kerakli izohlar bilan keltirilgan bo‘ladi.
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(351, 225);
this->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast(204)));
this->HelpButton = true;
this->Icon = (cli::safe_cast(resources-
>GetObject(L"$this.Icon"))); this->MaximizeBox = false; this->MinimizeBox = false;
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"Easy Calculator";
|
qadam. Label1 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->label1->Text = L"Birinchi son:";
|
qadam. Label2 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->label2->Text = L"Ikkinchi son:";
|
qadam. Label3 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->label3->Text = L"Natija:";
|
qadam. numericUpDown1 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->numericUpDown1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
qadam. numericUpDown2 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->numericUpDown2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
|
qadam. comboBox1 obʻyektining xususiyatlarini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->comboBox1->Items->AddRange(gcnew cli::array< System::Object^ >(5) {L"[+] (qoʻshish)", L"[-] (ayirish)", L"[*] (koʻpaytirish)",
L"[/] (butun boʻlish)", L"[%] (qoldiq boʻlish)"});
this->comboBox1->Text = L"tanlang...";
|
qadam. label4 obʻyektining xususiyatini o‘rnatish dastur fragmenti sifatida keltiramiz.
this->label4->Text = L"Arifmetik amal";
|
qadam. button1 obʻyektining xususiyati va hodisani o‘rnatish dastur fragmenti sifatida keltiramiz.
this->button1->Text = L"Hisoblash";
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
|
button1_Click funksiyasiga quyidagi algoritmni yozamiz.
int one = Convert::ToInt16(Math::Round(numericUpDown1->Value, 0)); int two = Convert::ToInt16(numericUpDown2->Value);
int result = 0;
label3->Text = "Natija:";
switch(comboBox1->SelectedIndex){
case 0: result = one + two; break; case 1: result = one - two; break; case 2: result = one * two; break; case 3: result = one / two; break; case 4: result = one % two; break;
default: result = 0;
break;
}
label3->Text += result.ToString();
|
Algoritmga izoh brish shart emas, chunki ko‘p kamchiliklari mavjud, masalan, bo‘lish arifmetik amalida. Ammo baʻzi xulosalarni chiqarish mumkin.
[numericUpDown1->Value] obʻyektning tanlangan haqiqiy tipdagi qiymatini qaytaruvchi xususiyat, [Convert::ToInt16] – ixtiyoriy tipni butun tipga almashtirib beradi, [label3->Text] – obʻyektning matn xususiyatini o‘zgartirishi mumkin, [comboBox1->SelectedIndex] – tanlagichning tanlangan indeksini qaytaradi, [label3->Text += result.ToString();] – obʻyektning matninga matn qo‘shish va tipni satrli tipga o‘tkazish ko‘rsatilgan.
Dastur fragmentida 3 ta belgi [::] – cinfning usullariga murojaat qilish, [->]
– obʻyektning xususiyatiga murojaat qilish, [.] obʻyektning qiymati ustida bajarilishi kerak bo‘lgan amal. Visual C++ da juda ko‘p usul, va funksiyalarni ishlatish tamoyllari bor, ularni faqat kompilyatorning imkoniyatiga qarab ajratish mumkin.
Standart komponentalarning baʻzi xususiyatlari va hodisalari, ular uchun baʻzi usullarni ishlatiyu ko‘rdik. Bularni chuqurroq o‘rganish uchun ko‘proq amaliy ishlarni bajarish kerak.
|
| |