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

13-Lekciya. Dialog aynaları menen islew. GUI ortalıǵında dialog aynaları hám olardı sazlaw, basqarıw elementleri.

Jobası:

1.Visual C++ ortalıǵında dialog aynaları.

2.Dialog aynaların sazlaw.

3.Dialog aynaların basqarıw elementleri.

4.Dialog aynaların jaratıw.

Paydalanıwshılar menen sistemanıń dialogın interaktiv ámelge asırıw ushın dialog aynaları kerek. Dialog aynaları 3 úlken gruppalarǵa bólinedi. Sistemalı, yaǵnıy OS menen islewge arnalǵan, interaktiv xabarlardı beriw hám anıq juwaplardı alıw ushın arnalǵan, programmisttiń yamasa paydalanıwshınıń erki menen jaratılatuǵın dialog aynaları bar.

Visual C++ ortalıǵında dialog aynaları. Joqarıda aytıp ótilgen sıyaqlı, dialog aynaların jaratıw olardı maqsetlerinen kelip shıǵıp ámelge asırıladı. Bul aynalardıń óziniń talapları bar, sol talaplar atqarılsa, ol dialog aynası bola aladı. Bul talaplarǵa tómendegiler kiredi:

1. Dialog aynasınıń bası bolıwı hám ol jaǵdayda tek aynanı jabıw túymesiniń bolıwı kerek, sistemalı menyu hám basqa túymeler bolıwı múmkin emes. Sonday jol menende ayırım jaǵdaylarda, járdem túymesin jaylastırıw múmkin.

2. Dialog aynası teris dialogqa mólsherlengenligi ushın, onıń shártin atqarmastan sistemanıń basqa aynasına ótiw múmkin emes.

3.Teris dialogtıń bir neshe túrlerin ámelge asırıwshı túymeler bolıwı kerek.

4.Dialog aynaları tiykarǵı aynadan mudamı kishi bolıwı shárt.

5.Dialog aynanıń tiykarǵı maqseti anıq keltiriliwi kerek, yamasa túri, yamasa munasábet ushın dialog aynası shıqqanlıǵı.

6.Dialog aynasınan basqa dialog aynasına ótiw múmkin emes, tiykarǵı aynaǵa ótiw

kerek.

7.Dialog aynaǵa múrajat etilgende jaratılıwı hám teris dialog qabıl etilgennen keyin yaddan óshirip taslanıwı kerek.

8.Dialog aynaǵa dinamikalıq yadlar bolıwı múmkin emes.

Bul talaplardı atqarǵan hár qanday ayna dialog aynası esaplanadı.

1

Visual C++ te OS menen interfeyske mólsherlengen dialog aynalarına [Dialogs] tab-taǵı hám [Printing] tab-taǵı barlıq komponentalar kiredi (11.1-súwretke qarań).

1- Súwret. Sistemalı dialog aynaların jaratıw komponentaları.

Visual C++ tıń hújjetlerine qarasańız sistemalı dialog aynaları ushın birden-bir dialog aynaları dizimi dúzilgen. Bul dizimge tómendegi kestede keltirilgen komponentalar kiredi.

Komponenta atı

Wazıypası

 

 

 

 

 

Paydalanıwshılar interfeys elementi reńin ornatıw imkaniyatın

1

ColorDialog

beretuǵın reńler palitrası ushın dialog aynasın kórsetedi.

 

 

 

 

 

Paydalanıwshılarǵa kerekli komponenta ushın shrift jáne onıń

2

FontDialog

qásiyetlerin ornatıw imkaniyatın beretuǵın dialog aynasın

 

 

kórsetedi.

3

OpenFileDialog

Paydalanıwshılar ushın fayldı tańlaw imkaniyatın beretuǵın dialog

 

 

aynasın kórsetedi.

 

 

 

 

 

Paydalanıwshılarǵa printerdi tańlaw jáne onıń qásiyetlerin ornatıw

4

PrintDialog

imkaniyatın beretuǵın dialog aynasın kórsetedi.

 

 

 

 

 

Paydalanıwshılar ushın baspadan shıǵarıwda PrintDocument

5

PrintPreviewDialog

basqarıw elementiniń kórinisiniń kórsetiw imkaniyatın beretuǵın

 

 

dialog aynasın kórsetedi.

 

 

 

6

FolderBrowserDialog

Paydalanıwshılar ushın papkalardı kóriw, jaratıw hám tańlaw

 

 

imkaniyatın beretuǵın dialog aynasın kórsetedi.

 

 

 

7

SaveFileDialog

Paydalanıwshılar ushın fayldı saqlaw imkaniyatın beretuǵın

 

 

dialog aynasın kórsetedi.

 

 

 

Bul komponentalar arnawlı ózgeshelikke tiykarlaǵan koponentalar bolıp olardı biliw talap etiledi.

Interaktiv xabarlardı beriw hám anıq juwaplardı alıw Visual C++ de MessageBox klası bar. Bul klass penen barlıq qálegen túrdegi dialog aynaların jaratıw múmkin. Klasstıń atlar keńisligi System. Windows. Forms bolıp esaplanadı hám kitapxanası System. Windows. Forms. dll esaplanadı. Bul dialog aynası forma klasınıń miyrasxorı esaplanadı. Ol jaǵdayda 21 túrli kombinaciyalı show funkciyashı bar. Onıń tómendegi parametrleri bar.

2

Bul paramertlerdiń ózine uyqas bahaları aldınan anıqlap berilgen bolıp, ápiwayı kóriniste dialog aynasın jaratıw múmkinshiligi beredi. Keyin bul klass paramertleri bahaları hám olarǵa

qayta islewdi kórip shıǵamız.

Paydalanıwshı tárepinen jaratılatuǵın dialog aynası forma sıyaqlı jaratıladı hám olardı proektlestiriw programmisttiń yamasa paydalanıwshınıń qálewine qaray ámelge asırıladı.

Interaktiv dialog aynaları sıyaqlı interaktiv túymelerdi jaratıw hám olardı basqarıw, kerekli

maǵlıwmatlardı alıw ushın isletiledi. Sonıda esapqa alıw kerek jaratılatuǵın dialog aynası

talaplarǵa sáykes keliwi kerek. Bul talaplardı ámelge asırıw ushın formanıń qásiyetlerine qayta islew, kerek bolsa, tiykarǵı aynada kerekli ayrıqshalıqlardı ornatıw múmkin. Bunda formanıń show usılı ámeldegi bolıp, sol arqalı forma shaqırıladı.

Klasstıń atlar keńisligi System.Windows bolıp esaplanadı hám kitapxanası

PresentationFramework. dll esaplanadı. Bul dialog aynası forma klasınıń miyrasxorı esaplanadı.

.NET 5 Preview 1, .NET Core

3.1, 3.0 hám .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

versiyaların

qollaydı.

Paydalanıwshı dialog aynaların jaratıwdı keyin tolıq kórip shıǵamız.

 

 

Dialog aynaların sazlaw. Bul dialog aynaların sazlaw ushın sistemalı dialog aynalarınan paydalanıw hám olarǵa qayta islew názerde tutılǵan. Joqarıda keltirilgen 7 dialog aynalarınan paydalanıwlar, qásiyetlerin hám hádiyselerin basqarıw haqqında aytamız.

1. 1. ColorDialog dialog aynası. Bul ayna - paydalanıwshılar interfeys elementi reńin ornatıw imkaniyatın beretuǵın reńler palitrası ushın dialog aynasın kórsetedi. Bul komponentanı formaǵa ornatılǵanda hesh qanday kórinis payda bolmaydı, biraq formanıń ishki strukturasına qosıladı. Formanıń jumısshı jaǵdayındaǵı formasınıń tómengi bóleginde onıń obyekti jaratıladı.

SolorDialog1 obyektin jaratıw arqalı basqarıladı. Onıń qásiyetleri hám hádiyseleride ámeldegi hám joybar aynasında paydalanıwshı ózgeshelikler aynasında shıǵadı. Onnan kerekli qálegen anıq ózi obyektke uyqas ózgeshelik hám hádiyselerdi ornatıw múmkin.

ColorDialog dialog aynasınan paydalanıw ushın ColorDialog () konstruktorın iske túsiriw kerek.

Programma fragmentinde dialog aynası shaqırılǵanda hám teris dialogı obyektin qaytarsa forma hám túymeniń uyqas ayrıqshalıqlar reńlerin ózgertiw algoritmi jazılǵan.

3

2- Súwret. ColorDialog dialog aynasınan paydalanıw. ColorDialog dialog aynasınıń qásiyetleri, usılları hám hádiyselerin máseleniń

áhmiyetine qaray qollanıw múmkin.

2. FontDialog dialog aynası. Bul ayna - paydalanıwshılarǵa kerekli komponenta ushın shrift jáne onıń qásiyetlerin ornatıw imkaniyatın beretuǵın dialog aynasın kórsetedi. Bul komponentanı formaǵa ornatılǵanda hesh qanday kórinis payda bolmaydı, biraq formanıń ishki strukturasına qosıladı. Formanıń jumısshı jaǵdayındaǵı formasınıń tómengi bóleginde onıń obyekti jaratıladı.

Bul dialog aynasın isletiw ushın formaǵa bir Label hám button obyektlerin ornatamız. Túyme basılǵanda Label obyektiniń tekstin jazıw qásiyetlerin ornatıwdı kórip shıǵamız. Onıń ushın túymeniń basılǵan ózgesheligine tómendegi programma fragmentti jazıw jetkilikli.

fontDialog1->ShowColor = true; fontDialog1->Font = label1->Font; fontDialog1- >Color = label1 ->ForeColor; Color color = label1->ForeColor; System::Drawing::Font^ font = label1->Font; System::Windows::Forms::DialogResult result = fontDialog1->ShowDialog(); if(result == ::System::Windows::Forms::DialogResult::OK) {

label1->Font = fontDialog1->Font; label1->ForeColor = fontDialog1->Color;

}

Programmada dáslep Label obyektiniń reń hám jazıwların saqlap alınadı, sebebi jazıwdı formatlaw dialog aynası shaqırılǵanda ámeldegi jaǵdaydı alıw ushın. Programmada reń hám jazıw bahaların saqlaw ushın ózgeriwshilerdi anıqlap alıw kerek. Dialog aynasınıń [OK] hádiysesi orınlanǵanda jazıw hám reńdi ózgertiw kórsetilgen.

4

3- Súwret. FontDialog dialog aynasınan paydalanıw.

Bul klasstıń usılları hám hádiyseleri bar. Olar ámeliy wazıypalardı orınlawda paydalanıw múmkin hám ǵárezsiz úyreniw kerek. Sebebi bir wazıypanı ámelge asırıw ushın hár qıylı algoritmlerden paydalanıw múmkin.

3. OpenFileDialog dialog aynası. Bul ayna - paydalanıwshılar ushın fayldı tańlaw imkaniyatın beretuǵın dialog aynasın kórsetedi. Bul dialog aynasıda joqarıdaǵı sıyaqlı paydalanıladı. Sonıń menen birge, klasstıń uyqas qásiyetleri, usılları hám hádiyseleri bar. Ayrıqsha ayrıqshalıqlardı kórsetiw ushın bir mısal alamız. Ol jaǵdayda túyme basılǵanda label tekstine fayldıń tolıq jolın alıw hám ornatıw ushın tómendegi programma fragmenti jazıladı.

openFileDialog1->InitialDirectory = "c:\\";

openFileDialog1->Filter = "txt files (*.txt)|*.txt|doc files (*.doc)|*.doc,*.docx|All files (*.*)|*.*";

openFileDialog1->FilterIndex = 2; openFileDialog1->RestoreDirectory = true; openFileDialog1->Title = "Fayl atın alıw";

if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK ){ if (openFileDialog1->OpenFile() != nullptr ){

label1->Text = openFileDialog1->FileName;

}

}

5

Programmanıń birinshi qatarı ámeldegi katalog ornatıladı. Sonıń menen birge, ámeldegi paydalanıwshınıń kerekli katalogların da ornatıw bahaları bar.

Keyin, fayllar tipi boyınsha filtrlew ornatıladı. Házirde 3 format ornatılǵan. Keyingi qatarda fayl keńeytpelerinen qay-qaysısı ámeldegi bolıp shıǵıwın belgilew ámelge asırılǵan. Kórsetilgen katalogtı aktivlestiriw orınlanǵan hám

dialog aynasınıń basında kerekli tekst jaylastırılǵan. Dialog aynanıń teris dialogı tekserilgen hám sol tiykarında ámel orınlanǵan.

4- Súwret. FontDialog dialog aynasınan paydalanıw.

Ádetde bul dialog aynası belgili sistemasına fayllardıń tekstin jaylastırıw ushın isletiledi. Bunı qanday ámelge asırıw múmkin. Onıń ushın kishi sonda da tekst redaktorın jaratıw kerek hám oǵan OSdan ápiwayı tekstli fayllardı júklep alıw múmkin. Fayl ishindegi maǵlıwmatlardı alıw ushın tómendegishe programma fragmentin jazıw múmkin:

openFileDialog1->Filter = "text files (*.txt)|*.txt|cpp files (*.cpp)|*.cpp|All files (*.*)|*.*";

openFileDialog1->FilterIndex = 2; openFileDialog1->RestoreDirectory = true; openFileDialog1->Title = "Fayl atın alıw"; openFileDialog1->FileName = ""; if ( openFileDialog1->ShowDialog() ==

System::Windows::Forms::DialogResult::OK){ if ( (myStream = openFileDialog1->OpenFile()) != nullptr ){

System::IO::StreamReader ^ sr = gcnew System::IO::StreamReader(openFileDialog1-

>FileName);

richTextBox1->Text = sr->ReadToEnd(); sr->Close();

}

}

6

Bul ámeliy programma fragmenti arqalı ámeliyatta sınap kóriw boyınsha analizleń.

4. PrintDialog dialog aynası. Bul ayna - paydalanıwshılarǵa printerdi tańlaw jáne onıń qásiyetlerin ornatıw imkaniyatın beretuǵın dialog aynasın kórsetedi. Aynanıń júdá kóp qásiyetleri, usılları hám hádiyseleri bar. Bulardıń ózbetinshe jumıslardı orınlaw waqtında ámelge asırıw múmkin. Sonıń menen birge, bul dialog aynanı isletiw usılları da júda kóp. Ádetde programmisttiń joybar jaǵdayınan kelip shıǵıp paydalanıladı.

printDialog1->AllowSomePages = true; printDialog1- >ShowHelp = true;

if ( printDialog1 == nullptr ) System::Windows::Forms::MessageBox::Show("pnull" ); System::Windows::Forms::DialogResult result = printDialog1- >ShowDialog(); System::Windows::Forms::MessageBox::Show(result.ToString()); if ( result == System::Windows::Forms::DialogResult::OK )

{

// docToPrint->Print(); System::Windows::Forms::MessageBox::Show("Baspaǵa shıǵarıw baslanadı");

}

Programma fragmentinde maǵlıwmatlardı baspadan shıǵarıw ushın aldın onı belgili bir shıǵıwshı aǵımǵa jazıw hám aǵımdı bolsa, hújjet formatına jaylastırıw kerek. Hújjetti bolsa, betlerdi sazlap docToPrint obyekt jaratılıwı kerek. Biraq baspadan shıǵarıwdıń túrli parametrlerin isletiw ushın dialog aynasın shıǵarıp beredi. Kerekli ayrıqshalıqlardı ornatqannan keyin ámeldi orınlaw múmkin.

7

5- Súwret. PrintDialog dialog aynasınan paydalanıw. Programma fragmentin bir joybarda jaylastırıp, qollansańız súwrettegi

sıyaqlı islewi kerek.

5. PrintPreviewDialog Dialog aynası. Bul ayna - paydalanıwshılar ushın baspadan shıǵarıwda PrintDocument basqarıw elementiniń kórinisiniń kórsetiw imkaniyatın beretuǵın dialog aynasın kórsetedi.

printPreviewDialog1->MinimumSize = System::Drawing::Size( 375, 250 ); printPreviewDialog1->UseAntiAlias = true;

printPreviewDialog1->Document = document; printPreviewDialog1->ShowDialog();

Bul dialog aynasıda joqarıdaǵı dialog aynası sıyaqlı sazlawlardı atqarǵannan keyin paydalanıw múmkin. Programma fragmentine qarasańız document obyektin jaratıw kerek. Baspadan shıǵarıwdıń obyektinen parq etken túrde aǵımdaǵı maǵlıwmattı formatlaw jáne onı shıǵıwın A4 formaǵa keltiriw arqalı ámelge asırıladı.

8

6- Súwret. PrintPreviewDialog dialog aynasınan paydalanıw.

6. FolderBrowserDialog Dialog aynası. Bul ayna - paydalanıwshılar ushın

papkalardı kóriw, jaratıw hám tańlaw imkaniyatın beretuǵın dialog aynasın

kórsetedi. Bunnan maǵlıwmatlardı kóshiriwde, papkalardı salıstırǵanda isletiw

mumkin. Dialog aynasınıń qásiyetleri, usılları hám hádiyseleri bar. Olardıń

geyparaların tómendegi programma fragmentine keltirip ótemiz.

System::IO::Stream ^ myStream; System::Windows::Forms::DialogResult result = folderBrowserDialog1-

>ShowDialog(); if ( result ==

System::Windows::Forms::DialogResult::OK ) {

System::String^ folderName = folderBrowserDialog1-

>SelectedPath; openFileDialog1->InitialDirectory = folderName;

openFileDialog1->FileName =

String::Concat(folderName,"\\1.cpp"); if ( (myStream =

openFileDialog1->OpenFile()) != nullptr ){

System::IO::StreamReader ^ sr = gcnew System::IO::StreamReader(openFileDialog1-

>FileName);

richTextBox1->Text = sr->ReadToEnd(); sr->Close();

}

}

Programma fragmentinde papka ushın dialog aynası shaqırılǵan hám kórsetilgen papkadan 1. cpp faylın júklep kelgen. Bunday jaǵday fayl menejerler ushın papka daǵı fayllardıń kestesinde alıw múmkin.

9

Programma fragmentinde bir StreamReader aǵım jaratılǵan. Aǵım fayldıń maǵlıwmatların oqıw ushın jaratılǵan. Aǵımnıń konstruktorı tiykarında aǵıs obyekti jaratıladı. Bul aǵımnıń ReadToEnd funkciyası arqalı richTextBox-qa maǵlıwmatlar jaylastırıladı. FolderBrowserDialog dialog aynasınıń kórinisi tómendegishe:

7- Súwret. FolderBrowserDialog dialog aynasınan paydalanıw.

Bul dialog aynası tek ǵana tekstli maǵlıwmatlardı ǵana emes al, paydalanıwshınıń qálegen maǵlıwmatın tekst yamasa qandayda bir kodlaw arqalı saqlaw múmkin. Dialog aynasınıń kórinisi tómendegi súwrette keltirilgen.

8- Súwret. SaveFileDialog dialog aynasınan paydalanıw

10

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