Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тапсырма №3.






Алдымен, программаның орындалуына байланысты екі мә селені қ арастырайық.

1. Программада ә рбір операндағ а енгізу қ алай жү зеге асырылады;

2. Егер пайдаланушы жазудан қ ате жіберсе не болады?

Бірінші мә селе бойынша біздің программада edinput деп аталатын бір ғ ана енгізу жолы жә не Bbrun бір батырмасы бар (Bbclose батырмасы программа жұ мысын тоқ тату ү шін қ олданылады). Есептеуді басқ а жолмен де ұ йымдастыруғ а болады. Ең оң ай жолы формағ а тағ ы бір батырма қ осу қ ажет. Бірінші, батырманы тышқ анмен белгілеу – енгізу жолында 1-операнданың дайын болғ анын білдіреді, екінші рет басуда – 2-операнда дайын, нә тижені есептеуге болады.

Сонымен, Bitbtn деген жаң а батырма орналастырамыз, ол Bbrun батырмасын толық жабатындай болуы тиіс, жаң а батырманы Name→ Bbresult деп атаймыз, оғ ан Kind-bkok жә не ол уақ ытша кө рінбейді, қ асиетке Visible-False мә нін береміз. Осындай дайындық тан кейін жұ мыс басында жаң а батырма кө рінбейді, Bbrun батырмасының басылуына кедергі жасамайды.

 

 

 

4.6-сурет. EditMask қ асиетінің сұ хбат терезесі.

 

BbRunClick oқ иғ а ө ң деушісінде Bbrun батырмасын жасырып, пайдаланушы екінші операнданың енгізілуін мақ ұ лдау ү шін BbResult батырмасын кө рсетуі қ ажет.

Екінші мә селенің негізгі мә ні пайдаланушының жіберген қ атесіне байланысты, мысалы, бү тін сан дұ рыс енгізілмейді. Бү тін санның дұ рыс енгізілмеуі программа жұ мысының дұ рыс аяқ талмауына ә келеді. Бұ л мә селені шешудің тә сілдері ө те кө п, оның ең қ арапайымы – бір жолдық қ арапайым редакторды пайдаланушының енгізген мә нін қ адағ алап (бақ ылап) отыратын арнайы редактормен алмастыру. Ол ү шін формадан редакторын ө шіріп, оның орнына Additional бетіндегі Maskedit компонентін орналастырамыз. Бұ рынғ ыдай Name қ асиетінде атын беріп, EditMask қ асиетінің сұ хбат терезесін ашың ыз (4.6-сурет).

Бұ л қ асиет комконенттің маскасын кө рсетеді, яғ ни пайдаланушы енгізу терезесіне қ андай символды қ андай ретпен енгізетінін анық тайық.

InputMask жолына #99999999; 1; енгізің із. Character for Blanks терезесіне “-” (пробелді) бос орынды кө рсетіп, ОК батырмасымен терезені жабың ыз. Қ ұ рылғ ан маска компонентке пайдаланушының енгізген мә ндерінің автоматты тү рде бақ ылануын талап етеді жә не қ осу (+) немесе алу (-) белгілері мен бірінші орындағ ы («#»)маска элементі жә не цифрлардан басқ а белгілерді қ абылдамайды.

Енді программаны кодтауғ а бә рі дайын. BbResult батырмасын тышқ анмен екі рет белгілеп, осы батырманың OnClick оқ иғ а ө ң деушісі ү шін тө мендегідей код енгізің із:

Procedure TfmExample.BbResultClick(Sender: Tobject);

//екінші операнданы енгізуді ө ң деу

Begin

//Edinput жолындағ ы мә тінді бү тін санғ а тү рлендіреміз;

Y: =STRTOInt(Trim(edinput.text));

//memo-ғ а 2-операнданы енгізу туралы хабарлаймыз;

mmOutput.Lines.Add(‘2-операнда: ’ edinput.Text);

//нә тижені есептен шығ арамыз;

mmOutput.Lines.Add(‘нә тиже’+IntTostr(x)+’*’+IntToStr(y)+’=

’Inttostr(x*y));

Edinput.Text: =’’; //енгізу жолын тазалаймыз;

Edinput.setfocus; //енгізу фокусын береміз;

Lboutput.caption: =’1-операнданы енгізің із: ’;

BbresultHide; //Bbresult батырмасын жасырып қ оямыз;

Bbrun.show //Bbrun батырмасы экранда кө рініп тұ рады;

End;

Bbrun батырмасының оқ иғ а ө ң деушісін енгізу ү шін Объектілер Инспекторы терезесінің жоғ арғ ы бө лігінен іздеп тауып (ол BbResult батырмасымен толық жабылғ ан болатын), Events бетінің OnClick жолының оң жақ бағ анын екі рет белгілеу қ ажет. Одан кейін тө мендегідей мә тін енгізіледі:

 

Procedure TfmExample.BbRunClick(Sender: Tobject);

//1-операнданы енгізуді ө ң деу

Begin

//Edinput жолындағ ы мә тінді бү тін санғ а тү рлендіреміз;

x: =strtoint(Trim(edinput.text));

//memo-ғ а 1-операнданы енгізу туралы хабарлаймыз;

mmOutput.Lines.Add(‘1-операнда: ’ +edinput.Text);

//нә тижені есептен шығ арамыз;

Edinput.Text: =’’; //енгізу жолын тазалаймыз;

Edinput.setfocus; //енгізу фокусын береміз;

Lboutput.caption: =’2-операнданы енгізің із: ’;

Bbresultshow; //Bbresult батырмасын кө рсетеміз;

Bbrun.hide //Bbrun батырмасын жасырып қ оямыз

End;

 

Енді программаны жү ргізер алдында компонентіне енгізу фокусын беріп, х, у айнымалыларын сақ тайтын операндаларды анық тау ғ ана қ алды. Программа коды терезесінің басынан TfmExample класының сипатталуын іздеп, оғ ан тө мендегідей тү зетулер енгізу қ ажет:

Private

{Private declarations}

x, y: integer;

 

Объектілер инспекторы терезесінде тізімді таң даудың кө мегімен TfmExample формасын таң дап, Events бетінен OnActivate жолын тышқ анмен екі рет белгілеу арқ ылы тө мендегідей оқ иғ аны ө ң деуші процедураны енгіземіз:

Procedure TfmExample.formActivate(Sender: Tobject);

//жұ мыс басына дайындық;

Begin

Edinput.SetFocus; //Edinput редакторына енгізу фокусын береміз;

LBOutput.caption: =’1-операнданы енгізің із’;

End;

 

 

Программағ а тү сініктеме

Private

{Private declarations}

x, y: integer;

 

жолының кө мегімен, біз TfmExample класындағ ы х, у бү тін айнымалыларын анық тадық, осы анық таудан кейін олар осы кластың кез келген ә дісімен, оның ішінде OnClick оқ иғ аны ө ң деушімен де пайдалануғ а мү мкіндік болды. Мұ ндай текті айнымалылар бір-бірімен ө зара ә рекеттесу ә дісін жең ілдетеді (оларды кластың ө рістері деп атайды). Біздің жағ дайда, 1-операнда х айнымалысы бір ә діспен енгізіліп (BbrunClick), (BbresultClick) ә дісіне пайдаланылады.

Екі OnClick оқ иғ аны ө ң деушінің де операторлары бірдей. Олардың ә рқ айсысының басына меншіктеу операторы, ал оң жағ ында.

Strtoint(Trim(edinput.Text))ө рнегі бар.

Бұ л ө рнек стандартты Object Pascal ү шін тө мендегі функцияны шақ ырудан тұ рады: алдымен, Trim функциясы шақ ырылады, ол жолғ а аргумент береді (біздің жағ дайда edinput.text), оң жағ ынан да, сол жағ ынан да бос орын қ алдырмайды. Одан кейін Strtoint функциясының кө мегімен символдар жолын бү тін санғ а айналады.

Strtoint тү рлендіру функциясы символдық берілгендерді бү тін санғ а айналдыруда кететін қ ателерге ө те сезімтал. Біздің жағ дайда мү мкін болатын қ ателер Maskedit редакторы мен Trim функциясы арқ ылы жойылады. Егер Bbrun немесе Bbresult батырмаларын басқ анда, редакторда мә тін болмаса, программа жұ мысы ақ аумен аяқ талады. Мұ ндай жағ дайды болдырмас ү шін Strtoint функциясының алдына

If edinput.Text=’’then exit;

Жолын енгізу қ ажет. Бұ л оператор edinput компонентінің енгізу терезесінде мә тін болмаса, ө ндеушінің жұ мысын аяқ тайды.

Ұ сынылатын ә дебиеттер: [1-9]

Бекіту сұ рақ тары:

1. Форма бетіне орналасатын компоненттердің қ асиеттеріне сипаттама берің дер.

2. Caption қ асиетінің қ ызметі қ андай?

3. Name қ асиеті нені сипаттайды?

4. Форманың ө лшемдері қ алай тағ айындалады?

5. Memo кө п жолдық редакторын іске қ осу қ алай жү зеге асырылады?

6. Программаны орындауды жү зеге асыру ү шін қ андай компоненттерді пайдалануғ а болады?

7. Формалар архивке қ алай тасымалданады?

8. Жоба дегеніміз не жә не оның қ ұ рылымы қ андай?

Жобаның ә рбір бө ліміне сипаттама берің із.

9. Қ ызметші сө здер дегеніміз не?

10. Модуль дегеніміз не жә не оның қ ұ рылымы қ андай?

11. Интерфейсті хабарлау қ андай сө зден басталады жә не онда не жазылады?

12. Орындау секциясы қ андай сө зден басталады жә не қ ызметі қ андай?

13. Object Pascal тіліндегі типтер дегеніміз не?

14. Класс, ұ рпақ, аталық -класс ұ ғ ымдары нені сипаттайды?

15. Программа элементтері дегеніміз не?

16. Программа элементтеріне нелер жатады жә не ә рқ айсысына сипаттама берің із.

17. Идентификаторлар дегеніміз не?

18. Қ осалқ ы программалар дегеніміз не жә не қ андай қ ызмет атқ арады?

19. Object Pascal тіліндегі типтердің атқ аратын қ ызметі қ андай?

20. Жолдық тип дегеніміз не жә не оларғ а қ андай операциялар қ олданылады?

21. Жолды бү тін санғ а жә не керсінше тү рлендіретін функция қ алай аталады? Жазылу форматы қ андай?

22. Келтірілген мысалда MaskEdit компоненті не ү шін пайдаланып отыр?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.