Mirsaid Aripov, Nurillo Otaxanov


-listing. NkEdit komponentasi moduli



Download 9,81 Mb.
bet155/209
Sana16.01.2022
Hajmi9,81 Mb.
#371485
1   ...   151   152   153   154   155   156   157   158   ...   209
Bog'liq
DELPHI dasturlash titli 2018

15.2-listing. NkEdit komponentasi moduli.

unit NkEdit;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls;

type

TNkEdit  class(TEdit)

private

FNumb: single;  tahrirlash maydonidagi soni

 Fnumb maydoniga ma`lumot kiritish va qayta ishlash



function GetNumb: single;

procedure SetNumb(value:single);

protected

procedure KeyPress(var Key: Char);

override;

public

published

constructor Create(AOwner:TComponent);

override;

property Numb : single  komponentaning hususiyati

read GetNumb;

write SetNumb;

end;

procedure Register;

implementation

 komponentani qayd qilish protsedurasi



procedure Register;

begin

RegisterComponents('Samples',[TNkEdit]);

end;

 komponenta konstruktori



constructor TNkEdit.Create(AOwner:TComponent);

begin

 don't forget to call the ancestors' constructor



inherited Create(AOwner);

end;

 FNumb maydoni bilan ishlash funksiyasi



function TNkEdit.GetNumb:single;

begin

try  Text maydoni bo`sh bo`lishi mumkin

Result : StrToFloat(text);

except

on EConvertError do begin

Result : 0; text :' ' ;

end;

end;

end;

 Fnumb maydoniga yozish protsedurasi



procedure TNkEdit.SetNumb(Value:single);

begin

Fnumb : Value;

Text : FloatToStr(value);

end;

 KeyPress xodisalarni qayta ishlash protsedurasi



procedure TNkEdit.KeyPress(var key:char) ;

begin

case key of

'0'.. '9', #8, #13: ; '-': if Length(text)<>0 then key : #0;

else

if not ((key  DecimalSeparator) and

(Pos(DecimalSeparator, text)  0)) then key : #0;

end;

inherited KeyPress(key);

 Ota klassidagi OnKeyPress protsedurasini chaqirish



end;

end.

TNkEdit klassini tavsiflashda tahrirlash maydoniga kiritilgan sonni o’ziga oluvchi Numb hususiyati e`lon qilingan. Bu hususiyat qiymatini saqlash uchun Fnumb maydoni kiritilgan. GetNumb funksiyasi Fnumb maydoniga kiritish, setNumb esa hususiyat qiymatini belgilash maqsadida qo`llangan.

TNkEdit klassi konstruktori dastlab ota klassi konstruktori- TEdit ni chaqirib, uning Text hususiyatiga qiymat beradi va Numb hususiyati qiymatini aniqlaydi.

NkEdit komponentasining biror tugma bosilishiga reaktsiyasi TNkEdit.KeyPress protsedurasi bilan aniqlanadi. Bu protsedura parametr sifatida bosilgan tugma kodini oladi. Ota klassidagi OnKeyPress protsedu- rasini chaqirishdan avval bosilgan tugmadan haqiqiy sonlarni yozishda qo`llash mumkinligi aniqlanadi. Agar NkEdit uchun mumkin bo`lmagan tugma bosilgan bo`lsa, u holda kiritilgan kod nol bilan almashtiriladi. Ma`lumki, NkEdit komponentasi uchun raqamlar, ajratuvchi belgi (nuqta yoki vergul), "minus", (noto`g’ri kiritilgan belgini o`chiradi) va tugmalaridan foydalanish mumkin halos.

Shuni yodda tutish kerakki, dastur matnida sonning butun va kasr qismi nuqta bilan ajratiladi. Ma`lumotlarni kiritishda Windows sozlani-shiga (настройка) qarab, nuqta yoki verguldan foydalaniladi. Keltirilgan OnKeyPress protsedurasi Windows sozlanishi o`zgarishi mumkinligini e`tiborga oladi va kiritilgan belgini konstanta bilan emas, balki qiymati ajratuvchi belgiga teng bo`lgan DecimalSeparator global o`zgaruvchi qiymati bilan taqqoslaydi.

Komponenta moduli matni kiritilganidan so`ng, kompilyatsiya qilinadi va saqlab qo`yiladi.


Download 9,81 Mb.

Do'stlaringiz bilan baham:
1   ...   151   152   153   154   155   156   157   158   ...   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