• Configuration Properties
  • Visual Studio C ++ 2022 da bir nechta formalar(Multi form) yaratish




    Download 5,66 Mb.
    bet8/9
    Sana20.05.2024
    Hajmi5,66 Mb.
    #244731
    1   2   3   4   5   6   7   8   9
    Bog'liq
    visual studio

    Visual Studio C ++ 2022 da bir nechta formalar(Multi form) yaratish
    Dastlab loyihani "MultiForm" nomi bilan rasmdagi kabi yaratish zarur. Quyida ko’rsatilganidek Create a new project tanlanadi:

    Keyingi hosil bo’lgan oynada bir qancha loyiha yaratish turlari namoyon bo’ladi. Yaratilayotgan loyiha C++ dasturlash tilida yaratilishi ko’zda tutilganligini hisobga olinib, faqat C++ uchun chegara qo’yiladi. Buning uchun hosil bo’lgan oynaning yuqori qismida keltirilgan saralash amalga oshiriladi. Birinchi qismdan C++ tanlanadi va ikkinchi qismida esa windows operatsion tizimi uchun ilova yaratilishi ko’zda tutilib windows tanlanadi, uchinchi qismi esa All project types holatida tursa ham bo’laveradi:

    Saralash amalga oshirilgandan so’ng formali loyiha yaratish uchun CLR Empty Project(.NET Framework) turi tanlanadi:

    CLR Empty Project(.NET Framework) qismini tezkor toppish uchun yuqoridagi qidiruv uchun moslashgan qismga CLR so’zini kiritish kifoya. CLR Empty Project(.NET Framework) tanlanib Next tugmasi bosilgan holda jarayon davom ettiriladi:

    Keyingi hosil bo’lgan oynada loyihaga nom beriladi va loyihaning saqlanish joyiha ko’rsatiladi. Loyiha nomi sifatida MultiForm nomi kiritilib Create tugmasi bosiladi:

    MultiForm nomli loyixa yaratildi buni Solution Explorer bo’limida ko’rish mumkin:

    Endi yaratilgan loyixaga forma ya’ni element qo’shish lozim. Buning uchun Project menyusidagi AddNewItem qismi yoki yaratilgan loyixa papkasining ustiga sichqoncha ko’rsatkichini olib borib o’ng tugma bosiladi. Hosil bo’lgan qismdagi Add bo’limi tanlanadi. Bu jarayonni klaviaturadan Ctrl+Shift+A tugmalarini birgalikda bosish orqali ham amalga oshirish mumkin:

    Keyingi bosqichda quyidagicha oyna hosil bo’ladi. Bu yerdan chap tomonda joylashgan Visual C++ bo’limidagi UI tanlanadi. UI tanlangan so’ng o’ng tomonda hosil bo’lgan Windows Form bo’limi tanlanadi hamda pastki qismidagi Name maydoniga Forma nomi yoziladi(eslatma bu yerda formaning nomi kengaytmasi .h ko’rinishda bo’ladi va u o’chib ketmasligi zarur. Bu nom yaratilgan formaning kod qismidagi Class nomi sifatida qo’llaniladi). Formaga nom berilgandan so’ng Add tugmasini bosish orqali jarayon davom ettiriladi:

    Keyin rasmda forma yaratilganligini ko’rish mumkin bo’aldi. Buni Solution Explorer bo’limida joylashgan loyixaning Header Files papkasida hosil bo’lgan forma ko’rinishi(Design) saqlangan Form1.h fayli va Source Files papkasida hosil bo’lgan Form1.cpp fayllaridan ham bilish mumkin:



    Keyingi jarayon ikkinchi yaratish bo’ladi. Bunda birinchi formani yaratishdagi ketma-ketlik amalga oshiriladi:

    Ikkinchi formaning yaratilganligi:

    Keyingi bosqich birinchi formaning ko’rinishi tayyorlash jarayoni bo’ladi. Bunda bitta Label komponentasi olinib uning Text xususiyatiga Welcome Form 1yozuvi yozilib kerakli ko’rinish beriladi, ya’ni shrift turi, o’lchami va rangi. Bitta Button komponentasi olinib uning ham Text Xususiyatiga GO TO FORM2 yozuvi kirtiladi hamda unga ham keraklicha ko’rinish beriladi. Formaning ko’rinishi quyidagicha ko’rinishga ega bo’ladi:

    GO TO FORM2 tugamasining ustiga sichqoncha bilan ikki marta bosish orqali hosil bo’lgan funksiya, ya’ni dastur ishga tushgan vaqtda tugma bosilgandagi hodisani bajaruvchi quyidagi kod kiritiladi:

    Bu yerda tugma bosilgan joriy oyna( this kalit so’zi orqali ifodalanyapti)ning ish jarayoni to’xtatib qo’yilmasdan, Hide() funksiyasidan foydalanib ko’rinishi berkitib qo’yilyapti. Keyingi qatoridagi Form2^obj1=gcnew Form2(this) da yuqorida yaratilgan ikkinchi formaning yaratilish jarayonida yaratilgan Form2 nomli klassdan obj1 nomli obyekt yaratilish jarayoni ifodalangan. Bu yozuvning tagida hosil bo’lgan qizil chiziqlardan ma’lumki bu yerda xatolik mavjud. Xatolik sodir bo’lishiga sabab birinchi va ikkinchi forma bilan bog’lanish tashkil qilinmagan. Bog’lanishni amalga oshirish uchun ushbu kod ya’ni Form1.h ning yuqori qismiga o’tib ikkinchi formani kutubxona sifatida chaqirib qo’yiladi(#include "Form2.h"). Keyingi qatorda yaratilgan obj1 yordamida Show() funksiyasidan foydalanib ikkinchi forma namoyish qilinishi ko’zda tutilgan:

    Yuqori qismga #include "Form2.h" qilib kutubxona qo’shilgandan so’ng, pastki qismdagi obyekt olinish jarayonidagi kodga qaytganda xatoliklar kamayganini va faqat konstruktor ichida parameter sifatida berilgan this kalit so‘zida xatolik mavjudligini ko’rish mumkin:

    Bunga sabab Form 2 da parametr qabul qiladigan konstruktor yaratilmaganligidir.

    Form 2 ning kod qismiga o’tib quyidagicha konstruktor tashkil qilamiz:

    Konstruktor qo’shilgandan so’ng Form1 dagi obyekt olinish jarayonidagi kodga qaytganda xatolik bartaraf bo’lganini ko’rish mumkin:

    Keyingi bosqich ikkinchi oynani shakllantirishdan iborat bo’ladi. Form2 da 2ta tugmacha yaratiladi va 1-tugmani "Yes" va 2-tugmani "No" deb o'zgartiriladi. Keyin bitta Label komponentasi olinib unga "Are you sure you want to Exit?" so'zi bilan yorliq yaratiladi.

    Keyin "Yes" tugmachasini ikki marta bosiladi va hosil bo’lgan funksiyaga quyidagi kod kiritiladi. Ya’ni “Yes” tugmasi bosilganda Exit() funksiyasi yordamida ilovadan chiqib ketish amalga ochiriladi

    Shundan so'ng dizayn qismiga o’tib, so'ng "No" tugmachasi ikki marta bosiladi va quyidagi kod kiritiladi. Bunda dastlab this->Hide() buyrug’i yordamida joriy oyna ko’rinmaslik holatiga o’tkaziladi va obj2 nomli obyekt orqali Show() funksiyasidan foydalanib birinchi forma taqdim qilinadi:

    Bu yerda obj2 da xatolik sodir bo’lganini ko’rish mumkin, bunga sabab obj2 yaratilmaganligidir. Kodning yuqori qismiga o’tib obj2 ni yaratib olamiz va unga yaratilgan konstruktorda parameter sifatida qabul qilib olingan obj1ni o’zlashtirib qo’yamiz:

    Keyin Form1.cpp fayliga kiramiz va ushbu holatni ko’ramiz:

    Bu faylda dasturni ishga tushirishda asosiy vazifani bajaradigan main funksiyasi bo’ladi. Main funksiyasini yaratib uning ichida yaratilgan formani chaqirib ishlatishni tashkil qilinadi. Buning uchun quyidagi kod kiritiladi:

    Dastur ishga tushiriladi va quyidagi ko’rinishda ishga tushganini ko’rish mumkin bo’ladi:

    Bunda dastlab console application oynasi, so’ngra yaratilgan forma muhiti ishga tushadi. Bu foydalanuvchiga biroz noqulayliklar keltirib chiqaradi. Chunki dasturda natija console rejimiga chop qilinmagan, lekin console oynasi har safar dasturni ishga tushirganda ishga tushaveradi. Bu oynani chiqmaydigan qilish imkoniyati mavjud. Quyida ushbu jarayonni amalga oshirish bosqichlari keltirilgan:
    Yaratilgan loyihaning xususiyatlar(properties) bo’limi tanlanadi. Buning uchun loyixa papkasining ustiga sichqoncha ko’rsatkichi olib borilib o’ng tugma bosiladi va undagi Properties qismi tanlanadi yoki Alt+Enter tugmasi birgalikda bosiladi.

    Quyidagi oyna hosil bo’ladi. Bu oynadan chap tomondagi Configuration Properties bo’limidagi Linker bo’limining ichidagi System qismi tanlandi. Shundan so’ng o’ng tomonda hosil bo’lgan qismdagi Subsystem bo’limining o’ng tomon oxiridagi pastga yo’naltirilgan ko’rsatkich bosiladi. Bu yerdan quyida ko’rsatilganidek Windows(/SUBSYSTEM:WINDOWS) tanlanadi va OK tugmasi orqali tasdiqlanib chiqib ketiladi:

    Yuqoridagi jarayonlardan so’ng loyiha ishga tushirilganda endi Console oynasi ishga tushmasdan faqat yaratilgan forma oynasi ishga tushganini ko’rish mumkin bo’ladi:

    GO TO FORM2 tugmasini bosish orqali ikkinchi forma ya’ni Form2 ga o’tish amalga oshiriladi:

    Ikknchi forma ishga tushgandagi holat. Agar “Yes” tugmasi bosilsa ilovadan chiqib ketiladi, “No” tugmasi bosilsa ilova dastlabki holat ya’ni ilova yangidan ishga tushganda birinchi forma ishga tushadigan holatga o’tadi.


    Download 5,66 Mb.
    1   2   3   4   5   6   7   8   9




    Download 5,66 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Visual Studio C ++ 2022 da bir nechta formalar(Multi form) yaratish

    Download 5,66 Mb.