Скачиваний:
5
Добавлен:
20.05.2024
Размер:
311.09 Кб
Скачать

14-Lekciya. Dialog aynaları menen islew. GUI ortalıǵında dialog aynaların bir-biri menen baylanıstırıw hám xabar aynaların qáliplestiriw.

Jobası:

1.Dialog aynaların basqarıw elementleri.

2.Dialog aynaların jaratıw.

3.Dialog aynaların bir-biri menen baylanıstırıw

Dialog aynaların basqarıw elementleri. Bunda interaktiv dialog aynaları túsiniledi. Olardı jaratıw hám basqarıw programmisttiń qálewine qaray ámelge asırıladı. Joqarıda aytıp ótkenimizdey, Visual C++ te MessageBox klası haqqında joqarıdaǵı aytıp ótken edik. Ol jaǵdayda 21 túrli kombinaciyalı show funksiyası bar. Bul funkciyalar hám olardıń parametrleri hámde parametrleriniń bahaları haqqındaǵı maǵlıwmatlardı hám dialog dialog jaratılıwna hámde qayta islewge itibardı qaratamız.

1. Show(String) funkciyası. Bir argumentli funkciya bolıp, belgilengen tekst penen xabar kórsetetuǵın dialog aynasın jaratıw ushın isletiledi. Onıń kiriwshi parametri System::String tipinde bolıp, System::Windows::Forms::DialogResult tipindegi mánisti qaytaradi.

if( MessageBox::Show("Bu oddiy sohow") == System::Windows::Forms::DialogResult:

2. Show(IWin32Window,

String,

String,

MessageBoxButtons,

 

 

MessageBoxIcon, MessageBoxDefaultButton, MessageBoxOptions, String, String) funkciyası. Bul kóp paramerli bolıp, belgilengen parametler tiykarında interaktiv dialog aynasın jaratıw ushın isletiledi. Parametleri tómendegi bahaları bar.

IWin32Window Interface - System.Windows.Forms atlar keńisligi hám

System.Windows.Forms.dll kitapxanasınan paydalanıp, Win32 HWND ti engiziw interfeysin beredi. IWin32Window klass interfeysinen miyrasxor aladı. System.Windows.Forms.Control hám System.Windows.Forms.NativeWindow ulıwma ruqsat klasları interfeyslerin qollanadı, mánis retinde ComVisibleAttribute, GuidAttribute, InterfaceTypeAttribute tiplerinin qollanadı.

MessageBoxButtons -

Enum

tipindagi

parametr bolıp tabıladı.

System.Windows.Forms atlar

keńisligi

hám

System.Windows.Forms.dll

1

kitapxanasınan paydalanadı. Dialog aynalarında kórsetiliwi kerek bolǵan túymelerdi anıqlaydı. Bahaları public enum class MessageBoxButtons qa tiyisli bolıp tabıladı.

11.6-keste. MessageBoxButtons qabıl etiwshi bahalar

Mánis atı

Wazıypası

 

 

 

1

AbortRetryIg

Dialog aynasında Abort, Retry Ignore túymelerin

 

nore

ornatıw

 

 

 

 

 

2

OK

Dialog aynasında OK túymesin ornatıw

 

 

 

3

OKCancel

Dialog aynasında OK hám Cancel túymelerin ornatıw

 

 

 

4

RetryCancel

Dialog aynasında Retry hám Cancel túymelerin ornatıw

 

 

 

5

YesNo

Dialog aynasında Yes hám No túymelerin ornatıw

 

 

 

6

YesNoCancel

Dialog aynasında Yes, No hám Cancel túymelerin

 

 

ornatıw

 

 

 

Dialog aynasına MessageBoxButtons túymelerin ornatıw ushın programma

fragmenti:

if ((MessageBox::Show("Usı aynanı jabıwdı qáleysiz be?",

"Xabarlandırıw", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes)){

>Close();

MessageBoxIcon – Enum tipindegi obyekt bolıp, ol da joqarıdaǵı sıyaqlı, atlar keńisligi hám kitapxana menen isleydi. Dialog aynasında kórsetiw ushın dialog aynalarınıń túrlerin belgileytuǵın konstantalardı anıqlaydı.

Dialog aynaların jaratıw. Paydalanıwshı tárepinen dialog aynaların jaratıw ayna formasına qayta islew tiykarında ámelge asırıladı. Forma aynasına dialog

aynasın ornatıw ushın tómendegi qádemleri orınlaw kerek.

1-adım. Menyudan paydalanıp, [menu] → [project] → [addClass] → [CLR]

[Windows Form] Buyrıqlar izbe-izligi tiykarında jańa forma qosıladı. Yaki, [menu]

[project] → [add New item] → [UI] → [Windows Form] da orınlawǵa boladı.

2-adım. Jaratılǵan jańa forma aynası ótip, formaǵa tómendegishe qayta

islenedi. [Autosize] Ózgesheliktiń mánisin [true] ge, [StartPosition]

2

Ózgeshelikiniń mánisin [CenterParent] ge, [FormBorderStyle] Ózgesheligi mánisine [none], [FixedDialog], [FixedToolWindows], [SizableToolWindows] lerdiń birin ornatıw múmkin.

3-adım. Forma aynasın ózińiz qálegendey proektlestiriwińiz múmkin.

Mısalı, bir label, inputBox hám bir button jaylastıramız, olardı da kerekli qásiyetleri ornatamız.

4-adım. Tiykarǵı formaǵa ótip, oǵan #include " MyForm. h" bas bet fayldı qosamız. Bul dialog aynası ushın jaratılǵan forma áynegi menen islew ushın kerek.

5- Adım. Tiykarǵı formaǵa bir label hám bir button jaylastıramız.

Túymeniń klik hádiysesinde dialog aynasın shaqırıw programma fragmentin jazamız.

//MyForm myForm;

//myForm.Show();

//myForm.ShowDialog();

MyForm^ myFormWith = gcnew MyForm(); myFormWith->Show(); myFormWith->ShowDialog();

Programma fragmentindegi túsindirmege alıp qóyılǵan járdemide dialog aynalardı jaratıw hám shaqırıw múmkin. Biraq olardıń ayırmashılıqları bar. Sol sebepli olardıń hámmesin sol programma fragmentinde keltirdik. Birinshi qatarda formanı MyForm myForm ápiwayı obyekt retinde jaratılǵan. Onıń birinshi Show () usılı esaplanıp, bul usıl menen dialog aynasın shaqırıw logikalıq jaqtan qáte, sebebi sistema aynanı jaratadı hám ústinlikti tiykarǵı formaǵa beredi. Bul halda jaratılǵan ayna tez kórinedi. Ekinshi usılı bul ShowDialog() usıl jaqsı jantasıwlardan bolıp, dialog formasına ornatılǵan barlıq ayrıqshalıqlarǵa ámel etedi hám de paydalanıw múmkin. Ekinshi MyForm() konstruktordan paydalanıp, gcnew operatorı tiykarında jaratılǵan, onıń birinshi funkciya Show() da aldınǵısına uqsas bolıp, biraq ústinlikti paydalanıwshınıń ózine qoyıp beredi, yaǵnıy paydalanıwshı dialog aynaǵa juwap bermesten, tiykarǵı forma aynasına ótiwi múmkin. Ekinshisi bolsa bul ShowDialog () usıl jaqsı jantasıwlardan bolıp, dialog formasına ornatılǵan barlıq ayrıqshalıqlarǵa ámel etedi hám de paydalanıw múmkin.

6-adım. Dialog aynası túymesinde tómendegishe algoritmdi jazamız.

Dialog aynasına kiritilgen maǵlıwmattı tiykarǵı formaǵa alıp ótiw ushın aldın public: System::String^ email; sıyaqlı bir ózgeriwshi jaratıp alamız.

email = textBox1->Text;

this->Close(); 3

7-adım. Tiykarǵı formanıń túymesiniń hádiysesine jazılǵan

programma fragmenti dawamından tómendegin qosıp qoyamız.

label1->Text = myFormWith->email;

8-adım. Joybardı isletip jaratılǵan, dialog aynanıń islewin kóriw múmkin. Dialog aynanı joqarı dárejede jaratıw ushın oǵan jańa konstruktor jazıwda

múmkin. Onı tómendegishe ámelge asırıladı.

public: MyForm(System::String^ title)

InitializeComponent();

_title = title;

public: System::String^ _title;

//….

private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {

this->Text = _title;

// Tiykarǵı formada

MyForm^ myFormWith = gcnew MyForm("Xabar"); myFormWith- >ShowDialog();

label1->Text = myFormWith->email;

Bunday imkaniyat penen paydalanıwshı ushın qálegen dialog aynasın jaratıw múmkin.

Dialog aynalarınan paydalanıw programma paydalanıwshılarına kóplegen qolaylıqlar jaratıp beredi. Hár bir programmada bir tiykarǵı aynaǵa keminde funkcional múmkinshiligine qaray 4-5 dialog aynaları boladı.

4

Соседние файлы в предмете Объектно ориентированное программирование