14-ameliy
.docx14-ámeliy sabaq: Paydalanıwshı interfeysin proektlestiriw. GUI ortalıǵında dialog aynaların bir-biri menen baylanıstırıw.
Kóp programmalar tek bir aynadan (Form) turmaydı. Ádette, tiykarǵı aynadan basqa qosımsha aynalar, sazlawlar aynası, maǵlıwmat kirgiziw dialogları boladı. Bul sabaqta biz programmalastırıw waqtında jańa aynalardı (Form) qosıw hám olardı bir-biri menen baylanıstırıwdı úyrenemiz.
1. Jańa ayna (Form2) qosıw basqıshları
Visual Studio ortalıǵında proektke jańa ayna qosıw ushın tómendegilerdi orınlaysız:
Oń táreptegi Solution Explorer (Proekt aynası) bóliminen óz proektińizdiń atın tawıp, oń túymeni basıń.
Add (Qosıw) -> New Item (Jańa element) bólimin saylań.
Ashılǵan aynadan UI bólimine ótip, Windows Form saylań hám "Add" túymesin basıń.
Natiyjede proektińizde Form2.h degen jańa ayna payda boladı.
2. Form1 den Form2 ni ashıw (Programma kodı)
Tiykarǵı aynadan (Form1) ekinshi aynanı (Form2) ashıw ushın, dáslep Form1 kodına Form2 ni tanıtıw kerek.
1-qádem: Tanıtıw
Form1.h faylınıń eń joqarı jaǵına (basqa #pragma once yamasa #include jazıwları bar jerge) tómendegi qatardı jazıń:
C++
#include "Form2.h"
2-qádem: Ashıw ushın kod jazıw
Form1 ge bir túyme (button1) qoyıń hám ishine tómendegi kodtı jazıń:
C++
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
// Form2 ayna obyektiń jaratıw
Form2^ ayna2 = gcnew Form2();
// Aynanı kórsetiw
ayna2->ShowDialog();
}
3. Show() hám ShowDialog() ayırmashılıǵı
Show(): Ekinshi aynanı ashadı, biraq siz artqa qaytıp tiykarǵı ayna (Form1) menen de isleseńiz boladı. Aynalar ǵárezsiz isleydi.
ShowDialog(): Ekinshi aynanı "Dialog" rejiminde ashadı. Bul degeni, siz Form2 ni jappay turıp, Form1 ge óte almaysız. Maǵlıwmat kirgiziw kerek bolǵanda júdá qolaylı.
Aynanı jabıw kodı:
Qálegen aynanı (máselen Form2 ni) túyme arqalı jabıw ushın, túyme ishine mına ápiwayı kod jazıladı:
C++
this->Close();
20 ámeliy tapsırma:
Tómendegi tapsırmalar studentlerdiń GUI (grafikalıq interfeys) aynaları menen islew kónlikpelerin basqıshpa-basqısh rawajlandırıwǵa arnalǵan:
Proektke Form2 aynasın qosıń hám Form1 degi túymeni basqanda Form2 ashılatuǵın qılıń.
Form2 aynasına "Jabıw" (button1) túymesin isleń hám onı basqanda Form2 jabılatuǵın (this->Close()) qılıń.
Form1 den Form2 ni Show() usılı menen ashıwshı túyme dúziń hám aynalar arasındaǵı ayırmashılıqtı tekserip kóriń.
Form1 den Form2 ni ShowDialog() usılı menen ashıwshı túyme dúziń hám ayırmashılıqtı tekserip kóriń.
Form1 de túyme basılǵanda Form2 ashılsın, al Form1 waqtınsha kórinbey qalsın (this->Hide() buyrıǵınan paydalanıń).
Form2 aynasınıń Text qásiyetin "Sazlawlar aynası" dep ózgertiń.
Form1 de túyme basılǵanda Form2 ekrannıń tap orayında ashılatuǵın qılıń (Properties -> StartPosition -> CenterScreen).
Proektke úshinshi ayna (Form3) qosıń. Form2 ishindegi túyme arqalı Form3 ti ashıń.
Form1 de "Maǵlıwmat" túymesin jasáń. Ol basılǵanda MessageBox dialog aynası ashılıp, "Sálem, Programmalastırıw álemi!" dep jazılsın.
MessageBox arqalı "Siz haqıyqattan da aynanı jappaqshısız ba?" degen Yes/No túymeleri bar dialog aynasın shıǵarıń.
Form2 ashılǵanda avtomatikalıq túrde tolıq ekran (Maximized) kórinisinde ashılatuǵın qılıń.
Form2 niń ólshemin (Size) paydalanıwshı ózgerte almaytuǵın etip qoyıń (FormBorderStyle qásiyetin FixedSingle qılıń).
Form2 aynasınıń arqa reńin (BackColor) qızıl yamasa kók reńge ózgertiwshi túymeler dúziń.
Form2 de túyme basılǵanda, aynanıń kórinbewligi (Opacity) 50 protsentke (0.5) túsip ketetuǵın qılıń.
Form1 de TextBox hám Túyme qoyıń. Eger TextBox ishindegi parol "123" bolsa ǵana Form2 ashılsın, bolmasa qáte dep MessageBox shıqsın.
Form2 aynasında "Arqaǵa" túymesin jasáń. Ol basılǵanda Form2 jabılıp, Form1 kórinisi tiklensin (Show).
Form1 de 3 dana túyme isleń. Hár bir túyme basılǵanda Form2 ashılsın, biraq Form2 niń ataması (Text) saylanǵan túymege qaray "1-variant", "2-variant" dep ózgersin.
Form1 aynasında formanıń shegarası (FormBorderStyle) joq bolıp, ápiwayı tórtmúyeshlik kóriniste ashılatuǵın etiń (None rejiminen paydalanıń).
Form2 ishindegi "Kishireytiw" túymesin dúziń, ol basılǵanda formanıń ólshemi (Width hám Height) 100 pikselge kemeysin.
Baǵdarlamadan tolıq shıǵıp ketiw ushın arnawlı "Shıǵıw" túymesin isleń hám Application::Exit(); buyrıǵı arqalı barlıq ashıq aynalardı tolıq jabıń.
