Mirsaid Aripov, Nurillo Otaxanov



Download 9,81 Mb.
bet47/209
Sana16.01.2022
Hajmi9,81 Mb.
#371485
1   ...   43   44   45   46   47   48   49   50   ...   209
Bog'liq
DELPHI dasturlash titli 2018

7.1-rasm. StringGrid komponentasi

Bu komponenta yacheykalari matnli ma`lumotlarni saqlaydi. 7.1-jadvalda StringGrid komponentasining ayrim hossalari keltirilgan.



StringGrid komponentasining hususiyatlari 7.1-jadval

Hususiyati

Mazmuni

Name

Komponentaning nomi.

ColCount

Jadvalning ustunlari soni

RowCount

Jadvalning satrlari soni

Cells

ustun va satr kesishgan yacheyka - cells [col, row]

FixedCols

chapdan fiksirlangan ustunlar soni.

FixedRows

YUqoridan fiksirlangan satrlar soni.

Options . goEditing

yacheykani tahrirlashga ruxsatnoma.

Options . goTab

tugmasidan foydalanishga ruxsatnoma.

Options. GoAlways. ShowEditor

Komponentaning tahrirlash rejimida bo`lishi alomati.

DefaultColWidth

Jadval ustunlarning kengligi

DefaultRowHeight

Jadval satrlarining balandligi

GridLineWidth

Jadval yacheykalarini ajratuvchi chiziq kengligi

Height

Jadvalning balandligi

Width

Jadvalning kengligi

Masala-1: A[1:5] massiv elementlarining o`rta arifmetik qiymatini hisoblang.

Yechish g’oyasi: masalaning dialog oynasi 7.3-rasmda keltirilgan. StringGrid komponentasi massiv elementlarini kiritish, Label1 va Label2 komponentalari esa izohlash va natijani ko`rsatish uchun formaga joylangan. Button1 — hisoblash jarayonini boshlaydi.

7.3-rasm. Massivni kiritish va qayta ishlash uchun dialog oyna



StringGrid komponentasi formaga boshqa ob’yektlar kabi joylashtiriladi. Shundan keyin uni 6.2-jadvalga muvofiq sozlash lozim. Height va width hossalarini forma hamda komponenta o`lchamlarini e`tiborga olib o`rnatiladi. Dasturning matni 6.2- listingda keltirilgan.

StringGrid1 komponentasining hususiyatlari 6.2-jadval

Hususiyati

qiymatlari

ColCount

5

FixedCols

0

RowCount

1

DefaultRowHeight

24

Height

24

DefaultColWidth

64

Width

328

Options . goEditing

True

Options . AlwaysShowEditing

True

Options .goTabs

True

Listing 6.2. Butun sonlarni kiritish va qayta ishlash

procedure Tform1.ButtonlClick(Sender: TObject);

var a : array[1..5] of integer;  massiv

summ: integer;  elementlar yig’indisi

sr: real;  o`rta arifmetik qiymat

i: integer;  indeks

begin

 massivni kiritish.



for I : 1 to 5 do

if Length(StringGrid1.Cells[i-1, 0]) <>0 then

a[i] : StrToInt(StringGrid1.Cells[i-1,0]) else a[i] : 0;

summ : 0;

for i :1 to 5 do summ : summ  a[i];

sr : summ  5;

 natijani chiqarish



Label2.Caption : 'Elementlarning yig’indisi: '  IntToStr(summ) #13  'O`rta arifmetik qiymati: '  FloatToStr(sr);

end;

end.

Yacheykaga matn kiritilganidan so`ng, ENTER tugmasi bosilganida kursorning keyingi yacheykaga o`tishi talab qilinsin. Bu masalani onKeyPress protsedurasi (7.3-listing) hal qiladi. Shu protseduraga kiritilayotgan ma`lumotlarni nazorat qilishi ham topshirish mumkin.



OnKeyPress protsedurasidagi Col hususiyatiga alohida e`tibor bering. Uning qiymati dastur davomida kursor turgan yacheyka nomeriga teng. Bu hususiyatdan kursorni kerakli yacheykaga o`tkazish uchun ham foydalanish mumkin. Suni yodda tutish kerakki, ustunlar va satrlar noldan boshlab nomerlanadi.

7.3-listing. OnKeyPress xodisalarni qayta ishlash protsedurasi

procedure TForm1.StringGrid11KeyPress(Sender: TObject;

var Key: Char);

begin

case Key of

#8,'0'..'9' : ;  raqamlar va klavishasi

#13:  klavishasi

if StringGridl.Col < StringGrid1.ColCount — 1

then StringGridl.Col : StringGridl.Col  1;

else key : Chr(0);  qolgan belgilar ta`qiqlangan

end;

end;

Haqiqiy sonlar kiritishni nazorat qilishga to`g’ri kelsa, OnKeyPress protsedurasi bir oz murakkablashadi. Chunki, raqamlardan tashqari ajratuvchi belgi (vergul yoki nuqta) hamda minus belgilarini ham hisobga olish kerak bo`ladi. Noto`g’ri kiritilgan ajratuvchi belgini to`g’risiga almashtiriladi. Windows ning joriy sozlanishi uchun qaysi belgi ajratuvchi ekanligini Decimalseparator global o`zgaruvchisi aniqlab beradi.

7.4-listingda haqiqiy sonlar massivini kiritish va qayta ishlash kodi keltirilgan. OnKeyPress protsedurasi faqat mumkin bo`lgan belgilarni kiritishni ta`minlaydi.

7.4-Listing. Haqiqiy sonli massivni kiritish va qayta ishlash

procedure TForm1.Button1Click(Sender: TObject);

var a : array[1..5] of real;  massiv

summ: real;  elementlar yig’indisi

sr: real;  o`rta arifmetik qiymat

i: integer;  indeks

begin

 Massiv kiritish. Agar yacheyka bo`sh bo`lsa, uni nol deymiz



for i : 1 to 5 do

if Length(StringGrid1.Cells[i-l,0])<>0 then

a[i] : StrToFloat(StringGrid1.Cells[i-1, 0]) else a[i] : 0;

summ : 0;

for i : 1 to 5 do summ : summ  a[i];

sr : summ  5;

 natijani chiqarish



Label2.Caption:'Elementlar yig’indisi: 'FloatToStr(summ)  #13'O`rta arifmetigi: '  FloatToStr(sr);

end;

 Faqat mumkin bo`lgan belgilar kiritilishini nazorat qilish



procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

#8,'0'..'9' : ;  raqamlar va tugmasi

#13:  klavishasi

if StringGrid1.Col < StringGrid1.ColCount – 1 then

StringGrid1.Col : StringGrid1.Col  1;

'.',',': begin  butun va kasr qismni ajratuvchi belgi

if Key <> DecimalSeparator then Key:DecimalSeparator; ajratuvchi belgini to`g’risiga almashtirish

if Pos(StringGrid1.Cells[StringGridl.Col, 0], DecimalSeparator)

<>0 then Key : Chr(0);  ikkinchi ajratuvchi belgini ta`qiqlash

end;

' -' :  minusni faqat birinchi belgi qilib kiritish mumkin

if Length(StringGrid1.Cells[StringGrid1.Col, 0]) <>0 then

Key : Chr(0) ;

else  qolgan belgilar ta`qiqlanadi

key : Chr(0);

end;

end;

end.

Download 9,81 Mb.

Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   209




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