Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-semestr / 15-ameliy_jif

.pdf
Скачиваний:
0
Добавлен:
20.09.2026
Размер:
217 Кб
Скачать
☆
15-ámeliy jumıs. Paydalanıwshı interfeysin proektlestiriw. GUI
ortalıǵında xabar aynalardı jaratıw.
Jumıstıń maqseti: Windows Forms (C++) ortalıǵında paydalanıwshı
menen interaktiv baylanıs quralı bolǵan "Xabar aynaları"n (`MessageBox` hám arnawlı `Custom Dialogs`) jaratıw hám basqarıwdı úyreniw. Paydalanıwshıǵa maǵlıwmat beriw, eskertiw, soraw hám tastıyıqlaw alıw ushın `MessageBox` klassınıń túrli metodların qollanıw. Sonday-aq, standart `MessageBox` imkaniyatları jetkiliksiz bolǵanda, ózgeshe dizayndaǵı xabar aynaların jaratıw kónlikpelerin qáliplestiriw.
Paydalanıwshı interfeysi (UI) tek ǵana tiykarǵı ayna emes, al
paydalanıwshı menen dialog quratuǵın kishi aynalardan da turadı. Bul aynalar eki túrli boladı:
1. Standart Xabar Aynaları (`MessageBox`):
Operaciyalıq sistema (Windows) tárepinen usınılatuǵın tayın aynalar. Túymeler: `OK`, `OKCancel`, `YesNo`, `YesNoCancel`,
`RetryCancel`, `AbortRetryIgnore`.
Ikonkalar: `Information` (i), `Warning` (!), `Error` (X), `Question`
(?).
Basqarıw: `MessageBox::Show()` metodı arqalı shaqırıladı hám
`DialogResult` (basılǵan túyme) qaytaradı. Bul modallı ayna.
2. Arnawlı Xabar Aynaları (Custom Dialogs):
Programmist tárepinen jaratılǵan `Form`. Dizaynı, túymeleri hám logikası tolıq basqarıladı (mısalı, tekst
kirgiziw maydanı bar `InputBox`).
`ShowDialog()` metodı arqalı kórsetiledi.
ÁMELIY BÓLIM:
Hár qıylı xabar aynaların jaratamız. 1-mısal: Ápiwayı xabar (Information) Kod:
MessageBox::Show("Operaciya tabıslı orınlandı!", "Xabar",
MessageBoxButtons::OK,
MessageBoxIcon::Information);
Túsindirme: Bul eń ápiwayı xabar. Paydalanıwshı tek "OK" túymesin basıp, xabardı taslaydı.
2-mısal: Soraw hám juwap (Question) Kod:
System::Windows::Forms::DialogResult result;
result = MessageBox::Show("Fayldı óshirejaqsız ba?", "Tastıyıqlaw",
MessageBoxButtons::YesNo,
MessageBoxIcon::Question);
if (result == System::Windows::Forms::DialogResult::Yes) {
// Óshiriw kodı...
MessageBox::Show("Fayl óshirildi.");
} else {
MessageBox::Show("Biykar etildi.");
}
Túsindirme: `YesNo` túymeleri qoyıldı. `result` ózgeriwshisi paydalanıwshınıń qaysı túymeni basqanın saqlaydı. `if` arqalı logikanı bólip aldıq.
3-mısal: Arnawlı Xabar Aynası (Custom Dialog) Standart `MessageBox` ta tekst kirgiziw (`InputBox`) joq. Biz ózimiz dúzemiz.
1. Jańa forma (`MyInputBox.h`) qosamız.
2. Oǵan `Label` ("Atıńızdı kirgiziń:"), `TextBox` hám `Button` ("OK") qoyamız.
Kod (MyInputBox.h):
public: String^ userInput;
private: System::Void btnOK_Click(...) {
userInput = textBox1->Text;
this->DialogResult = System::Windows::Forms::DialogResult::OK;
this->Close();
}
Kod (MainForm.h):
MyInputBox^ input = gcnew MyInputBox();
if (input->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
String^ name = input->userInput;
MessageBox::Show("Sálem, " + name);
}
Túsindirme: Biz ózimizdiń `InputBox` ımızdı dúzdik. Paydalanıwshı tekst jazıp "OK" bassa, biz onı alıp, ekrana shıǵardıq.
4-mısal: Qáte xabarı (Error) Kod:
try {
int x = Convert::ToInt32(textBox1->Text);
int y = 10 / x;
} catch (Exception^ ex) {
MessageBox::Show("Qáte júz berdi: " + ex->Message, "Qáte",
MessageBoxButtons::OK,
MessageBoxIcon::Error);
}
Túsindirme: `try-catch` blogı arqalı programmanıń qulawınıń aldın aldıq hám paydalanıwshıǵa qızıl "Error" xabarın kórsettik.
ÁMELIY TAPSÍRMALAR
1. "Sálem Álem" xabarın shıǵarıń.
2. "Eskertiw" (Warning) ikonkası bar xabar shıǵarıń.
3. "Retry/Cancel" túymeleri bar xabar shıǵarıń.
4. Eger paydalanıwshı "Retry" bassa, "Qayta urınıw..." dep jazıń.
5. Xabar aynasınıń bas betine (Caption) óz atıńızdı jazıń.
6. `MessageBox` tıń default túymesin (mısalı, "No" túymesi aktiv bolıp
tursın) sazlań (`MessageBoxDefaultButton`).
7. `TextBox` bos bolsa, "Maǵlıwmat kirgiziń!" degen xabar shıǵarıń.
8. Formanı jabıw waqtında (`FormClosing`) "Shıǵıwdı qáleysiz be?" dep
sorań (`YesNo`).
9. Arnawlı `PasswordDialog` (Parol kirgiziw aynası) jaratıń. Parol durıs bolsa
`OK` qaytarsın.
10. `MessageBox` tı qollanbay, `Label` hám `Timer` arqalı 3 sekund
kóriniwshi "Toast Notification" (kishkene xabar) dúziń.
11. "Viktorina": Soraw shıǵarıń (`YesNo`). Durıs juwap bolsa 1 ball beriń.
12. `FolderBrowserDialog` qollanıp, tańlanǵan papka jolın `MessageBox` ta
kórsetiń.
13. `ColorDialog` qollanıp, tańlanǵan reńdi `MessageBox` ta kórsetiń (Hex
kodın).
14. Arnawlı `ProgressDialog` (Júklew aynası) jaratıń, `ProgressBar` menen.
15. Eger programma qáte (Exception) menen toqtasa, avtomat túrde "Qáte
haqqında esabat jiberiw" dialogın shıǵarıń.
Соседние файлы в папке 2-semestr