Информатика



Download 6,61 Mb.
bet211/338
Sana18.07.2021
Hajmi6,61 Mb.
#122213
1   ...   207   208   209   210   211   212   213   214   ...   338
Bog'liq
informatika

6.6-jadval. Xossalar.


t.r.

Xossa nomi

Vazifasi yoki qiymati

TPen elementi

1

Color

Rangni aniqlaydi.

2

Handle

deskriptorор Pen.

3

Mode

Nuqtaning bosh holati.

4

Style

Chiziqning ko`rinishi (Stil).

5

Width

Chiziqning uzunligini aniqlash.

TBrush elementi

6

Bitmap

.bmp tili fayllar uchun fon osti tanlash uchun.

7

Color

Fon rangi.

8

Handle

deskriptorор HBRUSH. WinAPI uchun qo`llaniladi.

9

Style

Fonning variantlari (stil).

Ixtiyoriy rang TColor qiymati sonli va binar amallar and, or, not, xor lar kombinatsiyasi bilan hosil qilinadi.

6.7- jadval. Xossalar.


t.r.

Xossa nomi

Vazifasi yoki qiymati

TColor qiymatlari

1

pmCopy

Aralashmagan rang.

2

pmNotCopy

ranglar orasida bog`lanish.

3

pmNot

Fonning rangi aralashgan holatga o`tadi

4

pmXor

xor ko`rsatilgan. 1 bitli ranglar to`plami

5

pmNotXor

avval pmXor ga o`tkaziladi va not amali yordamida samarali

rang tanlaniladi.



6

pmMask

Mantiqiy and, ranglar orasida bog`lanish.

7

pmNotMask

pmMask tanlaniladi, so`ng pmNot

8

pmMerge

mantiqiy or, ranglar orasida bog`lanish..

9

pmNotMerge

ranglar orasida bog`lanish.

10

pmNop

O`zgarmas rang

11

pmBlack

Qora

12

pmWhite

Oq

TColor ning qiymatlarini TPen ning Mode xossasiga qiymat qilib berish mumkin.

TBrush ning style xossasining qiymatlari quyidagicha:



6.8- jadval. Xossalar.


nomi

Ko`rinishi

nomi

Ko`rinishi

bsBDiagonal



bsDiagCross



bsFDiagonal



bsHorizontal




bsCross



bsVertical



bsClear

Bo`sh

Grafiklar turli shakllar yordamida hosil qilinadi. Biz endi ular bilan tanishamiz.

6.9- jadval. Xossalar.


Xossa nomi

Vazifasi yoki qiymati

Chiziq

MoveTo

Berilgan nuqtaga o`tish.

LineTo

LineTo – Chiziq chizish ( joriy nuqtadan berilgan nuqtagacha).

Polyline

Polyline – Tpoint ning massiv ob`yektlarini birlashtirish

Shakllar

Polygon

Nuqtalar bo`yicha soha chizadi.

Rectangle

To`g`ri burchakli to`rtburchak.

FillRect

Chegarasiz to`g`ri burchakli to`rtburchakni fonni.

FrameRect -

To`g`ri burchakli to`rtburchak atrof chiziqlarini 1 pikselga

tenglashtirish, To`g`ri burchakli to`rtburchak fonsiz.



Polygon (soha)ni grafik ko`rinishga tasvirlashga bitta listing. Bu listing kvadratni chizadi.

TPoint points[5]; points[0].x=50; points[0].y=50; points[1].x=150; points[1].y=50; points[2].x=150; points[2].y=150; points[3].x=50; points[3].y=150; points[4].x=50; points[4].y=50;

Canvas->Polygon(points,4);



Grafikli matnlarni ekranga chiqaruvchi protseduralar. TextOut – Berilgan matnni kerakli nuqtaga chiqarish.

TextExtent – matnning birinchi va oxirgi qatorlarining orasidagi o`lchamlarini qaytaradi.

TextWidth – Matnning uzunligi.

TextHeight – Matnning balandligi.

TextRect – Matnni berilgan nuqta va shaklda chiqarish.

Egri chiziq (PolyBezier). Odatda egri chiziqli grafiklar matematik formula yordamida yaratiladi. Egri chiziq chizish texnologiyasi birinchi va oxirgi chegaralar, oraliqdagi nuqtalar beriladi va burilish aniqlanadi. Masalan, listing.

TPoint points[7]; points[0]=TPoint(0,0); points[1]=TPoint(800,30); points[2]=TPoint(0,40); points[3]=TPoint(550,400); points[4]=TPoint(350,200); points[5]=TPoint(550,400); points[6]=TPoint(0,500);

Canvas->PolyBezier(points,6);



Fon. FillRect fon usulidan farqli qiziqarli FloodFill foni mavjud. Berilgan nuqtadan boshlab fon qo`yadi, xuddi PaintBrush kabi. Uning birinchi ikkita qiymati koordinatalar, uchinchisi rang, to`r`tinchisi fon turi. fsSurface va fsBorder fon turlarini qabul qiladi.

Ellipse. Bu ellipsni chizadi, to`g`ri burchakli to`rt burchak kabi.

RoundRect. Aniq chegaralangan to`g`ri burchakli to`rt burchak chizadi.

Pixels. Ikki o`lchovli massiv bo`lib piksellar ranggini saqlaydi. Birinchi o`lchov - X, ikkinchisi - Y.

Draw. Berilgan nuqtada (X,Y) TGraphic ob`yektini chiqarish. TGraphic – abstract (barcha virtual metodlar bilan) sinf. Uni dasturda to`g`ridan to`g`ri foydalanib bo`lmaydi. U meroslari - TBitmap, TIcon, TMetaFile. Bularning barchasiga rasmlar, ikonkalar, metafayllar kiradi va - .bmp, .ico, .wmf, .emf. TJPEGImage nomi sinf ham mavjudki, JPEG formatli rasmlarni ko`rsatadi.

StretchDraw. Bu ham xuddi Draw kabi, faqat bu rasmlarni TRect yordamida avtomatik masshtabga keltiradi. Masalan,

Canvas->StretchDraw(TRect(0,0,40,40),MyGraphic);

CopyRect. Bir sohani nusxalash.

CopyMode. Nusxalash usuli. Xuddi Mode xossasiga o`xshash.

Yuqoridagi funksiya va usullardan foydalanib biz C++ Builderda ixtiyoriy grafikni hosil qilishimiz mumkin. Masalan, ning garafigini chizish.



6.6-listing.

ning garafigini chizish.

Canvas->MoveTo(15,15);

Canvas->Pen->Color=RGB(255,255,0); for(int i=0;i<30;i++) {

Canvas->LineTo(i*10,(i*i)*10);}


Rangli quyosh

Canvas->MoveTo(ClientWidth/2,ClientHeight/2);

Canvas->Pen->Color=RGB(random(255),random(255),random(255)); Canvas->LineTo(random(ClientWidth),random(ClientHeight));



To`g`ri burchakli to`rtburchak.

Canvas->Rectangle(50,50,150,150);

Fon o`rnatish

Canvas->Brush->Style=bsCross; TRect tRect(0,0,100,100);

Canvas->FillRect(tRect);



Fonli ellips

Canvas->Brush->Style=bsDiagCross; Canvas->Pen->Color = clBlue; Canvas->Pen->Mode=pmNotCopy;

Canvas->Ellipse(0,0,500,500);



Matn chiqarish

AnsiString vasS="Matn";

Canvas->Font->Color=clRed; Canvas->Font->Size=50;

Canvas->TextOutA(50,50,vasS);



Besh yulduz

TPoint tPoints[6];

Canvas->Pen->Color = clRed; Canvas->Pen->Width=3; tPoints[0].x = 40;

tPoints[0].y = 10;

tPoints[1].x = 20;

tPoints[1].y = 60;

tPoints[2].x = 70;

tPoints[2].y = 30;

tPoints[3].x = 10;

tPoints[3].y = 30;

tPoints[4].x = 60;

tPoints[4].y = 60;

tPoints[5].x = 40;

tPoints[5].y = 10;

Canvas->Polyline(tPoints,5);


 Mustahkamlash uchun savollar.


  1. C++ Builderda grafik imkoniyatlarni tashkil qilib beruvchi bo`lim bormi?

  2. VCL ning vazifasi nima ?

  3. Pen va TCanvas elementi qanday element?

  4. Color xususiyatining vazifasini ayting.

  5. Tbrush elementining style xossasining qanday qiymatlarini bilasiz ?

  6. LineTo ning vazifasini ayting.

  7. Tpoint nima uchun ishlatiladi ?

  8. Grafik matnlar bilan ishlovchi protseduralarni ayting.

  9. Egri chiziqni qanday chizish mumkin ?

  10. Draw nima ?



    1. Bеrilgаnlаrni fаyllаrdа sаqlаsh.

Muhim so`zlar: LoadFromFile, SaveFromFile, TMemo, TStringList, TlistBox, TComboBox, TRichEdit, delete, insert, add, count, TFileStream.

Bilib olasiz: Fayllar bilan ishlash, ma`lumot o`qish, yozish, qo`shish, o`chirish, LoadFromFile, SaveFromFile protseduralar bilan ishlash, TMemo, TStringList, TlistBox, TComboBox, TRichEdit elementlarda matnlarni yozish, qo`shish, o`chirish qulayliklari, TFileStream sinfi bilan tanishish.

Juda ko`p visual elementlar va ba`zi sinflar fayllar bilan ishlash imkoniyatiga egadir. Asosan fayllar bilan ishlaganda quyidagi ikkita visual funksiyalardan foydalanamiz



LoadFromFile("Fayl nomi");

Faylni o`qish

SaveToFile("Fayl nomi ");

Faylni saqlash

Bu funksiyalar matnli fayllar bilan ishlash uchun qulaydir. Masalan,


6.7-listing.Faylni yuklash va saqlash.

TMemo elementi yordamida faylni yuklash va saqlash.

Memo1->Lines->Clear();

Memo1->Lines->LoadFromFile("a.txt");

......

Memo1->Lines->SaveToFile("a.txt");



......

TStringList elementi yordamida faylni yuklash va saqlash.

TStringList * ptStrintList; ptStrintList->Clear();

ptStrintList=new TStringList();



6.7-listing.Faylni yuklash va saqlash.

ptStrintList->LoadFromFile("a.txt");

......


ptStrintList->SaveToFile("a.txt");

......


ptStrintList->Free();

TListBox elementi yordamida faylni yuklash va saqlash.

ListBox1->Items->Clear();

ListBox1->Items->LoadFromFile("a.txt");

......

ListBox1->Items->SaveToFile("a.txt");



TComboBox elementi yordamida faylni yuklash va saqlash.

ComboBox1->Items->Clear();

ComboBox1->Items->LoadFromFile("a.txt");

......

ComboBox1->Items->SaveToFile("a.txt");



TRichEdit elementi yordamida faylni yuklash va saqlash.

RichEdit1->Lines->Clear();

RichEdit1->Lines->LoadFromFile("a.txt");

.....

RichEdit1->Lines->SaveToFile("a.txt");



Bu elementlardan tashqari C++ Builder da bir nechta elementlar borki, ulardan ham fayllarni yuklash va saqlashda foydalanish mumkin.

SaveToFile funksiyasidan foydalanilganda fayl bo`lmasa, funksiya bu faylni darhol yaratib beradi. Barcha fayllar matnli fayl bo`lib yaratiladi. Faqatgina TRichEdit elementi yordamida *.rtf kengaytmali fayl bilan ishlash mumkin. Shuning uchun mantiqiy yozish maqsadga muvofiqdir.



RichEdit1->Lines->SaveToFile("a.rtf");

Matnli fayllar bilan ishlaganda foydalaniladigan funksiya va ularning xossalari qatorning sonini hisoblaydi. Masalan,

Memo1->Lines->Count; RichEdit1->Lines->Count; ptStrintList->Count; ListBox1->Items->Count;

ComboBox1->Items->Count;



Barcha elementlar qator qo`shish, o`chirish imkoniyatlarini bajaradi. Masalan, elementning ikkinchi qatorini o`chirib, o`rniga yangi matnni qo`yish va matn oxirida qo`shishni olaylik.



6.8-listing. Matn qo`shish

AnsiString vasS="Yes";

TMemo elementi

if(Memo1->Lines->Count >= 2) { Memo1->Lines->Delete(1); Memo1->Lines->Insert(1,vasS); }

Memo1->Lines->Add(vasS);



TRichEdit elementi

if(RichEdit1->Lines->Count >= 2) { RichEdit1->Lines->Delete(1); RichEdit1->Lines->Insert(1,vasS); }

RichEdit1->Lines->Add(vasS);



TStrintList elementi

if(ptStrintList->Count >= 2) { ptStrintList->Delete(1); ptStrintList->Insert(1,vasS); }

ptStrintList->Add(vasS);



6.8-listing. Matn qo`shish

TListBox elementi

if(ListBox1->Items->Count >= 2) { ListBox1->Items->Delete(1); ListBox1->Items->Insert(1,vasS); }

ListBox1->Items->Add(vasS);



TComboBox elementi

if(ComboBox1->Items->Count >= 2) { ComboBox1->Items->Delete(1); ComboBox1->Items->Insert(1,vasS); }

ComboBox1->Items->Add(vasS);



Matnni saqlovchi qator soni bo`yicha ham saralash mumkin. Masalan,

AnsiString vasS;

vasS=Memo1->Lines->Strings[n]; vasS=RichEdit1->Lines->Strings[n]; vasS=ptStrintList->Strings[n]; vasS=ListBox1->Items->Strings[n];

vasS=ComboBox1->Items->Strings[n];


Keltirilgan elementlar va ularning xossalari matnli fayllar bilan ishlash imkoniyatini yaratib beradi. Eng ko`p ishlatiladigan elementlarga TMemo TrichEdit va sinflardan TStringList bilan ishlash tavsiya etiladi.

TFileStream sinfi ham borki, u yordamida matnli fayllar bilan ishlashda juda ko`p imkoniyatlar bor. Masalan, TFileStream sinfida matnli fayl bilan ishlash ancha qulayliklarni beradigan listingni keltiramiz.



6.9-listing

//yangi oqim yaratamiz va unga faylni o`qish va yozish uchun yuklaymiz. TFileStream * tfile=new TFileStream("b.txt",fmOpenReadWrite);

//kursorni (0,0) ga joylashtiramiz.



6.9-listing

tfile->Seek(0,0);

//bufferni tanlash. char *vchrgBuf;

//buffer uchun xotira olinadi.

if ((vchrgBuf = (char *) malloc(tfile->Size)) == NULL) {

// buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish

// mumkin. return; }

//buferdan axborotni o`qiymiz. tfile->Read(vchrgBuf,tfile->Size);

// bufferda axborotni o`zgaruvchi o`qib olamiz. AnsiString vasS=vchrgBuf;

//har ehtimolga qarshi vasS.SetLength(tfile->Size);

//xotirani tozalash free(vchrgBuf);

//oqimni tozalash tfile->Size=0;

// TMemo elementiga axborotni ko`rish uchun yozamiz

//Memo1->Lines->Clear(); Memo1->Lines->Add(vasS);

//axborotni o`zgartirmiz

if(Memo1->Lines->Count >= 2) { Memo1->Lines->Delete(1);

String vasS1="Salom Buxoro !!!"; Memo1->Lines->Insert(1,vasS1); }

//AnsiString ga TMemo ning ma`lumotini olamiz


6.9-listing

vasS=Memo1->Lines->GetText();

// buffer uchun xotira olinadi.

if ((vchrgBuf = (char *) malloc(vasS.Length())) == NULL) {

// // buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish

// mumkin. return; }

//matnni buferga olish. vchrgBuf=vasS.c_str();

tfile->Write(vchrgBuf,vasS.Length());

//oqimni tozalaymiz tfile->Free();

//xotirani tozalaymiz.

free(vchrgBuf);



Yuqorida keltirilgan imkoniyatlar C++ Builderda matnli fayllarga ma`lumotlarni yozish, o`qish, o`zgartirish bilan ishlash juda ko`p qulayliklarni yaratib beradi. Bundan tashqari C++ Builderda tipli fayllari bilan ham ishlash mumkin.

Download 6,61 Mb.

Do'stlaringiz bilan baham:
1   ...   207   208   209   210   211   212   213   214   ...   338




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish