11-мавзу. Мулоқот ойналари билан ишлаш


Мулоқот ойналари бошқариш элементлари


Download 0.76 Mb.
Pdf ko'rish
bet7/10
Sana14.10.2023
Hajmi0.76 Mb.
#1701804
1   2   3   4   5   6   7   8   9   10
Bog'liq
11мавзу

Мулоқот ойналари бошқариш элементлари. Бунда интерактив мулоқт қилиш 
ойналари тушинилади. Уларни яратиш ва бошқариш дастурчининг хохишига қараб 
амалга оширилади. Юқорида айтиб ўтганимиздек, Visual C++ да MessageBox синфи 
ҳақида юқоридага айтиб ўтган эдик. Унда 21 та турли комбинацияли show функциячи 
бордигини ҳам. Шунинг бу функциялар ва уларнинг параметрлари ҳамда 
параметрларининг қийматлари тўғриси маълумотларни ва мулоқот ойналарини яратишга 
ва ишлов беришга эътиборни қаратамиз. 
1.Show(String) фкнуцияси. Бир аргументли функция бўлиб, белгиланган матн 
билан хабар кўрсатадиган мулоқот ойнасини яратиш учун ишлатилади. Унинг киручи 
параметри System::String типида бўлиб, System::Windows::Forms::DialogResult типидаги 
қиймат қайтаради. 
if

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



this
->Close(); 
2.Show(IWin32Window, 
String, 
String, 
MessageBoxButtons
MessageBoxIcon
MessageBoxDefaultButton, MessageBoxOptions, String, String) функцияси. Бу кўп 
парамерли бўлиб, белгиланган паоаметлар асосида интерактив мулоқот ойнасини яратиш 
учун ишлатилади. Параметлари қуйидаги қийматлари қабал қилади. 
IWin32Window 
Interface 

System.Windows.Forms 
номлар 
фазоси 
ва 
System.Windows.Forms.dll кутубхонасидан фойдаланиб, Win32 HWND ни жорий қилиш 
интерфейси 
беради. 
IWin32Window 
синф 
интерфейсидан 
меросхўр 
олади.
System.Windows.Forms.Control ва System.Windows.Forms.NativeWindow умумий рухсат 
синфлари интерфейсларини ишлатади, қийматлар сифатида ComVisibleAttribute, 
GuidAttribute, InterfaceTypeAttribute типларини ишлатади.
MessageBoxButtons - Enum типидаги параметрдир. System.Windows.Forms номлар 
фазоси ва System.Windows.Forms.dll кутубхонасидан фойдаланади. Мулоқот ойналарида 
кўрсатилиши керак бўлган тугмаларни аниқлайди. Қийматлари public enum class 
MessageBoxButtons таълуқлидир. 
11.6-жадвал.MessageBoxButtons қабул қилувчи қийматлар 
№ Қиймат номи 
вазифаси 

AbortRetryIgnore 
Мулоқот ойнасида Abort, Retry Ignore тугмаларини ўрнатиш

OK 
Мулоқот ойнасида OK тугмасини ўрнатиш 

OKCancel 
Мулоқот ойнасида OK ва Cancel тугмаларини ўрнатиш 

RetryCancel 
Мулоқот ойнасида Retry ва Cancel тугмаларини ўрнатиш 

YesNo 
Мулоқот ойнасида Yes ва No тугмаларини ўрнатиш 

YesNoCancel 
Мулоқот ойнасида Yes, No ва Cancel тугмаларини ўрнатиш 
Мулоқот ойнасига MessageBoxButtons тугмаларини ўрнатиш дастур фрагменти: 
if
((
MessageBox
::Show(
"Joriy oynani yopishni xoxlaysizmi?"
,
"Xabar"

MessageBoxButtons
::
YesNo
) == 
System::Windows::Forms::
DialogResult
::
Yes
)){ 
this
->Close(); 

MessageBoxIcon – Enum типидаги объект бўлиб, у ҳам юқоридагидек, номлар 
фазоси ва кутубхона билан ишлайди. Мулоқот ойнасида кўрсатиш учун мулоқот 
ойналарининг турларини белгиловчи константаларни аниқлайди.
11.7-жадвал. MessageBoxIcon қабул қилувчи қийматлар 
№ Қиймат номи белгиси 
вазифаси 

Asterisk 
Қандайдир ҳодиса ҳақида фақат хабар берувчи мулоқот 
ойнаси учун иконка 

Error 
Қандайдир ҳодиса ҳақида фақат хато амал бажарилганлиги 
ҳақида маълумот берувчи мулоқот ойнаси учун иконка 
3 Exclamation 
Қандайдир ҳодиса ҳақида фақат огоҳлантириш ҳақида 
маълумот берувчи мулоқот ойнаси учун иконка. 

Hand 
Қандайдир ҳодиса ҳақида фақат хато амал бажарилганлиги 
ҳақида маълумот берувчи мулоқот ойнаси учун иконка 

Information 
Қандайдир ҳодиса ҳақида фақат хабар берувчи мулоқот 
ойнаси учун иконка 

None 
Иконкасиз мулоқот ойнаси учун

Question 
Қандайдир ҳодиса ҳақида фақат саволга жавоб олувчи 


мулоқот ойнаси учун иконка 

Stop 
Қандайдир ҳодиса ҳақида фақат хато амал бажарилганлиги 
ҳақида маълумот берувчи мулоқот ойнаси учун иконка 

Warning 
Қандайдир ҳодиса ҳақида фақат огоҳлантириш ҳақида 
маълумот берувчи мулоқот ойнаси учун иконка. 
MessageBoxIcon ни ишлатиш учун жорий формани ёпиш учун мулоқот ойнани 
ишлатиш учун дастур фрагментини келтирамиз. Бунинг учун форманинг FormClosing 
ҳодисасига қуйидаги дастур фрагментини ёзамиз: 
System::
Void
Form1_FormClosing(System::
Object
^
sender

System::Windows::Forms::
FormClosingEventArgs
^
e
) { 
if
((
MessageBox
::Show( 
"Joriy oynani yopishni 
xoxlaysizmi?"
,
"Xabar"

MessageBoxButtons
::
YesNo

MessageBoxIcon
::
Exclamation
) == 
System::Windows::Forms::
DialogResult
::
No
)){ 
e
->Cancel = 
true



Дастур фрагментида ҳодисанинг тўлиқ ёзилиши келтирилгганлигининг сабаби 
унда ҳодисага ишлрв берилган. 
11.9-расм. MessageBoxIcon билан мулоқот ойнасини яратиш. 
Мазкур ойнада йўқ тугмаси босилса, форма ёпилмайди ва аксинча ҳа тугмаси 
босилса, форма ёпилади.
MessageBoxDefaultButton - Enum типидаги объект бўлиб, у ҳам юқоридагидек, 
номлар фазоси ва кутубхона билан ишлайди. Мулоқот ойнасида стандарт тугмаларни 
ўрнатувчи ўзгармасларни белгилайди. 
11.8-жадвал. MessageBoxDefaultButton қабул қилувчи қийматлар 
№ 
Қиймат 
номи 
вазифаси 

Button1 
Мулоқот ойнасида старндарт биринчи тугмани жорий тугма сифатида 
ўрнатиш 

Button2 
Мулоқот ойнасида старндарт иккинчи тугмани жорий тугма сифатида 
ўрнатиш 

Button3 
Мулоқот ойнасида старндарт учинчи тугмани жорий тугма сифатида 
ўрнатиш 
Тугма босилганда формани ёпишни сўраш мулоқот ойнасини яратиш дастур 
фрагментини келтирамиз. 
String
^ message = 
"Joriy oynani yopishni xoxlaysizmi?"



String
^ caption = 
"Xabar"

MessageBoxButtons
buttons = 
MessageBoxButtons
::
YesNo

System::Windows::Forms::
DialogResult
result; 
System::Windows::Forms::
DialogResult
mayli = 
System::Windows::Forms::
DialogResult
::
Yes

result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button2
); 
if
( result == mayli ) 

this
->Close(); 

Одатда тугмаларнинг фарқини аниқлаш анча мураккаб, агар ОТ маска бўлса, 
фарқлаш мумкин. 
MessageBoxOptions - Enum типидаги объект бўлиб, у ҳам юқоридагидек, номлар 
фазоси ва кутубхона билан ишлайди. Мулоқот ойнасида стандарт хусусиятларни 
ўрнатиш учун фойдаланилади.
№ 
Қиймат номи 
вазифаси 

DefaultDesktopOnly 
Оддий мулоқот ойналарига ўхшайди аммо фаол 
ишчи майдонда кўрсатилади. 

RightAlign 
Мулоқот онйнасининг маълумотини тўғри 
жойлаштириш 

RtlReading 
Мулоқот ойнасида маълумотни ўнгдан чапга қараб 
ўқиш учун мослаб жойлаштириш. 

ServiceNotification 
Оддий мулоқот ойналарига ўхшайди аммо фаол 
ишчи майдонда кўрсатилади ва жавоб бермасдан 
ўтиб кетиш мумкин хусусияти мавжуд 
Тугма босилганда формани ёпишни сўраш мулоқот ойнасини яратиш дастур 
фрагментини келтирамиз. 
String
^ message = 
"Joriy oynani yopishni xoxlaysizmi?"

String
^ caption = 
"Xabar"

MessageBoxButtons
buttons = 
MessageBoxButtons
::
YesNo

System::Windows::Forms::
DialogResult
result; 
System::Windows::Forms::
DialogResult
mayli = 
System::Windows::Forms::
DialogResult
::
Yes

result = 
MessageBox
::Show( 
this
, message, 
caption, buttons, 
MessageBoxIcon
::
Question
,
MessageBoxDefaultButton
::
Button1
,
MessageBoxO
ptions
::
RtlReading
); 
if
( result == mayli ) 

this
->Close(); 

Дастур фрагментини ишлатиб кўриб, натижасини таҳлил қилиш ва нималарни 
ўнгдан чапга қараб ўқиш ўзгарганини кўриш мумкин. 


11.10-расм. MessageBoxOptions билан мулоқот ойнасини яратиш. 
Барча мулоқот ойналари каби юқорида келтирилган дастур фрагментларидан 
кўриниб турибдики, DialogResult типини қайтаради. 
3. Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String, String) функцияси. Бу функцияга 
ёрдам файли ва ички индекс файлларга кўрсаткич яратади. 
String
^ message = 
"Joriy oynani yopishni xoxlaysizmi?"

String
^ caption = 
"Xabar"

MessageBoxButtons
buttons = 
MessageBoxButtons
::
YesNo

System::Windows::Forms::
DialogResult
result; 
System::Windows::Forms::
DialogResult
mayli = 
System::Windows::Forms::
DialogResult
::
Yes

result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question
,
MessageBoxDefaultButton
::
Button1
,
MessageBoxO
ptions
::
RightAlign

"d:\tut.chm"
,
HelpNavigator
::
KeywordIndex
,
"iv"
); 
if
( result == mayli ) 

this
->Close(); 

Дастур фрагментини ишлатиб кўриб, натижасини таҳлил қилиш ва нималарни 
ўзгарганини кўриш мумкин. 
11.11-расм. Ёрдам тугмали мулоқот ойнасини яратиш. 
Дастур фрагментида эътибор билан қарасангиз, MessageBoxButtons::YesNo 
тшлатилган, аммо, мулоқот ойнасида 3 та тугма чиққан, демак ёрдам тугмасининг фаол 
ҳолатга келганининг кўриш мумкин. 
Show усулининг бошқа янги параметрларни қабул қилмаганлиги учун уларни 
ёзилиши ва дастур фрагментларидан келтирамиз. 
4.Show(IWin32Window, 
String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question
,
MessageBoxDefaultButton
::
Button1
,(
MessageBox


Options
)0, 
"d:\tut.chm"
,
HelpNavigator
::
KeywordIndex
,
"iv"
); 
5.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String, HelpNavigator) 
System::Windows::Forms::
DialogResult
r3 = 
MessageBox
::Show( 
message, caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

(
MessageBoxOptions
)0, 
"mspaint.chm"

HelpNavigator
::
Index
); 
6.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String, String) 
System::Windows::Forms::
DialogResult
r7 = 
MessageBox
::Show(message, caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

(
MessageBoxOptions
)0, 
"mspaint.chm"

"mspaint.chm::/paint_brush.htm"
); 
7.Show(IWin32Window, 
String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

MessageBoxOptions
::
RightAlign
); 
8.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String) 
System::Windows::Forms::
DialogResult
r1 = 
MessageBox
::Show( 
"
message, 
caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

(
MessageBoxOptions
)0, 
"mspaint.chm"
); 
9.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, Boolean) 
System::Windows::Forms::
DialogResult


MessageBox
::Show(message, 
caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

(
MessageBoxOptions
)0, 
true
); 
10.Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String, HelpNavigator) 
System::Windows::Forms::
DialogResult
r4 = 
MessageBox
::Show( 
this

message, 
caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

(
MessageBoxOptions
)0, 
"mspaint.chm"

HelpNavigator
::
Index
); 
11.Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, 
MessageBoxDefaultButton) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

MessageBoxOptions
::
RightAlign
); 
12.Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question
); 


13.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1
); 
14.Show(IWin32Window, String, String, MessageBoxButtons) 
result = 
MessageBox
::Show( 
this
, message, caption, buttons); 
15.Show(String, String, MessageBoxButtons, MessageBoxIcon) 
result = 
MessageBox
::Show(message, caption, buttons, 
MessageBoxIcon
::
Question
); 
16.Show(IWin32Window, String, String) 
result = 
MessageBox
::Show( 
this
, message, caption); 
17.Show(IWin32Window, String) 
result = 
MessageBox
::Show( 
this
, message); 
18.Show(String, 
String, 
MessageBoxButtons, 
MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions)
result = 
MessageBox
::Show( 
this
, message, caption, buttons, 
MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1

MessageBoxOptions
::
RightAlign
); 
19.Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon, 
MessageBoxDefaultButton, MessageBoxOptions, String, HelpNavigator, Object)
System::Windows::Forms::
DialogResult
r6 = 
MessageBox
::Show(
this
, message, caption, 
MessageBoxButtons
::
OK

MessageBoxIcon
::
Question

MessageBoxDefaultButton
::
Button1
, (
MessageBoxOptions
)0, 
"mspaint.chm"

HelpNavigator
::
KeywordIndex

"ovals"
); 
Бу усулларни .NET 5 Preview 1, .NET Core 3.1 3.0 ва .NET Framework 
4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5, 4.0, 3.5, 3.0, 2.0, 1.1 каби варинтларда 
қўллаб қуватланади.

Download 0.76 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling