228
Бексарыұлы Мұратбек DELPHI ВИЗУАЛДЫ БАҒДАРЛАМАЛАУ ЖҮЙЕСІ әдістемелік оқу құралы 4

Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Embed Size (px)

Citation preview

Page 1: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бексарыұлы Мұратбек

DELPHI ВИЗУАЛДЫБАҒДАРЛАМАЛАУ

ЖҮЙЕСІ

әдістемелік оқу құралы

2013 жыл

4

Page 2: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Қызылорда облысы бойынша педагогикалық қызметкерлердің біліктілігін арттыру институты Ғылыми Кеңесінің 2012 жылғы 26 желтоқсандағы шешімімен (№ 4 хаттама) мақұлданып, облыс мектептерінде пайдалану үшін таратылуға ұсынылған.

Дайындаған:Бексарыұлы Мұратбек – жоғары санатты информатика пәні мұғалімі.

Пікір жазғандар:С.С.Үсенов – педагогика ғылымдарының докторы, академиялық профессор, Қорқыт Ата Қызылорда мемлекеттік университеті, «Информатика» кафедрасының меңгерушісі.О.А.Орманов – «Өрлеу» біліктілікті арттыру ұлттық орталығы АҚ филиалының Қызылорда облысы бойынша педагогикалық қызметкерлердің біліктілігін арттыру институтының аға оқытушысы.

Бұл әдістемелік оқу құралы Delphi обьектілі-бағдарланған бағдарламалау жүйесін пайдаланып, бағдарламалар құрып үйренуге арналған. Әдістемелік құрал теориялық және практикалық бөлімдерден тұрады және олар студенттер мен оқушылардың, осы сала мамандарының жұмыс барысында пайдалануына барынша ыңғайлы етіп құрылған.

Оқу құралының құрылымы жинақы, автордың материалды баяндау тілі тартымды әрі қазіргі ғылыми және терминологиялық талаптарға толықтай сай келеді.

Оқу құралының осы ерекшеліктері бағдарламалау тілін жетік меңгергісі келген барлық оқырмандардың сұранысын белгілі дәрежеде өтеуге көмектесеріне сөз жоқ.

5

Page 3: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мазмұны

Автордан .........................................................................................4I. Delphi визуалды бағдарламалау жүйесі. Кіріспе .....................5 1. Delphi-дің басты терезелері ...................................................5 2. Delphi компоненттері палитрасының беттері ......................9 3. Delphi компоненттері – визуалды жобалаудың негізі ........17 4. Delphi оқиғалары ....................................................................20 5. Delphi тілі. Айнымалылар, тұрақтылар және олардың типтері ......................................................................22 6. Мәліметтердің өздік және құрылымдық типтері .................26 7. Өрнектер және операторлар ..................................................32 8. Файлдармен жұмыс істеуге арналған компоненттер ..........37 9. Файлдармен тікелей жұмыс ..................................................40 10. Файлдарды ашудың және сақтаудың диалогтары .............45 11. Қосымша пішіндермен жұмыс ............................................48 12. Ішкі бағдарламаларды құру және оларды қолдану ...........53 13. Delphi-дегі ерекше жағдайлар .............................................57 14. Delphi-дегі жолмен жұмыс ..................................................58

II. Бағдарлама құрып үйрену. Практикалық жұмыстар .............63 №1 «Менің алғашқы бағдарламам» ..........................................63 №2 Консольдық қолданба құру ................................................65 №3 «Сәлемдесу» .................................... ....................................67 №4 Пішіннің тақырыбын өзгерту .............................................69 №5 «Қозғалмалы батырма» .......................................................72 №6 «Альбом» ..............................................................................74 №7 Мәзірмен жұмыс ..................................................................77 №8 Сөйлем құраушы ..................................................................82 №9 Көбейту кестесі ....................................................................85 №10 Фигураларды қозғалту .......................................................89 №11 Пайызды есептеу ................................................................93 №12 Ллойд басқатырғышы ........................................................95 №13 Калькулятор ........................................................................98 №14 Жиымдағы кездейсоқ сандардың индексін табу ............102 №15 Уақыт есептеуіш ................................................................105 №16 Оятқыш сағат .....................................................................107 №17 Олимпиада жалауы ............................................................110 №18 Функция графигін салу .....................................................111

6

Page 4: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мазмұны

№19 Еске сақтау тесті ................................................................116 №20 Электр тізбегінің кедергісін табу ....................................120 №21 Ом заңы ..............................................................................123 №22 Спортсменнің жүгіру жылдамдығын есептеу ................128 №23 Файл іздеу ..........................................................................132 №24 Файлға жазба қосу ............................................................136 №25 Файлдан оқу .......................................................................138 №26 Жұлдыздар .........................................................................140 №27 Мәліметті басып шығару ..................................................142 №28 Тир ......................................................................................146

7

Page 5: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Автордан

Информатика пәнін неғұрлым терең, әрі тиянақты оқып үйрену үшін педагогика мен дидактиканың негізгі талаптары толық ескерілгені жөн. Мұнда оқытудың басты бағыттары: теориялық, технологиялық және қолданбалы негіздері өзара бірлікте жүргізілуі тиіс.

Осы айтылған бағыттар қазіргі информатика оқулықтарында толық қамтылмай, көбінесе оқушыларды бағдарламаларды дайын күйінде пайдаланудың қыр-сырына үйретумен ғана шектелуде. Әрине, компьютермен, оған орнатылған программалармен жұмыс істей білу дағдыларын игерту қажет-ақ.

Алайда, осыған бейімделген оқушы информатика пәнінің ең басты міндетін – бағдарламалау негіздерін оқып-үйренуге құлықты болмайды және өздігінше түрлі бағдарламалар құра білу дағдысын игермейтін болады. Бұл жағдайда оқушының информатика пәніне деген ынтасы азаяды, олар компьютерді ойын құралы ретінде түсініп, солай пайдалануға үйренеді.

Бүгінгі жаңа техникалар мен технологиялардың сәт сайын даму үрдісіне шыдас беріп, оларды үйренуден қалыс қалмау үшін мемлекеттік тілде информатика ілімінің іргетасы – бағдарламалау негіздерін оқытуға қажетті оқу-әдістемелік құралдарды әзірлеуге баса көңіл бөлінгені жөн деп есептеймін. Міне осы мақсатты көздеп, оқушылар назарына соңғы кезде көп қолданылып жүрген – Delphi визуалды бағдарламалау жүйесі туралы жазылған еңбегімді ұсынып отырмын.

Бұл әдістемелік оқу құралында осы жүйенің құрылымы мен олардың басты компоненттерінің атқаратын қызметтері және оларды практикада қолдану жайы жинақты түрде қарастырылған.

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

8

Page 6: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

I.Delphi визуалды бағдарламалау жүйесі

Кіріспе.Елімізде соңғы жылдары дүние жүзінің дамыған

мемлекеттерінде кең қолданылып жүрген бағдарламалау тілдеріне деген сұраныс артуда. Соған байланысты осы тілді үйренуге талап қылған жастарымызды сол бағдарламалау тілдерін қазақ тілінде оқып-білуі үшін солардың мектеп оқулықтарына енбеген бағдарламалау жүйелерімен таныстырайық.

Бағдарламалаудың жалпы модульдік, обьектілі-бағдарланған және құрылымдық сияқты негізгі әдістері бар. Ол әдістердің ішінен обьектілі-бағдарланған түріне тоқталайық. Бұл әдіс обьектілі-бағдарланған визуалды бағдарламалау тіліне негізделген. Мұндай бағдарламалау тілдеріне: Smalltalk, C++, Actor, Iava және басқалар жатады. Соңғы жылдары дайындалған бағдарламалар осы визуалды бағдарламалау тәрізді жүзеге асырылады.

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

Ондай жүйе қатарына: Visual Basic, Delphi, C++ Builder, Visual C++ және тағы басқалар енеді.

Осы жүйелер ішінен бағдарламалаушылар арасында жиі қолданылып жүрген Delphi визуалды бағдарламалау жүйесінің 7.0 версиясын қарастыруға кірісейік.

1. Delphi – дің басты терезелері.

Delphi бағдарламасын жүктейік. Сонда экраннан оның төмендегі 4 терезесі көрінеді.

Осылардың тұтас созылып жатқаны – бас терезе. Сол жақтағысы – обьектілер терезесі. Ол терезеде осы бағдарламаны құрайтын компоненттердің қасиеттері беріледі. Ортасында бірінің үстіне бірі орналасқан екі терезе – болашақ бағдарламаның Пішіні/формасы/ және бағдарламасы бар терезе тұр. Пішін терезесі енді дайындалатын бағдарламаның визуалды көрінісі болып табылады.

9

Page 7: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Дельфи-де бағдарлама дайындау үшін мына әрекеттерді орындау жеткілікті:

1. Бас терезедегі үшбұрышты жасыл бағдаршаға маус нұсқағышын қойыңыз;

2. Сол кезде Run(F9) көмексөзі көрінеді;3. Осы батырманы басамыз (немесе F9 пернесін) ;4. Міне дайын бағдарлама алдық.

Бағдарлама әдетте, C:\Program Files\Borland\Delphi7\ Projects бумасында құрылады.

10

Page 8: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Осы орыннан оны қажет орынға көшіруге болады. Жұмыс істеуге қолайлы болуы үшін оның жарлығын жұмыс столына орналастырған ыңғайлы. Әзірше бос терезеден тұратын бағдарлама құрылды. Дегенмен онда Windows-тың барлық бағдарламасына тән: тақырып жолы, жүйелік меню, жиыру, жаймалау, жабу батырмалары сияқты атрибуттар бар және бұл терезенің өлшемдерін өзгертуге болады. Пішін-бағдарламаны жабайық. Осы пішіннің пайдалы қасиеттерін қарастырайық:

1. Caption – тақырыптағы жазудың қасиетін анықтайды. Бізде бұл Form1 пішіні, ол Name қасиетімен сәйкес келеді. Обьектілер инспекторы арқылы ол қасиетті қалауымызша ауыстыруға болады. Caption қасиетіне «Алғашқы бағдарлама» деп жазайық.

2. Color – түсті білдіреді.3. Width және Height – терезенің пикселмен берілген ені мен

биіктігін білдіреді. Маус арқылы Пішіннің жиектерін қозғап, өзгертуге болады. Ал оның нақты өлшемін обьектілер инспекторы арқылы атқарған қолайлы.

4. Пішіннің экрандағы орны – Top және Left қасиеттері арқылы беріледі. Олар пішіннің экранның сол жақ және жоғарғы шекарасынан қашықтығын білдіреді. Егер Пішіннің қажетті өлшемі Delphi-дің басқару элементтерін жауып тастаса, онда жинай салыңыз.

5. Position қасиеті арқылы Пішіннің қажетті орынға автоматты түрде орналасуын реттеудің мынадай мүмкіндіктері бар:- poDesigned мәнінде Пішін бағдарлама жобалаушы-сының

белгілеген орнынан көрінеді, ол үнсіз келісім бойынша қойылған мән. - poDesktopCenter және poScreenCenter мәндерінде Пішін экранның немесе жұмыс столының ортасында орналасады. - poMainFormCenter мәні бойынша Пішін бас терезенің ортасында көрінеді. - poOwnerFormCenter мәні арқылы Пішін шақырылған терезенің ортасынан пайда болады.

6. Сіз Пішіннің қалыпты түрде не ең кіші немесе ең үлкен өлшемде көрінуін оның WindowsState қасиетінің –

11

Page 9: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

wsNormal, wsMinimized, wsMaximized сәйкес мәндері бойынша бағдарламалауыңызға болады. Барлық терезенің тақырыбында жиыру, жаймалау және жабу батырмалары бола бермейді.

7. Олардың болу не болмауын BorderIcons қасиеті арқылы басқарады. Ол үшін обьектілер инспекторының сол жағында таңбасын ашатын – True, оны жабатын – False мәндері бар. Ал Пішіннің biSystemMenu=False мәнінде терезені ALT+F4 батырмаларының көмегімен жабу қажет.

8. Пішіннің шекараларын басқару қызметін BorderStyle қасиеті атқарады. Оның:- bsSizeable мәні – Пішіннің қалыпты түрін анықтайды;

- bsNone мәнінде Пішіннің шекарасы болмайды(тақырып жолы да); - bsSingle мәнінде Пішіннің шекарасы өзгере алмайды, бірақ оны жиырып, жабуға болады.

Сонымен BorderIcons және BorderStyle қасиеттерін бірінен соң бірін пайдаланып, мыс, мына сияқты өлшемдері өзгермейтін және жиырылмайтын әрі жабылмайтын пішін алуымызға болады.

Енді жобамызды сақтаудың жайын қарастырайық. Егер біз жобаны алдынала File –» Save All (немесе тиісті батырмалар арқылы) меню командалары бойынша арнайы дайындалған бумада сақтамасақ онда

олар өздері бірден С:\Program Files\Borland\Delphi7\Projects дискісіндегі орнына барып түседі де, бәрі былығып кететін болады. Міне осыны ескере отырып, әуел бастан ашылған терезеде жаңа бума құрған жөн. Жоба негізінен Project1 аты бар файлда сақталады. Пішін оның жұмысын сипаттайтын- модульмен бірге жұмыс істейді. Егер жобада модулдер бірнешеу болса, онда Delphi олардың әрқайсысы үшін жеке файлдар құрып, оларды Unit1, Unit2 және т.с.с. атпен сақтауды ұсынады. Мұнда жоба файлы үшін де, модулдер файлы үшін де өзіңнің ойластырған атыңды қойғаның жөн. Сонымен әрбір жаңа жобаны бірден сақтауды есіңізден шығармаңыз!

Сонан соң File –» Close All командасын орындайық. Файлды Open… командасының көмегімен ашып көрейік. Мұнда модуль

12

Page 10: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

біздің Пішінмен бірге ашылады, енді жұмыс жасауға кірісуге болады, бірақ бағдарламаны іске қосу батырмасы екпінді болмайды. Сондықтан алдымен жобаның файлын ашу керек. Ол үшін арнаулы меню командалары: File –» Open Project.. (Ctrl+F11) және іске қосу батырмасының нақ үстінде тиісті батырма бар. Енді таңдау терезесінде бір ғана файл, жоба файлы тұрады. Оны ашқанда бастапқы модуль де, бастапқы жоба Пішіні де ашылады. Ал егер жобада бірнеше Пішін болса, онда оларды Open… арқылы ашады. Сол сияқты басқа жобалардың модульдерін де, мыс, олардың кодтарын көшіру үшін ашуға болады.

Мына нәрсе назарыңызда болғаны дұрыс! Сіздің қатқыл дискіңіз негізінен кемі екі тараудан тұрғаны

жөн. Кейде түрлі себеппен жүйелік бағдарламаны қайта орнатуға тура келеді, сол кезде сонда орналасқан жобаларыңыз да жойылатыны белгілі. Осыны болдырмау үшін Delphi жобаларын басқа тараудағы арнаулы бумада сақтап, ал негізгі тарауда сол жобалардың жарлықтарын сақтаған қолайлы болады. Міне осылай еткенде бұрынғы жобаларыңызды көшіріп әуре болмай, оларды сол қалпында сақтай аласыз.

2. Delphi компоненттері палитрасының беттері.

Delphi-дің өңдеу ортасы, ең алдымен Windows-та бағдарламалар дайындауға бағдарланған. Мұнда кодтарды қолмен жазудан құтқаратын Delphi-дің дайын компоненттерінің үлкен жиынтығының көмегімен визуалды қолданбалар жасау мүмкіндігіне көп көңіл бөлінеді. Бұл компоненттер қазіргі заманғы технологияларды қолданудың барлық саласын қамтиды. Мұнда да басқа бағдарламалау ортасындағыдай, мыс, Visual Basic т.с.сияқты кезкелген қолданбаны дайындауда қажет етілетін басты компоненттерді оқып-уйрену қажет. Компоненттер палитрасы 4

13

Page 11: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

беттен тұрады, олар: Standard, Additional, Win32, System беттері. Алдымен осы беттердің мазмұнымен және олардың басты қызметімен танысайық.

Standard беті.Delphi-ді оқып-үйрену негізінен осы компоненттер палитрасы

бетінен басталады. Бұл бетте Windows –тың : басты және қалқыма-лы менюлері, батырмалары, бір жолдық және көп жолдық редак-торлары, ауыстырып қосқыштары, белгілері, тізімдері және одан да басқа жиі қолданылатын компоненттері сияқты стандартты интерфейстік элементтері орналасқан.

Енді осы бетте қамтылған компоненттердің қызметтеріне жеке-жеке тоқталайық.

Пикто-грамма

Компонентаты

Компоненттің атқаратын қызметі

MainMenu

Бағдарламаның бас менюі. Компонент күрделң иерархиялық менюлерді құруға және оларды іске қосуға мүмкіндік береді.

PopupMenuҚалқымалы меню. Ол әдетте маустың оң жақ батырмасын басқанда пайда болады.

LabelБелгі. Бұл статикалық мәтін түріндегі қысқа хабарламаларды орналастыру үшін қолданылады.

EditЕнгізу жолы. Ол пайдаланушының бір жолдық мәтіндік ақпаратты енгізуіне арналған.

Memo

Көп жолдық мәтіндік редактор. Ол пайдаланушының пішімдеу мүмкіндігі жоқ көп жолдық мәтінді енгізіп, оны бейнелеуі үшін пайдаланылады.

Button

Командалық батырма. Бағдарламада осы компоненттің onclick оқиғасы өңдеушісінің көмегімен команданы жүзеге асыру үшін қолданады.

14

Page 12: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

CheckBox

Тәуелсіз ауыстырып қосқыш. Оның маусты шерткенде ауысып отыратын true және false мәндері бар Checked (белгіленген) қасиеті пайдаланылады.

RadioButton

Тәуелді ауыстырып қосқыш. Ол бірнеше нұсқадан біреуін ғана таңдау үшін қолданылады. Сол мақсатта компонент кем дегенде бір немесе бірнеше сондай компоненттермен бір топқа бірігеді. Компонентті шерткенде ол ерекшеленеді және бұрын таңдалған ерекшелеу алынып тасталады. Мұның да Checked қасиеті бар.

ListBox

Таңдау тізімі. Ұсынылған нұсқалар(опциялар) тізімінен тұрады және ағымдағы таңдауды бақылауға мүмкіндік береді.

ComboBoxТаңдаудың аралас тізімі. Edit пен ListBox компоненттерін бірге пайдалануды қарастырады.

ScrollBar

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

GroupBox

Компонентердің топтық контейнері. Бұл мағынасы бойынша байланысқан бірнеше компоненттерді біріктіру үшін қолданылады.

RadioGroup

Тәуелді ауыстырып қосқыштар тобы. Оның өзара байланысқан бірнеше тәуелді ауыстырып қосқыштарды іске қосуға арналған қасиеттері бар.

Panel Панель/Тақта. Бұл GroupBox сияқты бірнеше компоненттерді біріктіруге арналған. Оның ішкі және сыртқы жиектері арқылы «батырылып» не «көтеріліп» тұрғандығын бейнелеу

15

Page 13: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

мүмкіндіктері болады.

ActionList

Әрекеттер тізімі. Пайдаланушының бір типтес: меню, батырмалар және т.с.сияқты басқарушы элементтер тобының біреуін таңдауымен байланысты әрекетіне бағдарламаның бір орталықтан жауап беру қызметін атқарады.

Additional беті.Бұл бетте Windows – та бағдарлама дайындауға өте қажет:

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

Енді осы бетте қамтылған компоненттердің қызметтеріне жеке-жеке тоқталайық.

Пикто-грамма

Компонентаты

Компоненттің атқаратын қызметі

BitBtn

Командалық батырма. Стандартты Button батырмасынан айырмашылығы, мұнда пиктограмманы бейнелеу мүмкіндігі бар.

SpedButtonПиктографиялық батырма. Бас менюдің опцияларына тез қатынас жасау үшін қолданылады.

StringGridЖолдар кестесі. Бұл компоненттің мәтіндік ақпаратты кесте түрінде бейнелеуге қуатты мүмкіндігі бар.

DrawGridКескіндер кестесі. Бұл компонент кескінді кесте түрінде бейнелеу үшін қолданылады.

ImageСурет. Кескінді, оның ішінде пиктограммалар мен метафайлдарды бейнелеуге арналған компонент.

Shape

Фигура. Осы компонент көмегімен Пішінге фигуралар: тіктөртбұрышты, эллипсті, дөңгелекті кірістіруге болады.

16

Page 14: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Bevel

Жиек. Пішіннің жекелеген бөліктерін үш өлшемді қоршаумен және жолақтармен ерекшелеу қызметін атқарады.

ScrollBox

Айналдыру жолақтары бар тақта. Мұның тақтадан айырмашылығы сол, егер онда орналасқан компоненттер оның шекараларымен қиып алынса, оған айналдыру жолақтары автоматты түрде кірістіріледі.

CheckListBox

Көп түрлі таңдау тізімі. Мұның стандартты ListBox компонентінен айырмашылығы, әрбір опция жанында бірнеше опцияны бірден таңдауды жеңілдететін тәуелсіз CheckBox типті ауыстырып қосқыштың бар болуында.

Splitter

Шекара. Бұл көрінетін екі компонент аралығынан шекара жасап және пайдаланушының оларды орын ауыстыруына мүмкіндік береді.

StaticText

Статикалық мәтін. Мұның стандартты Label компонентінен айырмасы, мәтінді қоршауға алуға немесе оны Пішіннің «батырылған» бөлігі түрінде ерекшелеуге мүмкіндік беретін жеке Windows – терезесінің болуында.

Chart

Диаграмма. Бұл компонент мәліметтерді графикалық түрде бейнелеу үшін арнайы тақталар жасауды жеңілдетеді.

Win32 беті.Осы бет 32 разрядты Windows – тың 95/98/NT ОЖ арналған

интерфейс элементтерін жұмыс істетін компоненттерді қамтиды. Бұл компоненттер Windows – тың соңғы версияларының стилистикасымен үйлеседі.

17

Page 15: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Енді осы бетте қамтылған компоненттердің қызметтеріне жеке-жеке тоқталайық.

Пикто-грамма

Компонентаты

Компоненттің атқаратын қызметі

TabControl

Астарлар жиынтығы. Әр астар жазбасы және/немесе мәтіні бар өріс түрінде болады. Мұнда астарларды таңдау бағдарлама арқылы танылады және ол компонент терезесіндегілерді басқару үшін қолданылады.

PageControl

Астарлары бар тақталар жиынтығы. Әр тақтаның өз интерфейс элементтерінің жиынтығы болады және ол онымен байланысты астарды шерту арқылы таңдалады.

ImageListСуреттер жиынтығы. Мұны бірдей өлшемді бірнеше суреттерді сақтауға араналған қойма деп қарауға болады.

RichEdit

Пішімделген мәтіннің көпжолдық редакторы. Оның Memo компонентінен айырмашылығы, бұл мәтіннің қаріп, түс, туралау және т.б. (RTF пішімі) сипаттамаларын өзгерте алады.

TrackBar

Реттегіш. Бағдарламадағы кейбір шамалардың мәндерін басқару үшін қолданады. Мыс, осының көмегімен мультимедиалық құрылғылардың дыбысын өзгерту ыңғайлы.

ProgressBar

Процесс индикаторы. Осы компоненттің көмегімен біршама ұзақ процестің орындалу барысын, мыс, мәліметтердің көшірілуін бейнелеуге болады.

UpDown Цифрлық реттегіш. Бұл компоненттің екі батырмасы осы компонентпен байланысты сандық

18

Page 16: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

шамаларды арттыру немесе кеміту қызметін атқарады.

HotKeyБасқарушы перне. Компонент F1, CTRL+Shift және т.б. басқарушы кодтарды енгізуге арналған.

Animate

Мультипликатор. Бұл қозғалмалы кескіндерді(бейнеклиптерді) бейнелеуге арналған , бірақ оны дыбыспен әрлей алмайды. ProgressBar компоненті сияқты, негізінен ұзақ процестің жүруі кезінде қолданылады.

DateTimePicker

Уақыт/мерзім селекторы. Компонент уақытты немесе мерзімді енгізуге немесе оларды бейнелеуге арналған.

MonthCalendarКүнтізбе. Бұл күнтізбені бейнелеу және мерзімді немесе оның аралығын таңдау үшін қызмет етеді.

TreeView

Бұтақталған таңдау. Пиктограммалардың бұтақ тәріздес құрылымымен байланысқан жиынтығы болып табылады.Әдетте бұл каталог құрылымын және басқа соған ұқсас өзара иерархиялық түрде байланысқан элементтерді қарап шығуда пайдаланылады.

ListView

Пиктограммалар тақтасы. Бірнеше пиктограммаларды қарап, олардың ішінен қажеттісін таңдауды ұйымдастырады. Компонент пиктограммаларды тік немесе көлденең қатарларға орналастыра алады және оларды үлкен немесе кіші масштабпен көрсетуге мүмкіндігі бар.

HeaderControl Басқарушы тақырып. Бұл жазбалары бар аралас секциялар қатарына бөлінген көлденең немесе тік жолақтар. Секциялардың өлшемін бағдарламамен жұмыс кезінде

19

Page 17: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

өзгертуге болады. Мұны әдетте, әр түрлі кестелердегі бағандар мен жолдардың өлшемін өзгерту үшін пайдаланады.

StatusBar

Статус тақтасы. Редакциялау терезесінде түрлі қызметтік ақпараттарды орналастыруға арналған. Оған мыс, Word мәтіндік редакторы терезесі қоршауының төменгі бөлігінде орналасқан қалып-күй жолы жатады.

ToolBar

Саймандар тақтасы. Бұл компонент BitBtn командалық батырмасы үшін контейнер қызметін атқарады және ол өз өлшемін оған батырмаларды қосқанда немесе оны жойғанда автоматты түрде өзгерте алады.

CoolBar

Саймандар тақтасы. Мұның ToolBar –дан айырмашылығы, бұл Edit, ListBox, ComboBox және т.с.с. Windows –тың стандартты интерфейстік компоненттерін орналастыруға арналған контейнер ретінде пайдаланылады.

PageScroller

Айналма тақта. Бұл енсіз саймандар тақтасын орналастыруға арналған. Қажет кезде тақта шетіне айналдыру жолақтарын құрады.

System беті.Мұнда әр түрлі қызмет атқаруға арналған компоненттер (мыс,

Timer – кезкелеген бағдарламадағы ең маңызды компонент), оның ішінде Windows – тың стандартты технологияларын қуаттайтын бағдарлама аралық деректер алмасуды ұйымдастыратын OLE және DDE компоненттері де берілген.

Енді осы бетте қамтылған компоненттердің қызметтеріне жеке-жеке тоқталайық.

20

Page 18: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Пикто-грамма

Компонентаты

Компоненттің атқаратын қызметі

Timer

Таймер. Нақты уақыт интервалын есептеуге арналған компонент. Ол 55 миллисекунд – тен кіші аралықта өңдей алмайды.

PaintBox

Суретке арналған терезе. Графикалық кескіндерді салуға арналған тікбұрышты аймақты құрады.

MediaPlayer

Мультимедиалық ойнатқыш. Осы компонент көмегімен түрлі мультимедиалық құрылғылар жұмысын басқаруға болады.

OleContainerOLE-контейнер. Байланысқан немесе ендірілген обьектілерді қабылдаушы қызметін атқарады.

DDEClientConv

DDE- байланыс. Бұл DDEClientItem –мен бірге DDE-байланыста клиенттік бағдарлама құру үшін пайдаланылады..

DDEClientItemDDE- тақырып. Клиенттік қолданбада DDE-байланыстың тақырыбын анықтайды.

DDEServerConv

DDE- байланыс. Бұл DDEServerItem –мен бірге DDE-байланыста серверлік бағдарлама құру үшін пайдаланылады.

DDEServerItemDDE- тақырып. Серверлік қолданбада DDE-байланыстың тақырыбын анықтайды.

3. Delphi компоненттері – визуалды жобалаудың негізі.

Бос пішінді мазмұнды ететін – Delphi-дің компоненттері. Олар бас терезедегі палитра компоненттерінің тиісті астарларында

21

Page 19: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

орналасқан. Delphi-дің негізгі барлық компоненттері жоғарыда айтылған 4 астарда: Standard, Additional, Win32, System жатыр.

Осылардың пиктограммасына маустың нұсқағышын апарсақ, олардың аттары қалқып көрінеді. Осы компоненттерді Пішінге апару үшін, оны мауспен шертіп, сонан соң Пішіннің ол қойылатын орнын шертеді.Бұдан әрі оларды маус арқылы Пішін ішінде «қажетті интерфейсті» құрастыруға еркін тасымалдауға болады. Егер Сіз компонентті Пішінге көшіргіңіз келмесе, онда сол астардағы компоненттен бас тарту бағдаршасын шертсеңіз, белгілеу алып тасталады.

Delphi-де басқа бағдарламалау тілдеріндегі сияқты, барлық компоненттер қарастырылған анықтамалықтар бар. Мұнда біз сол компоненттердің ең негізгі қасиеттеріне және олардың жұмысына тоқталатын боламыз.

Ең алдымен, мәтінді бейнелеу компонентінен бастайық. Ол үшін жаңа жоба құрайық(File –» New –» Application), сосын Пішінге Label, Edit, Memo, Button компоненттерін тасымалдайық. Мауспен тиісті компоненттерді бір рет шерту немесе Tab пернесін басу арқылы Обьектілер инспекторындағы олардың қасиеттерін ашуға болады. Мәтінмен жұмыс істеуге арналған осы компоненттердің мынадай қасиеттері бар:

Width – компоненттің енін белгілейді; Height – компоненттің биіктігін белгілейді; Left – пішіннің сол жақ шетінен қашықтығын көрсетеді; Top - пішіннің жоғарғы жақ шетінен қашықтығын

көрсетеді.Компоненттер Пішінге орнатылғаннан бастап, олардың қасиеті

мәнге ие болады. Компоненттерді мауспен пішіндегі жобалаған орнына қойған соң, обьектілер инспекторы арқылы оның өлшемдері мен координаттарын нақтылауға болады. Осы әрекеттерді бағдарламалау арқылы да орындауға болатынын алда көретін боламыз. Бұл компоненттердің бейнелік көрінісін олардың мына қасиеттері ұйымдастырады:

Label Button үшін - Caption,Edit үшін – Text,Memo үшін – Lines.Пішінді «құрастыру» кезінде компоненттердің осы

қасиеттеріне кезкелген мәнді беруге болады, тіпті оған мән беру арқылы компонентті көрінбейтін ете аласыз. Жоғалған компонентті

22

Page 20: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

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

Енді бағдарламаны іске қосып көрейік(ол үшін жасыл бағдаршаны не F9 –ды басыңыз). Сонда сіз компоненттердің, яғни Label – пішінде жазба не белгі жазуға, Button – батырма қызметін атқаруға, Edit – жол енгізуге, Memo – мәтіндік редактор ретінде жұмыс істеуге дайын екенін көресіз.

Қазір біз шағын бағдарлама жазып көрейік. Әуелі жаңа жоба ашайық (File –»New –» Application) . Енді мына әрекеттерді орындайық:

1. Пішінге Edit(енгізу жолы) компонентін орналастырыңыз да, оның Text қасиетін тазалаңыз.

2. Пішінге Button(батырма) компонентін орнатып, оның Caption қасиетіне, мыс: «бейнесін көрсет» деп жазыңыз.

3. Пішінге Label – ді енгізіп, оның Font қасиетінен қаріп өлшемін(24) және түсін таңдаңыз. Оның Caption қасиетін тазалаңыз.

4. Құрған батырманы екі рет шертіңіз. Сонда бізге Delphi дайындаған батырманы басуға арналған модуль терезесі ашылады.

5. Осы код терезесінде Label1 деп жазыңыз(нүктеден соң тоқтаңыз, сонда көмексөз көрінеді). Сонан соң «С» пернесін бассаңыз, сонда Caption жолы белгіленеді. Delphi біз не енгізер екен деп күтіп тұр. Әрі қарай ештеңе жазбай, Enter-ді басыңыз. Сонда Label1.Caption деген жазу шықты. Мұндағы нүкте обьекті мен оның қасиетін бір-бірінен ажыратып тұр. Обьектіні қалай атау керек? Әрине атымен. Ол обьектінің барлық компоненттері үшін бірдей – Name қасиетімен беріледі және бұл инспекторлар обьектісінде орналасқан. Әрі қарай:

6. Label1 обьектісінің Caption қасиетіне мән меншіктейік. Ол үшін «:=» - меншіктеу операторын пайдаланамыз. Сонда «Label1.Caption:=» шығады, енді не жазатыныңды ойланайық...

7. Әрине, мұнда Edit1- дің Text қасиеті : “Edit1.Text” мәнін қабылдайды.

8. Әр команда соңына (;) символы қойылуы қажет.

23

Page 21: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Сонда begin мен end арасына: Label1.Caption:=Edit1.Text; жазылады. Енді осыны сақтап, F9 пернесін басайық. Міне шағын бағдарлама құрылып болды. Нәтижесін көріңіз.

Ендігі бағдарламалар бұдан күрделілеу болады. Егер бағдарламада қате болып, ол орындалмаса не істеу керек? Ол кезде CTRL + ALT + DEL пернелер тобын орындап немесе ең оңайы қателер туралы ескерту терезесінде OK-ны басып, содан соң бас терезе менюінде Delphi Run –» Program Reset немесе Ctrl+F2 командаларын орындаған жөн.

4. Delphi оқиғалары.

Бұрыннан білетініміздей, Windows операциялық жүйесі көпміндетті, яғни бір уақытта бірнеше әрекетті қатар орындай алады. Біз бағдарлама терезесінде батырманы шерткенде, Windows жүйесі нақ осы бағдарламада бір оқиға болғандығын анықтап, оған хабарлама жолдайды. Ал біздің бағдарлама оған тиісінше жауап әрекет жасауы керек. Ол үшін біз бағдарламалаушы ретінде осы оқиғаны орындату кодын жазамыз. Сонда Windows үшін бағдарлама құрылымы әрқайсысы белгілі бір нақты оқиғаны өңдеуге жауапты және сол оқиға болған кезде ғана шақырылатын кіші бағдарламалар жиынтығынан тұрады екен.

Ал Delphi бізді Windows – тан хабарлама алу қажеттілігінен құтқарып, ол қызметті бір өзі атқарады. Мұнда әр компоненттің өзінше әсер ете алатын біршама көп оқиғалар жиынтығы бар. Бағдарламалаушы бағдарламада қай оқиғаны өңдеу қажеттігін өзі анықтайды.

Енді осының алдында құрылған жобаны ашайық. Edit1 компонентін шертейік. Ол обьектілер инспекторында көрінеді. Сонда Инспектордан екі астарды көресіз: Properties(Қасиеттер) және Events(Оқиғалар). Events астарына ауысайық.

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

Алдыңғы бағдарламаны Пішіндегі мәтін бірден енгізілу бойына көрінетіндей етіп өзгертейік. Edit1 – ге мән енгізген кезде

24

Page 22: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

ондағы Text қасиеті өзгеріп, онда жаңа әріп пайда болады. Ол үшін onchange(change- ағ. өзгеру) оқиғасын пайдаланайық. Сонда:

1. onchange бойынша екі рет шертейік, сол кезде біз жаңа құрған өңдеуіштің ішінде тұрамыз.

2. Label1 – дің Caption қасиетіне Edit1 – дің Text қасиетінің мәнін меншіктейік: Label1.Caption:=Edit1.Text; немесе оны алдыңғы бағдарламадан көшіріп, осыған жазайық.

Бағдарламаны іске қосайық. Барлығы жұмыс істеп тұрғанын көреміз.

Енді onclick оқиғасын қарастырайық. Бұл оқиға енгізу жолын бұрын енгізілген символдардан тазарту үшін қолданылады. Мұнда өзіңіз байқағаныңыздай, Delphi-де жол – бірлік тырнақшаға( ' ) алынып жазылуы қажет.

Ал жолдағы символдар тазару үшін өңдеуіштің Text қасиетіне бос жол меншіктелуі керек, яғни оның арасында бос орын да болмауы қажет. Сонда ол былай жазылады:

Edit1.Text:= '';Бұл мақсатта Edit компонентінің осыған арналған Clear

(ағ.тазалау) әдісін қолдануға болады, ол мынау: Edit1.Clear;Бұл жерде біз бағдарламаны пайдаланушының жағдайын

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

Мұндай кезде Edit – тің onEnter оқиғасын қолданған жөн. Сол кезде сіз енген бойда, компонент мән енгізуге дайын тұрады немесе ол үшін арнайы батырманы және оның onclick оқиғасын пайдаланған қолайлы.

Сонымен әр компоненттің өз оқиғалар жиынтығы болатыны белгілі. Біз солардың

Onchange Onclick onEnter деген түрлерімен таныстық.

Әрбір бейнелік компонентте болатын мына маңызды оқиғалар төмендегі жағдайларда пайда болады:

onExit – компонент енгізу фокусын жоғалтқан сәтте; ondblclick – компонентті мауспен екі рет шерткен сәтте; onkeydown – пернетақта пернесін, ол төменгі қалыпта

тұрғанда басқан сәтте;

25

Page 23: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

onkeyup – пернетақта пернесін, ол жоғарғы қалыпта тұрғанда босатқан сәтте;

onkeypress – пернетақта пернесін басқан сәтте; onmousdown – маус батырмасын, ол төменгі қалыпта

тұрғанда басқан сәтте; onmouseup – маус батырмасын, ол жоғарғы қалыпта

тұрғанда босатқан сәтте; onMouseMove – маус нұсқағышын компонент үстінде

жылжытқан сәтте.

Кезкелген бағдарламамен жұмыс жасарда, оның ең маңызды компоненті – Пішіннің басты оқиғасы – onCreate ескерілуі қажет. Оқиға пішіннің экранда көрінуінен бұрын пайда болады. Бұл оқиға, мыс, Пішіннің экрандағы өлшемдері мен орнын баптауға болатындай етіп бағдарлама элементтерінің тиісті қасиеттерін беру үшін қолданылады. Егер сіз көрінбейтін бағдарлама құрғыңыз келсе, онда пішіннің ені(Width) мен биіктігін(Height) нөлге(0) теңеуге болады. Бірақ оны жобалау кезінде жасасақ, онда экран көрінбей жұмыс істеуге кедергі болады. Сондықтан оны onCreate оқиғасы бойынша:

Form1.Width:=0; Form1.Height:=0; орындайды.Енді Пішіннің тақырыбын да көрсетпеуге болады, ол үшін

обьектілер инспекторында BorderStyle параметрін None – ге тең етіп алса болғаны. Сол кезде пішін тіпті көрінбейді, оның есептер тақтасында тек белгісі ғана шығып тұрады.

5. Delphi тілі. Айнымалылар, тұрақтылар және олардың типтері.

Delphi тіліндегі барлық мәліметтер оны қолданғанға дейін сипатталуы тиіс. Компилятор солай болғанда ғана мәліметтердің бағдарламада сипатталуына сәйкес қолданылғандығын бақылап, қатенің алдын алады. Delphi тілінде кезкелген шама тұрақты немесе айнымалы мәнге ие. Оның аты(идентификаторы) латын әріптерінің тізбегінен, цифрлар мен астын сызу таңбасынан тұрады, олар тек цифрдан басталмауы тиіс. Мұнда символдар регистрінің ролі болмайды.

26

Page 24: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бағдарламада мәліметтерді сипаттау орны логикалық блок – begin/end – тен тыс орналасады. Модульде implementation түйінді сөзінің алдында сипаттау блогы жазылады:

var Form1: TForm1;Міне осы жерде, келесі жолдан бастап айнымалы мен

тұрақтыларды жариялаған қолайлы. Айнымалылар былай сипатталады:

Var айнымалы_аты: айнымалы_типі;Мұнда var – түйінді сөз. Атау ретінде кезкелген бұдан бұрын

сипатталмаған және тілдің түйінді немесе қосалқы сөздері болып табылмайтын идентификаторды алуға болады.

Бір типті бірнеше айнымалыларды сипаттау қажет болғанда, оны былай жазады:

Var A,B,C: Integer;Егер бірнеше сипаттауды бірінен соң бірін жазғанда, бір ғана

var түйінді сөзін қолдануға болады: var A,B: integer; C,D: String;Тұрақты шамаларды, басқаша константа деп атайды.

Бағдарламада, әдетте, сандар мен жолдарды тікелей де пайдалануға болады: 3.1415 немесе ‘Бұл ПИ санының мәні'. Алайда тұрақтыларды идентификаторға меншіктеген ыңғайлы, ол үшін const түйінді сөзі қолданылып, былай жазылады:

Const pi=3.1415; BelgiPi:String=’Бұл Пи санының мәні’;Айтпақшы, Pi тұрақтысы Delphi – де берілген, сондықтан оны

қолданғанда 3.1415 санын тұрақтыға меншіктесе болғаны. Енді Delphi – де қолданылатын мәліметтер типін

қарастырайық. Оларға – жолдар мен сандар жатады. Жол деп бірлік тырнақшаға алынып жазылған символдар тізбегін айтады. Мыс, 'бұл мәтіндік жол' деген сияқты. Егер мәтінде тырнақша белгісі болған жағдайда, онда оны екі мәрте жазу қажет, мыс: ‘бұл’’- бірлік тырнақша белгісі’.

Жол бос болуы да мүмкін, онда ол былай белгіленеді: ‘’. Жол, көп таралған жолдық тип – String –пен сипатталады. Осы

типті жол көлемі 2Гб-қа дейінгі символдардан тұра алады. Жолды шекті мөлшермен шектеу қажет болғанда, онда символдар санын String-тен кейін тік жақшаға алып жазады, мыс: String[50].

27

Page 25: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жеке символдар типі Char түрінде сипатталып, бірлік тырнақшаға алынып жазылады: ‘ү’ . Ал мынадай экранда бейнелеуге болмайтын, мыс, жол соңын білдіретін символды(#13), жолды тасымалдау символын(#10), олардың алдында # таңбасы бар сандық коды(ANSI) түрінде жазады, мыс: #0. Delphi-де нөл – терминделген жолға жатады. Мұндай жолдардағы символдар есебі нөлден басталып, коды нөл болатын (#0) символымен аяқталады. Бұл жолдардың типі – Pchar.

Сандар бүтін және бөлшек сандар болып бөлінеді. Мына кестеде бүтін сандардың стандартты типтері мен олардың тиісінше қабылдай алатын мәндерінің аралығы көрсетілген:

Integer -2147483648 .. +2147483647Cardinal 0 .. 4294967295Shortint -128 .. +127Smallint -32768 .. +32767Int64 -263 .. +263-1Byte 0 .. +255Word 0 .. +65535

Бүтін сандар типінің бағдарламада қолдануға ыңғайлысы – ол Integer. Ал оның басқа типтері мәліметтер компьютер жадынан барынша аз орын алуы үшін қолданылады. Бөлшек садардың ондық нүктемен ажыратылған бөлшек бөлігі бар. Оларды соңында сол жақ бөлігін 10-ның неше дәрежесіне көбейту керектігін көрсететін саны бар е(немесе Е) символымен жазуға болады.

Төменгі кестеде бөлшек сандардың стандартты типтері мен олардың қабылдай алатын мәндерінің аралығы берілген:

Real 5*10-324 .. 1.7*10308

Real48 2.9*10-39 .. 1.7*1038

Singl 1.5*10-45 .. 3.4*1038

Double 5*10-324 .. 1.7*10308

Extended 3.6*10-4951 .. 1.1*104932-1Comp -263 .. +263-1Currency 922337203685477.5807

28

Page 26: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бағдарламада қолдануға барынша ыңғайлы тип – Real. Оған шамалас типке Double жатады, бірақ оның алда өзгеруі де мүмкін. Currency(финанстық) типінен басқа бөлшек сандар жуықтап есептеледі.

Мәліметтердің ендігі бір типіне логикалық Boolean типі жатады. Ол True(ақиқат) және False(жалған) деген екі мәнді ғана қабылдайды. Мұнда True > False болады.

Енді жоғарыда айтылған компоненттерді, олардың қасиеттері мен оқиғаларын пайдаланып, өз айнымалыларын енгізу арқылы есептеу жүргізетіндей бағдарлама құрастыруға болады. Мұнда есептелген мәнді экранға қалай шығарамыз, соны қарастырайық. Ол үшін бұл мәнді қандай да бір Text не Caption қасиеті бар компонентке орналастыру қажет. Оған мысал ретінде Label мен Edit компоненттерін, тіпті Caption қасиеті арқылы ақпаратты шығаруға болатын Пішінді де қолдануға болар еді. Былай жазылған мына бағдарлама:

 var A, B, C: Integer ;    begin    A := 5 ;    B := 10 ;    C := A+B ;    Label1.Caption := C ;   end ;

қате шақырар еді, өйткені мұндағы Text және Caption қасиеттері String типті, ал айнымалылар – Integer типті болып тұр. Мұндай бағдарлама есептеу жүргізе алмайды. Бұдан шығатын жол бар, ол үшін С айнымалысының мәнін жолдық мәнге түрлендіру қажет. Delphi-дің мұны орындайтын IntToStr ішкі функциясы бар. Сонда қате шақырған бағдарлама мына түрде жазылар еді:

Label1.Capton:=IntToStr(C);Бірақ бұл бағдарлама 15 санын ғана көрсетеді. Енді Edit компонентін пайдаланып көрейік. Енгізілген сандар

осы компоненттердің Text қасиеттерінде жатады. Пішінге Edit-тің екі, бір Label компонентін және батырманы басқанда есептеу жүргізетін Button батырмасын орналастырайық. Edit1 және Edit2

29

Page 27: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

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

   var A, B, C: Integer;   begin    A := Edit1.Text;   B := Edit2.Text;   C := A+B;   Label1.Caption := IntToStr(C);  end ;

Бұл да жоғарыдағы сияқты, қате шақырады, себебі мұнда да А мен В айнымалылары сандық Integer типті болса, ал Text қасиеті – String типті. Осы қатені жөндеуге StrToInt функциясы көмектесе алады, өйткені ол мәтінді бүтін санға түрлендіреді. Сонда А мен В айнымалысына мән меншіктеу операторлары былай жазылады:

A:=StrToInt(Edit1.Text);B:=StrToInt(Edit2.Text);Мұнда біз А,В,С айнымалыларын түсінуге оңай болу үшін

пайдаландық. Осы бағдарлама операторларын бір жолға былай жазған өте ыңғайлы:Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));

Осыған ұқсас Real типті жылжымалы үтірлі нақты сандарды жолдық айнымалыға(FloatToStr) және оны кері түрлендіретін (StrToFloat) функциялары бар. Көбінесе Delphi-де Real типті есептеулер нәтижесінде үтірден соң ұзын «құйрық» болады. Мұны қалай шектеуге болатынын «Жолдық айнымалымен жұмыс» тақырыбында қарастырамыз.

6. Мәліметтердің өздік және құрылымдық типтері.

Мәліметтердің сандар мен жолдардан басқа күрделірек қосымша типтерін пайдаланбай жақсы бағдарлама құру мүмкін емес. Delphi-де бағдарламалаушы өз мақсатына жету үшін мәліметтердің өздік (өзі қалаған) типін құра алады.

Бағдарламаға мәліметтердің жаңа типін енгізу үшін Type түйінді сөзін қолданатын оператор енгізіледі:

Type типтің_атауы = типтің_сипатталуы

30

Page 28: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мәліметтердің саналатын типі-бұл мәндер аралығы жай ғана реттелген идентификаторлардан тұратын тип. Бұл типті мәндерді сандармен емес, сөзбен сипаттау неғұрлым көрнекілеу болатын мәліметтер типін сипаттауға қолданған тиімді болады. Ол идентификаторларға кіретін әр атау тұрақты болып саналады да, бір-бірінен үтірмен бөлініп, жалпы атау тізімі жай жақшаға алынып жазылады. Мыс, Қазақстанның кейбір футбол командаларын сипаттайтын типті былай жазып көрсетуге болады:

Type FootballKazTeam=(Kairat, Kaisar, Tobyl, Ordabasy, Esyl);

Var MyTeam: FootballKazTeam; Begin MyTeam:=Kairat; End;

Жалпы саналатын типке мәндерінің тізбектілігі мен олардың үлкендігін анықтауға болатын барлық типтерді жатқызуға болады. Саналатын типке мыналар жатады:

барлық бүтін санды типтер; символдық типтер(Char); логикалық типтер.Мәліметтердің құрылымдық типтері кезкелген бағдарламада

қолданылады. Оларға: массивтер(жиымдар); жазбалар; жиындар

түріндегі типтер жатады.Жиым – элементтеріне нөмірі немесе индексі бойынша

қатынас жасалатын мәліметтердің құрылымдық типі. Жиымның барлық элементтері бір типтес болады. Ол былай сипатталады:

Type жиым_типінің_аты = array[аралығы] of элемент_типіМұндағы аралығы – жиымның жоғарғы және төменгі

шекарасын, яғни ондағы элементтер санын анықтайды. Жиымға қатынас жасалғанда ізделінді индекс көрсетілген аралықта жатуы тиіс. Мыс, бүтін типті 100 элементтен тұратын жиым былайша сипатталады:

Type TMyArray=array[1..100] of Integer;

31

Page 29: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мұндағы TmyArray типті айнымалыны былай сипаттауға болады:

Var A,B: TMyArray;Енді типті меншіктеп жатпай-ақ, оны жиым ретінде бірден

сипаттауға мүмкіндік туды: Var A,B:array[1..100] of integer;Сонымен жиым элементіне қатынас жасау үшін жиымның аты

мен элементтің индексі тік жақшаға алынып көрсетілуі керек екен. Жиымның индексі ретінде мәндері оның сипаттамасында көрсетілген аралықта жататындай санды, идентификаторды немесе өрнекті алуға болады. Мыс:

var N: Integer;begin   N := 65;   A[5] := 101;   A[N] := 165;   A[N+3] := 200;   B := A;end;

Кейде жиымның жоғарғы шегін білу қажеттігі туады. Delphi – дің High функциясы жиымның жоғарғы шегі болып табылатын санды қайтарады.

Бағдарламадағы B:=A өрнегі В жиымының әр элементі сондай индексті А жиымының элементіне тең екендігін білдіреді. Мұндай меншіктеу айнымалылар қандай да бір атаулы тип арқылы сипатталса ған немесе бір тізімде болса ғана мүмкін болады. Мына жағдайда:

var A: array[1..100] of String;           B: array[1..100] of String;ондай меншіктеу қолданылмайды, бірақ мұнда элементтерді бір-бірден B[1]:=A[2]; және т.б. меншіктеуге мүмкіндік бар.

Жиымдар бірнеше өлшемді бола алады. Мыс, бізге 4 баған, 5 жолдан құралған кесте берілсін делік.Бұл кесте екі өлшемді жиым түрінде былай сипатталады:

Type MyKeste=array[1..4,1..5] of integer;

32

Page 30: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Var X:= MyKeste; Y:=Integer;Begin Y:=X[4,3];End;

Осы бағдарлама орындалғанда, жиымның 4-бағаны мен 3-жолының қиылысында орналасқан Y элементінің мәні 12 – ге тең деген жауап аламыз.

Көпөлшемді жиымды, мыс, екі өлшемді жиымды жиымның жиымы ретінде сипаттауға болады:

Type TMyArray=array[1..4] of array[1..5] of integer;Нәтижесі жоғарыдағы мысалға ұқсас.Жоғарыда сипатталған элементтер саны өзгермейтін

статикалық жиым деп аталатын жиымдардан басқа, Delphi-де элементтерін бағдарлама талабына сәйкес өзгертуге мүмкіндігі бар динамикалық жиымдарды қолдана алады. Ол жиымдармен жұмыс аздап жайлау жүргенмен бұл компьютер ресурсын үнемдеуге жағдай жасайды.

Динамикалық жиымдар статикалық сияқты, бірақ онда индекстер аралығы көрсетілмей сипатталады:

Type TDinArray=array of integer;Var A:TDinArray;Динамикалық жиым құрылып болғанда, онда бірде бір элемент

болмайды. Бағдарламада қажетті өлшем арнаулы SetLength процедурасы арқылы беріледі.

Сонда 100 элементтен тұратын жиым былай жазылар еді:Begin SetLength(A,100);End;Динамикалық жиымның төменгі шегі әрқашан нөлге тең.

Содан да А жиымның индексі 0-ден 99-ға дейін өзгере алады. Көпөлшемді динамикалық жиымдар жиымдардың жиымы

ретінде сипатталады. Мыс, екі өлшемді жиым былай сипатталады:Type T3DinArray=array of array of integer;Var A: T3DinArray;Бағдарламада алдымен бірінші өлшем(бағандар саны) беріледі:

33

Page 31: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

SetLength(A,3);

Содан соң екінші өлшем әрбір үш баған бойынша беріледі:SetLength(A[0],3);SetLength(A[1],2);SetLength(A[2],1);

Міне осылай үшбұрышты матрица құрылады:

A00 A10 A20

A01 A12

A02

Динамикалық жиымға бөлінген жадыны босату үшін тұтас жиымға nil мәнін меншіктеу керек: A:=nil; Delphi-де nil түйінді сөзі мәннің жоқтығын білдіреді.

Жазбалар өте маңызды әрі ыңғайлы құрал болып табылады. Оның көмегімен арнайы технологияны қолданбай-ақ мәліметтердің өзіндік деректер қорын құруға болады.

Жазбалар деп, мәліметтердің әр элементтің өз аты мен типі бар құрылымдық түрін айтады. Жазбалар элементін басқаша өріс деп те атайды. Олар былай сипатталады:

Type жазба_типінің_аты=record өріс_аты : өріс_типі; ... өріс_аты : өріс_типі;end;

Бірыңғай типті өріс аттарын, айнымалыларды сипаттағандай, арасын үтірмен бөліп бір жолда көрсетуге болады. Жазба өрісіне қатынас жасау үшін, алдымен жазбаның аты, нүкте, сонан соң өріс аты жазылады. Мыс, бір мекеменің қызметкерлері жайлы деректерді, жазбаның мына типімен ұйымдастыруға болады:

Type TKyzm=record Tegy,Aty,Aka:string; Tj:integer; Jo:string; Ka:string;End;Var Kyzm:TKyzm;Begin Kyzm.Tegy:=’Adet’; Kyzm.Aty:=’Muratbek’;

34

Page 32: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Kyzm.Aka:=’Bexaruly’; Kyzm.Tj:=1942; Kyzm.Jo:=’114 орта мектеп’; Kyzm.Ka:=’бағдарламалаушы’;End;

Енді осы деректерді оның типін алдынала TKyzm түрінде белгілеп, файлға жазамыз. Міне деректер қоры дайын болды.

Delphi-де файлдық айнымалы деген ұғым бар, ол былай сипатталады:

VFile:file of файл_типі; Мұнда тип ретінде кезкелген шектеулі тип пайдаланылады.

Бұл айнымалыға String типін қолдана алмаймыз, себебі ол айнымалыға 2 ГБ-қа дейін мән беруге мүмкіндік жасайды. Бірақ оны String[N] деп шектеу арқылы(N-символдар саны) қолдануға болады. Жоғарыда алынған мысалдағы Tkyzm типін былайша сипаттауға болар еді:

Type TKyzm=record Tegy,Aty,Aka:string[20] ; Tj:integer; Jo:string[15]; Ka:string[15];End;

Міне осы типті айнымалы жадыдан нақты орын алады да, оны файл түрінде жазуға болады. Бұл туралы біз кейінірек тоқталатын боламыз.

Жиындар деп, бір атауға біріктірілген элементтер тобын айтады. Оның элементтерін басқалармен салыстыра отырып, олардың осы жиынға тиістілігін анықтауға болады. Бір жиындағы элементтер саны 256-дан аспауы тиіс. Жиын былай сипатталады:

Type жиын_аты=set of жиынның_мәндер_аралығы;Мәндер аралығы ретінде элементтерінің саны 256-дан

аспайтын кезкелген типті көрсетуге болады. Мыс: type TmySet=set of 0..255; Type TMySet=set of Byte;

35

Page 33: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бағдарламада жиынның нақты мәндері тік жақшаға алынған элементтер тізбесі түрінде беріледі. Мұнда элементтердің аралығын көрсету мүмкіндігі бар:

var MySet : TMySet;begin    MySet:=[1, 3 .. 7, 9];end;

Қандай да бір мән жиын элементі екендігін тексеру үшін in операторы шартты оператормен бірге қолданылады:

 var Key : Char;   Str : String;   begin    if Key in ['0' .. '9', '+', '-'] then Str:='Math';   end;

7. Өрнектер және операторлар.

Delphi-де өрнектердің мына түрлері қолданылады: математикалық өрнектер логикалық өрнектер тіркестік өрнектер және оның мұнан басқалары да бар.Математикалық өрнектер. Мұнда меншіктеу(:=), қосу(+),

азайту(-), көбейту(*), бөлу(/), бүтін сандық бөлу(div), бөлуден қалдық табу(mod) амалдары пайдаланылады. Өрнектермен амалдар орындауда амалдардың орындалу басымдықтарын ескеру өте маңызды, сонда ғана есептеу дұрыс нәтиже береді. Сондықтан бағдарламалаушының осы басымдықтарды білуі тиіс.

Мыс, мына өрнектің нәтижесі : 20-6/2+7*4 56 емес, 45-ке тең, себебі өрнекте ең алдымен көбейту мен бөлу амалдары бірінші кезекте, сонан соң қосу, азайту амалдары ретімен орындалуы керек. Амалдардың орындалуында жай жақша басымдыққа ие, яғни жақшаға алынған өрнек алдымен орындалады. Мыс, мына өрнектің мәні: ((20-6)/2+7)*4 енді 56-ға тең болады. Бұл өрнекте әуелі 1-

36

Page 34: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

жақша(14), сонан соң екінші үлкен жақша(14), сосын қалған амал(56) орындалады.

Логикалық өрнектер. Бұл өрнектер логикалық Boolean типті амалдарда

қарастырылады. Олар шартты операторларда қолданылады.

Операторлар. Бағдарламада алгоритмдік логиканы жүзеге асыратын қолданба жасау үшін оның жұмыс барысын басқаратын құрал қажет. Ол құрал түрлі шарттарға байланысты операторлардың орындалу ретін өзгерте алады және көбірек қайталанатын үзінділер жұмысын тиімді ұйымдастыруға көмектеседі. Кезкелген алгоритмді мына операторлар көмегімен кодтауға болатыны математикалық тәсілмен дәлелденген. Олар:

меншіктеу операторы шартты оператор циклдік оператор

Меншіктеу операторымен(:=) осының алдында таныстық. Ол оператор былай жұмыс істейді: мұнда оператордың сол жағында тұрған айнымалы, оң жақтағы шамаға теңеседі және олардың типтері сәйкес болуы керек. Сөйтіп оң жағындағы өрнекте оның сол жағындағы шаманы пайдалануға болады. Осы айтылғандарды математикада қолдануға болмайды. Ал бағдарламалауда бұл жадыда тұрған бастапқы мән алынып, оған есептеу жүргізілетінін, сонан соң ол ұяшықтағы бұрынғы мән өшіріліп, соның орнына соңғы мән енгізілетінін білдіреді. Мыс:var M,N : Integer;begin     M:=2;     N:=10;     M:=M*N-N/M;end;

Бағдарламаның басында М-ге меншіктелген мән – 2 болса, ал бағдарлама орындалғанда оған 15 мәні меншіктеліп тұр.

37

Page 35: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Шартты оператор. Осы оператордың көмегімен қандай да бір шарттардың орындалуына қарай операторлардың орындалу ретін өзгертуге мүмкіндік туады. Шартты оператор былай жазылады:

If шарт then 1-әрекет else 2-әрекет;Мұндағы if(егер), then(онда) және else(әйтпесе) – қызметші

сөздер, ал 1-әрекет немесе 2-әрекет – операторлардың орындалу нәтижесін білдіретін операторлар. Мұнда шарт ақиқат болса 1-әрекет, жалған болса 2-әрекет орындалады. Шарт логикалық әрекетке жатады. Бұл жерде өрнектер мәні(оның ішінде логикалық та) салыстырылады, ол үшін Boolean типті мәнді қайтаратын функциялар шақырылады және ол мәндерді логикалық амалдармен қоса қолдана алады.

   Амалтаңбасы

Амалдыңатауы

Логикалық амалдарды мына :   and (логикалық ЖӘНЕ)   or (логикалық НЕМЕСЕ)   xor (жоққа шығарушы НЕМЕСЕ) байланыстырушы амалдармен бірге пайдалануға болады.Мәліметтердің кейбір типтері үшін қосымша амалдар бар. Мыс, жиын үшін in операторы – мәннің сол жиынға тиістілігін тексереді. K жиыны берілсін :K := [1, 4, 7, 10, 13, 16] ;мұнда 1 in K өрнегі ақиқат (true мәніне ие), ал 8 in K өрнегі жалған (false мәніне ие), өйткені 1 К жиынына тиісті, ал 8 мәні К-да жатпайды.

   =       тең      <>       тең емес      >       үлкен     <       кіші  

   >=    үлкен не тең      <=      кіші не тең   

   not   логикалық ЕМЕС –

теріске шығару

ЖӘНЕ логикалық амалының орындалу нәтижесі екі операнд бірдей ақиқат болғанда ғана true –ге тең. НЕМЕСЕ логикалық амалының орындалу нәтижесі әйтеуір бір операнд ақиқат болғанда true мәнге ие болады. Егер операндтар бір-біріне тең болмаса, онда жоққа шығарушы НЕМЕСЕ амалының нәтижесі ақиқат болады.

Цикл операторлары әрекеттердің бір ғана ізбен бірнеше рет қайталануын ұйымдастыруға мүмкіндік береді. Delphi-де бұл мақсатты орындайтын үш оператор бар. Олар:

38

Page 36: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

циклдің «жай» операторы циклдің шартты операторы қайталаудың шартты операторы.

Циклдің «жай» операторы, оның қайталау саны алдынала белгілі болған жағдайда қолданылады және ол былай жазылады:

For санауыш:=1-өрнек to 2-өрнек do әрекет;Санауыш-бұл цикл операторы орналасқан логикалық блоктың

алдында жариялануға тиісті айнымалы және оның типі саналатын типтердің біріне, әдетте Integer-ге тиесілі болуы тиіс. Мұндағы 1-өрнек пен 2-өрнек тұрақты немесе идентификатор бола алады. Әрекет – Delphi-дің бір немесе бірнеше операторларын білдіреді. Оператор жұмысы басталғанда айнымалы-санауыш 1-өрнектің мәнін қабылдайды. Егер мұнда санауыш мәні 2-өрнек мәнінен кем не оған тең болса, онда әрекет құрамына енетін операторлар орындалады. Міне осы бір цикл «жай» деп саналады. Содан соң айнымалы-санауыш ағымдағы келесі мәнді қабылдап, жаңа цикл басталады, яғни ол 2-өрнекпен санауышты салыстырады, әрекетті орындайды. Осылайша айнымалы-санауыштың мәні 2-өрнек мәнінен асқанға дейін цикл жалғаса береді.

Цикл операторының жұмысында айнымалы-санауыш өсу орнына кемитін жағдай да болуы мүмкін. Ондай жағдайда оператор былай жазылады:

For санауыш:=1-өрнек downto 2-өрнек do әрекет;Мұнда 1-өрнектің мәні 2-өрнектен үлкен не оған тең болуы

тиіс.Циклдің қайталану саны алдынала белгісіз болған жағдай үшін

мына түрде жазылатын циклдің шартты операторын пайдаланған жөн:

While шарт do цикл денесі;Бұл цикл шарт ақиқат болып тұрған кездің барлығында

орындалады. Мұнда шарт бірден жалған болса, онда цикл денесі бір рет те орындалмайды. Мұндай циклдің шарты мен циклдің аяқталуын жазуда өте мұқият болу керек, әйтпесе while циклі шексіз рет қайталанып, бағдарламаның орындалмай тұрып қалуына әкеліп соқтырады.

39

Page 37: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Қайталаудың шартты операторы алдымен цикл денесін орындайды, сонан соң барып шарттың орындалуын тексереді. Бұл оператор былай жазылады:

Repeat Цикл денесі Until шарт;Циклдің бұл түрі оның ең болмағанда бір рет орындалуын

ұйымдастырады. Мұнда цикл шарт ақиқатқа айналғанша орындалуын жалғастырады және цикл денесі логикалық begin/end жақшасына алынбай жазылады. Цикл денесінің бас-аяғы repeat және until түйінді сөздерімен анықталады.

Цикл операторларымен қоса арнайы командалар да қолданылады, олар:

циклді үзу командасы циклді жалғастыру командасыБірінші команда цикл денесі операторларының орындалуы

кезінде оны аяқтау қажет болғанда пайдаланылады және ол былай жазылады: Break;

Осы команда орындалғанда басқару цикл операторынан кейінгі бірінші операторға беріледі.

Continue; командасы цикл денесіндегі басқа операторларды аттап өтіп бірден циклдің орындалуын жалғастыруға мүмкіндік жасайды.

Бағдарламаның орындалу ретін өзгертуге мүмкіндік беретін тағы бір оператор бар, ол көшу операторы: goto белгі;

Мұнда белгі ретінде кезкелген жарамды идентификатор немесе 0 мен 9999 аралығынан алынған сандар пайдаланылады. Белгіні алдынала айнымалыларды сипаттау бөлімінде var көмегімен емес, label түйінді сөзі арқылы сипаттау керек:

Label белгі; немесе label белгілер тізімі;Бағдарлама бойынша көшу жоғары және төмен қарай да

орындала береді. Мұнда белгі көшу жүргізілетін оператордан қос нүкте(:) арқылы ажыратылады. Көшу операторының қолданылу мысалын қарастырайық:

 var X, Y: Integer;   label A, B;   begin

40

Page 38: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

    A: X:=5 ;       . . .    бағдарлама операторлары    goto B;       . . .    B: Y:=25;    goto A;   end;

Осы мысалдағы бағдарламаны аяқтауға тиіс end операторы ешқашан орындалмайды, мұнда бағдарлама көшу операторларының жұмысы нәтижесінде шексіз қайталана береді. Сондықтан goto операторын программистер көп қолданбауға тырысады. Бағдарламада оның орнына шартты не циклдік операторларды пайдалану әлдеқайда тиімді.

Goto операторын тек бірнеше қабаттасқан циклдерден шығу кезінде қолданған дұрыс, әйтпесе одан шығу үшін бірнеше рет break командаларын қолдануға тура келеді.

8. Файлдармен жұмыс істеуге арналған компоненттер.

Бағдарламалау процесіндегі ең маңызды жұмыстың бірі – ол файлдармен жұмыс болып табылады. Осы жұмыс нәтижесінде ақпаратты есептеуге, оны сақтауға және файлдармен басқа да әрекеттерді орындауға мүмкіндік аламыз. Delphi-де: файлдарды құруға, іздеуге, оқып-жазуға, атын өзгертуге және директорийге өзгеріс енгізуге толық болады. Сонымен файлдармен жұмыс істей алатын компоненттерге Delphi-дің басты бетінде орналасқан ListBox, ComboBox, Memo компоненттері жатады. ListBox пен ComboBox үшін компоненттердің әр жолы Items[i]-тің, ал Memo үшін Lines[i]-тің обьектісі болып табылады, мұндағы i – нөлден бастап саналатын жол нөмірі.

Компоненттерге жолды Add және Insert әдістері арқылы қосуға болады:

begin Memo1.Lines.Add('Бірінші жол'); ComboBox1.Items.Add('Бірінші жол');

41

Page 39: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

 ComboBox1.Items.Add('Екінші жол'); ListBox1.Items.Add('Бірінші жол'); ListBox1.Items.Add('Екінші жол');end ;

Add әдісі арқылы жолды соңына,ал Insert-тің қосымша параметрлерін пайдаланып өзіміз қалаған жолдан кейін қосуға болады. Ол былай жүзеге асады: ComboBox1.Items[0] := 'Бірінші жол өзгерді' ;   ListBox1.Items[1] := 'Екінші жол өзгерді' ;

ComboBox компонентінде (Edit компонентіндегі сияқты) енгізілген мәтін сақталатын қосымша Text қасиеті бар:

ComboBox1.Text := ' Енгізілетін мәтін ';Енді Enter пернесін басу арқылы осы компонентке қажет

ақпаратты енгізу және оны Escape пернесімен жоюды қарастырайық. Ол үшін: Пішіндегі ComboBox-ты белгілеңіз және обьектілер инспекторындағы Events астарына көшіңіз. Осындағы өңдегіш onkeypress-ті екі рет шертіңіз. Delphi жүйесі өңдеуші жобасын дайындады, енді осында былай деп жазыңыз:

begin   if Key=#13 then      ComboBox1.Items.Add(ComboBox1.Text);   if Key=#27 then      ComboBox1.Items.Delete(ComboBox1.Items.Count-1);end ;

42

Page 40: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мұндағы Key – басылған перненің коды бар өңдеуіштің қандай да бір айнымалысы, ал #13 пен #27 – Enter мен Escape пернелерінің сәйкес кодтары. Items.Count – компонентте тұрған жолдар саны. Мұнда жолды есептеу 0-ден басталатындықтан, одан 1-ді кемітуіміз керек. Сонда Items.Count-1 әрдайым соңғы жолды көрсетіп тұрады. Escape пернесін біртіндеп басу арқылы барлық жолды жоюымызға болады. ComboBox1.Items.Delete(0) командасымен де сол жұмысты орындауға болады, бірақ мұнда тек бірінші жолдар ғана жойылады. Бірден барлығын жою үшін Clear әдісін қолданады.

Енді файлдағы бар нәрсені сақтау жағдайын қарастырайық. Ол үшін мына команданы орындайық:

   ListBox1.Items.SaveToFile(' файл_аты.txt ') ;Мұнда txt кеңейтілімінің орнына басқа өзіңіз қалаған

кеңейтілімді жазуыңызға немесе оны тіпті жазбауыңызға да болады. Алайда txt кеңейтілімі Блокнотты пайдаланып бағдарлама жазуда барынша қолайлы.

Файлды жүктеу қызметін LoadFromFile әдісі атқарады:Егер Сіз бағдарламаңызда ComboBox, ListBox немесе Memo

компоненттерімен жұмыс істемейсіз, ал ақпараттарды сақтауыңыз қажет болды делік, ол жағдайда не істейсіз? Ондайда компоненттердің бірін алып оны көрінбейтін етеміз. Ол үшін обьектілер инспекторында оның Visible қасиетіне False мәнін береміз. Одан компоненттің қызметі өзгермейді, бірақ компонент көрінбейтін болады.

Енді экранда оны жабарда өз қалпын сақтайтын және сол орында ашылатын бағдарлама құрайық. Мұнда бізге Пішіннің экранның сол жақ шеті мен жоғарғы жиегінен қашықтығын анықтайтын Left және Top қасиеттерінің мәнін сақтауымыз қажет. Олардың мәні пиксельмен өрнектеледі және ол Integer. Осы мәндерді IntToStr операторының көмегімен жолдық мәнге айналдыру керек.

Сонымен Пішінге көрінбейтін ListBox орнатып, пішіндегі оның көрінбей тұрған орнын шертіңіз, сонда обьектілер инспекторында оның қасиеттері көрінетін болсын және Events астарына көшіңіз. Осындағы OnClose өңдеуішін шертіп, шыққан кодтар терезесіне мынаны жазыңыз:

begin   ListBox1.Items.Clear;

43

Page 41: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

 ListBox1.Items.Add(IntToStr(Form1.Left)); ListBox1.Items.Add(IntToStr(Form1.Top));   ListBox1.Items.SaveToFile('MyFormPos.txt');  end ;

Міне осы өңдеуіш пішіннің экрандағы орнын сақтайды. Енді бағдарлама жүктелген кезде пішінді орнына

орналастыратын өңдеуіш жазайық. Өңдеуіш жобасының oncreate оқиғасын құрыңыз. Бұл оқиға ОЖ арқылы пішінді құру сәтінде пайда болады. Міне осы сәтте оған қажетті қасиеттерді меншіктеу қажет. Соның бағдарламасын жазайық:

begin   if FileExists('MyFormPos.txt') then    begin     ListBox1.Items.LoadFromFile('MyFormPos.txt');     Form1.Left:=StrToInt(ListBox1.Items[0]);     Form1.Top:=StrToInt(ListBox1.Items[1]);    end ;end ;

Мұнда 1-жолда файлдың бар-жоқтығына тексеру жүргізіледі, егер ол жоқ болса, онда қате туралы хабарлама шығады. Дегенмен ескертпеден соң да пішін жобалаған орында ашылады, ал жабылар кезде қажетті файл қайта қалпына келеді. Мұндағы логикалық жақшада MyFormPos.txt файлы бағдарламасы бар бумада жатқанда ғана орындалатын кодтың өзі болады, өйткені мұнда салыстырмалы орын көрсетілген. Нақты, мыс, C:\Program Files\MyProg\MyFormPos.txt. орналасу орнын көрсетуге де болады.

Файлдың бар-жоқтығын ерекше жағдайларды бақылаудың көмегімен де орындауымыз мүмкін. Арнаулы оператордың көмегімен оны ұстап алып, бағдарламада қате кетірмеуге болады. Кәсіби бағдарламалардың Windows реестрінде өз орны сақталады. Оған да келерміз. әзірше бұл кіріспені аяқтаймыз.

9. Файлдармен тікелей жұмыс.

Delphi жүйесіндегі файлдармен жұмыс технологиясы әрекеттердің белгілі бір ретін орындауды талап етеді:

44

Page 42: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

1. Ең алдымен файл ашылуы тиіс. Жүйе басқа қолданбалар-дың файлдармен жұмыс істеуге кедергі келтірмеуін бақылайды. Осы кезде файл қандай режимде – ақпараттар-ды өзгерту немесе оны тек есептеу үшін ғана ашыла ма, сол бірге анықталады. Файл ашылған соң бағдарламаға өңдеу-дің барлық процедураларында осы файлды көрсетуге қолданылатын оның идентификаторы орнына қайтарылады.

2. Файлмен жұмыс басталады. Ол файлды жазу, есептеу, іздеу және басқа да операциялар болуы мүмкін.

3. Файл жабылады. Енді ол басқа қолданбалар үшін тағы да шектеусіз қол жетімді болады. Файлдың жабылуы оған енгізілген барлық өзгерістердің сақталуына кепілдік береді.

Delphi-де файлдармен жұмыстың бірнеше тәсілдері жүзеге асырылады. Қазір біз файлдық айнымалыны пайдалануға байланысты стандартты тәсілмен танысамыз.

Файлдық айнымалы файлды көрсету үшін енгізіледі. Ол File түйінді сөзінің көмегімен жасалады:

Var F: File;Осылайша сипатталған файлдық айнымалы типтелмеген деп

саналып, файлдың белгісіз құрылымдармен жұмыс істеуіне мүмкіндік береді. Мәліметтер файлды ашқан кезде блок бойынша мөлшері 1 байттан бастап есептеледі және жазылады.

Алайда көбінесе бірыңғай жазбалардан тұратын файлдар пайдаланылады. Мұндай файлдарды сипаттау үшін жоғарыдағы сипаттамаға жазбаның типі көрсетіліп, былай толықтырылады

Var F: File of жазба_типі;Тип ретінде базалық типтерді немесе өзіндік типтерді

қолдануға болады. Мұнда тип үшін байтпен алынған дәл мөлшер болуы маңызды. Өйткені осыдан бұрын айтылғандай, String типі таза түрінде емес, тек String[N] түрінде ғана қолданыла алады.

Файлдан есептелген немесе файлға жазылған мәліметтер кәдімгі айнымалылардың құрамында болады, ол айнымалы да файлдық айнымалының типіндей болуы тиіс.

Сондықтан бағдарламада алдымен қажетті типті сипаттап алып, сонан соң барып осы типтегі файлдық және кәдімгі екі айнымалыны енгізейік:

45

Page 43: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Файлды ашу үшін, оның орны көрсетілуі қажет. Ол үшін файлдық айнымалы оның адресі бойынша анықталатын тиісті файлмен байланысты болуы тиіс. Файл адресі дискі мен каталогы көрсетілген('C:\Мои документы\Мои рисунки\FileName.ini') – абсолютті немесе салыстырмалы болуы мүмкін. Салыстырмалы адресті тиісті кеңейтілімі бар файлдың аты арқылы көрсету жеткілікті. Оны AssignFile операторы арқылы былай сипаттауға болады:

AssignFile(SaveF, 'C:\Мои документы\Мои рисунки\FileName.ini');   AssignFile(SaveF, 'FileName.ini');

Енді файл ашылуы тиіс. Файлдың Rewrite операторы арқылы ашылуы оның қайта

құрылуына алып келеді, яғни бұл бұрынғы файл ескертусіз жойылады да, оның орнына берілген типтегі мәліметтерді жазуға дайын жаңа файл құрылады деген сөз. Егер файл жоқ болса, онда ол жаңадан жасалады.

46

Page 44: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Файлды Reset операторымен ашқанда ол бұрынғы файлды мәліметтерді есептеу немесе оларды жазу үшін ашады және оның көрсеткіші файлдың басына орнатылады:

Rewrite(SaveF);  Reset(SaveF);

Осы операторлардың әрқайсысының типтік емес файлдар үшін мағынасы болатын міндетті емес екінші параметрлері болуы мүмкін және ол мұндай файлдың жазба ұзындығын байтпен былай көрсетеді:

Rewrite(SaveF, 1);   Reset(SaveF, 1);

Файлды оқу Read операторымен жүргізіледі:   Read(SaveF, SaveV);

Файлға жазу Write операторы арқылы орындалады:Write(SaveF, SaveV);Файлды оқу мен оған жазу көрсеткіштің ағымдағы

позициясынан бастап жүргізіледі де, содан соң көрсеткіш келесі жазбаға барып орналасады. Керекті файлдың бар-жоқтығын FileExists операторы арқылы тексеруге болады:

   if FileExists('FileName.ini')      then Read(SaveF, SaveV);

Керекті жазбаға көрсеткішті Seek(SaveF,N) операторымен мәжбүрлеп орнатуға болады, мұндағы N – нөлден бастап саналатын жазба нөмірі. Мысалы, көрсеткішті 50-жазбаға орнату үшін былай жазады:    Seek(SaveF, 49);

Файлды біртіндеп оқу кезінде көрсеткіш файлдың соңына жетеді де, әрі қарай оқу кезінде «қате» туралы хабарлайды. Осы қате шықпау үшін, файлдың соңына жеткен-жетпегенін тексеруге EOF операторын пайдалануға болады:

while (not EOF(SaveF)) do      Read(SaveF, SaveV);

47

Page 45: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Файлдағы барлық жазбаны (көрсеткіштің тұрған жерінен файлдың соңына дейін) Truncate(SaveF) операторы қиып тастауға(өшіруге не қажет болса, жоюға) мүмкіндігі бар.

Файлмен жұмыс істеп болған соң оны жабу керек. Оны CloseFile(SaveF) ; операторы атқарады.

Енді тақырыптың бірінші бөліміндегі экрандағы өз орнын сақтайтын бағдарламаны өзгертуімізге болады. Мұнда жоғарыдағы суретте келтірілгендіктен, сипаттауды қалдырамыз.

Пішіннің OnCreate оқиғасын өңдеушіні құрайық:

procedure TForm1.FormCreate(Sender: TObject) ;begin   AssignFile(SaveF, 'Init.ini') ;   if FileExists('Init.ini') then     begin       Reset(SaveF) ;       Read(SaveF, SaveV) ;       Form1.Left := SaveV.X ;       Form1.Top := SaveV.Y ;       Form1.Caption:=SaveV.Caption ; //осы //айнымалылар Пішіннің тақырыбын қосымша сақтайды end ;end ;

Енді OnClose оқиғасын өңдеушіні құрайық:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction) ;beginRewrite(SaveF) ; //мұнда файлдың бар-жоқтығын //тексерудің қажеті жоқ, оны қайта құрамыз.   SaveV.X := Form1.Left ;   SaveV.Y := Form1.Top ;   SaveV.Caption := Form1.Caption ;   Write(SaveF, SaveV) ;   CloseFile(SaveF) ;end ;

48

Page 46: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Файл осы жағдайда есептеледі де, өзіміз көрсеткен орынға жазылады. Алайда бұл жерде жұмыс істейтін бағдарламадан керекті файлды таңдап ала білу қажет. Ол туралы тақырыптың соңғы бөлігінде айтатын боламыз.

10. Файлдарды ашудың және сақтаудың диалогтары

Алдыңғы тақырыптарда біз бағдарлама мәтінінде жазылған адресі бар файлдармен жұмыс істеуді үйрендік. Әрине, біз қалауымызға қарай кез-келген файлды қарастырғымыз келеді. Delphi бізге мұндай мүмкіндік бере алады. Жұмыс істеп тұрған бағдарламада файлдарды таңдауды жүзеге асыратын компоненттерді қарастырайық. Delphi –дің файл таңдау диалогы бағдарламаға қандай файлмен жұмыс істеуге болатынын көрсетуге мүмкіндік жасайды.

Компоненттер палитрасының Dialogs астарында OpenDialog және SaveDialog компоненттері бар. Осы астарда орналасқан диалогтардың барлығы тек жобалау кезеңінде ғана көрінетін, ал жұмыс істеп тұрған бағдарламадағы Пішінге көшірілген кезде көрінбейтін компоненттер.

OpenDialog компоненті бағдарламалық стандарт терезесін ашуды, ал SaveDialog компоненті – сақтау терезесін ашуды ұйымдастырады.

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

Диалогтың ең басты әдісі – Execute. Ол файл таңдау терезесіндегі « ашу» немесе « сақтау» батырмаларын басу кезінде жұмыс істейді. Мысал ретінде Memo редакторына жүктеу үшін файл таңдауға мүмкіндік беретін және оны редакциялағаннан кейін сақтауды енгізейік.

49

Page 47: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Кәне, Пішінге екі диалогты , Memo мәтіндік редакторын және үш Button батырмаларын орналастырайық. Біреуінің Caption қасиетіне « Открыть», екіншісіне «Сохранить», үшіншісіне «Сохранить как» деп жазайық.

Onсlick өңдеуіштің « открыть » бағдарламасын қосып, жазамыз:

if OpenDialog1.Execute then Memo1.     Lines.LoadFromFile('OpenDialog1.FileName');

Файл таңдау нәтижесінде OpenDialog компонентінің FileName қасиеті таңдалған файдың толық адресінің мәніне ие болады., ал ол мәнді біз Memo компонентін жүктеу жайлы функциясына енгізген болатынбыз.

Әрине, бұл жазылған өрнектер тек бір жолға жазылғанда ғана дұрыс болады. Ал егер бағдарлама OpenDialog өрнегін бірнеше рет қолданса, онда оны қайта-қайта жазудан жалығатын боласың. Бұл жағдай үшін Delphi-де «with – біріктіруші оператор» дейтін оператор бар. Ол осындай қайталап жазуға тура келетін кез-келген объектілер үшін қолданылады.

Ол былай жазылады: with Объект do      begin ...      end;

Логикалық жақша ішіне объект қасиетін бірден жазып көрсетуге болады, егер жақша ішінде бір ғана оператор болса, онда ол міндетті емес. Файлды жүктеу үзіндісін « біріктіру операторын» пайдаланып, қайта жазайық:

50

Page 48: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

   with OpenDialog1 do      if Execute then     Memo1.Lines.LoadFromFile('FileName');

OpenDialog пен SaveDialog компоненттерінің қасиеттері бірдей болғандықтан, мәтінді сақтау да сондай ұқсас. « Сохранить как » батырмасын басудың өңдеуішін құрайық, ол үшін былай жазамыз:

with SaveDialog1 do      if Execute then        begin           Memo1.Lines.SaveToFile('FileName');    OpenDialog1.FileName:=FileName; // Жөнделген //мәтін бастапқы мәтінді өшірмес үшін        end;

Соңынан « Сохранить» батырмасы үшін жазайық: Memo1.Lines.SaveToFile('OpenDialog1.FileName'); //қайдан бастап санады, сонда сақтайды ;

Осындай үзінділермен жұмыс істеу кезінде барлық файлдар ішінен қажетті директориядан ғана таңдауға болатынын байқаймыз.

Сонда, мысалы, мәтіндік файлдарды немесе өзіміз қалаған басқа файлдар типін көрген ыңғайлы. Ал ол үшін сүзгілер, яғни біздің компоненттердің Filter қасиеті қолданылады. Ол объектілер

инспекторында бапталады. Оны таңдау кезінде сүзгілер редакторына көшуіміз мүмкін. Мұнда FilterName бағанына

51

Page 49: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

сүзгілер аттарын, ал Filter бағанына – файлдар маскаларының тізімін жазамыз.

Біздің жағдайда файл маскасы мына түрде болады:

*. файл_кеңейтілімі ;

Мұндағы  * – кеңейтілімге жарайтын кез-келген аты бар файл таңдалатынын білдіреді.

Title диалогының қасиеті бізге тақырыпқа қажетті сөзді жазу мүмкіндігін береді. Егер оны бос қалдырсақ, онда тақырыпта стандартты « открыть » немесе « сохранить » жазбалары тұрады. InitalDir қасиеті оны ашқан сәтте өзімізге қажет директорияда тұруға мүмкіндік жасайды. Мұны біз жобалау кезеңінде де, бағдарламалау бойынша да атқара аламыз.

11. Қосымша пішіндермен жұмыс.

Delphi –де де қосымша Пішіндермен жұмыс істеуге мүмкіндік бар. Мұнда біз тұтынушымен сұхбат жүргізуге және қажетті ақпаратты қабылдауға және оны шығаруға мүмкіндік беретін

52

Page 50: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

қосымша пішіндерді оңай құра аламыз. Біз мұнда Delphi –дің негізгі пішініне қосымша бірнеше пішіндерді құрып үйренеміз.

Бағдарламаға жаңа пішін енгізу басты беттегі батырманы (New Form) басу арқылы, соған қоса тиісті командаларды : File -» New -» Form орындау арқылы жүзеге асырылады.

Пішін оның жұмысын сипаттайтын жаңа модульмен бірге құрылады. Оны бағдарламадан жоюға болады: ол үшін батырма бар және мына меню командасы: Project -» Remove from project.... қолданылады. Пішін модульмен бірге құрылатындықтан, көрінген терезеден жойылуға тиісті модульді таңдау керек. Ал егер Unit 1 модулінің өзін жойғымыз келсе не болады, сонда не қалады?

Project -» View Sourse командасын орындайық. Код редакторында (Бас терезенің коды бейнелетін пішіннің емес) жаңа астар пайда болады. Мұнда Бас терезе көрінбейді, бірақ барлық жобаны басқарады және жалпы пішінсіз де жұмыс істей алады. Оған өз кодыңды орналастырып және Паскальдағы сияқты бағдарлама жазуымызға болады.

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

53

Page 51: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бағдарламада біз мұнымен айналыспаймыз, алайда бір уақытта бірнеше пішіннің жасалуы бағдарламаның орнын азайтады және қаншама уақыт алады. Сондықтан да қажетті сәтте ғана тиісті пішінді жасауды үйренуді ұсынамын.

Біріншіден, пішіннің өздігінше жасалуын тоқтату керек. Ол үшін Project -» Options командасын орындаңыз. Көрінген терезеде: Main Form(Бас Пішін), Auto-create (өздігінен жасалатын) және AvaiLable(қол жетімді) түріндегі жоба пішіндері бейнеленеді. Мұнда бізге пішінді өздігінше жасалатын түрден қолжетімді түрге көшіруіміз қажет. Ол: “>” батырмасын (керісінше амал – “<”) басу арқылы орындалады.

Сонымен Form1 Бас пішіні өзі жасалады, ал қосымша Form2 пішінін біз бағдарламада қажетіне қарай өзіміз құрамыз. Егер біз осы айтылғанды жасамаған болсақ, онда экранда жаңа пішін шығару үшін былай деп жазсақ жеткілікті : Form2.Show; // жай пішін үшін Form2.ShowModal; // модальды пішін үшін

Егер біз қосымша пішіндерді қолжетімді түрге көшірген болсақ, онда осындай пішінді шақыру алдында, оның бар-жоқтығын былайша тексеру қажет: if (not Assigned(Form2)) then // Пішіннің бар-//жоқтығын тексеру       Form2:=Form2.Create(Self);// Пішінді құру    Form2.Show; // (немесе Form2.ShowModal) //Пішінді //көрсету

Енді жай пішінмен Модалды пішіннің айырмашылығын қарастырайық. Жай пішін экранда орналасқан барлық пішіндердің бірінен біріне еркін көшуге мүмкіндік береді.

Ал модалдық пішін оны шақырған сәтте жобаның пішіндері арасындағы көшуді жабады да, жабылғанша тек сол ашылған пішінмен ғана жұмыс істейсіз.

Оған қарамастан екінші пішінді шақыруға әрекет жасасаңыз, бағдарлама мынадай сауал шығарады:

54

Page 52: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Ол сауалдың мазмұны мынау: Form1 пішіні Unit 2 модулінде жарияланған Form2 пішінін шақырып тұр, бірақ ол пішін қолданылған модульдер тізімінде жоқ.

Сіз оны қосқыңыз келе ме?Мұны директива {$R *.dfm} алдындағы модулдің басына

мына бағдарлама үзігін uses Unit2;қосу арқылы шешу керек. Негізінде мұны компиляция алдында «қолмен» қосуға да болар еді. Сонда сауал да болмайды. Бірақ соның қажеті бар ма?

Мұнда «Yes»» деп жауап қайтарып және F9 – ды басамыз. Алдымен пішінге оны жабу операциясын енгіземіз. Мұны

бірнеше тәсілмен істеуге болады. Батырманы алып, оған « Закрыть» деп жазып, сосын OnClick өңдеуішке былай жазамыз:

Form2.Close; // негізінде жай ғана Close;

Бұл оператор оны пішін менюінен шақырған кезде жұмыс істейді, әрине меню (Standard астарындағы MainMenu компоненті) оған енгізілген жағдайда . Бұл туралы алда әңгімелейтін боламыз.

Бізге енді модальды пішінге жататын пішіндердің жабылу тәсілдерін қарастыруымыз керек. Оның сұхбат жасауға арналған терезелерінде сұрақтарға жауап беруді қажет етеді.

Ол үшін пішінге мына : «Иә», «Жоқ» «Болдырмау» және т.б жауаптарға сәйкес батырмаларды орналастыру қажет. Әр батырманың mrYes, mrNo, mrCansel және басқа мәндерге ие ModalResult қасиеті бар. Мұнда таңдалған батырманың ModalResult мәні пішіннің осы қасиетіне беріледі. Бұл қасиет объектілер инспекторынан көруге болатын пішін қасиетінің тізімінде жоқ, бірақ оны бағдарламалық түрде таба аламыз. («Form2» деп жазып нүкте қой, сосын шыққан тізімнен ізде)

ModalResult қасиетінің mrNone мәнінен бөлек мәні бар батырмасын бассақ ( тіпті батырмада өңдеуші болмаса да) ол пішіннің жабылуына әкеледі. Осыдан кейін пішіннің осы қасиетін

55

Page 53: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

таңдау арқылы, тұтынушының қойылған сұраққа қандай жауап бергенін анықтауға болады:

procedure Tform1.Button1Click(Sender: Tobject);beginForm2.ShowModal;if Form2.ModalResult=mrYes then // Бұл оператор Form2 //жабылған соң ғана қолжетімді болады  Form1.Caption:='Тұтынушы оң жауап берді!';end;

Осы мысалдан көріп отырғанымыздай, бір пішіннен басқа пішіннің қасиеттеріне , сол сияқты олардың компоненттеріне қатынас жасау үшін сол пішіннің аты көрсетілуі қажет екен. Оған қоса біз оның жұмысын сипаттайтын модулде қолданылатын мәліметтерге де қол жеткізе аламыз. Ол үшін де модулдің аты көрсетілуі қажет. Мысалы, Unit2 модуліндегі X айнымалымына қатынас жасау үшін: Unit2.X деп жазамыз.

Көбінесе бағдарламада пішінді жабу сәтінде белгілі бір операциялар орындалуы тиіс. Ол пішіннің OnClose оқиға өңдеуішінде жасалады. Ал енді пішінді жабуды болдырмауды қарастырайық. Осы мақсатта OnCloseQuery оқиға өңдеуішін қолдануға болады. Ол өңдеуіштегі CanClose логикалық айнымалысының қабылдайтын мәніне байланысты. Пішін CanClose:=True; мәнін қабылдағанда ғана жабылады.

Егер біз мынадай код жазсақ:

procedure Tform1.FormCloseQuery(Sender: Tobject; var CanClose: Boolean);begin  CanClose:=False;end;

онда тұтынушы бағдарламаны тіпті де жаба алмайды, тек оны Windows-тың Міндеттер Диспетчерін/Диспетчер задач/ қолданып қана орындай алады.

56

Page 54: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

12. Ішкі бағдарламаларды құру және оларды қолдану

Ішкі бағдарламалар – бұл арнайы операцияларды орындау үшін қызмет ететін процедуралар мен функциялар. Delphi-дің көптеген стандартты ішкі бағдарламалары бар, соған қарамастан кейде мәліметтермен жиі қайталанатын операцияларды орындауға арналған, өзгеріп тұруы мүмкін өзіндік бағдарламалар құруға тура келеді.

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

Бөлінген есептердің өзі қажетіне қарай бағдарламалаушы алдына қойылған міндет қажетті деңгейге дейін жеңілдетілгенше (барынша қарапайым түрге келгенше ) бөліне береді. Осындай ішкі бағдарламалар процедуралар мен функцияларға жатады.

Бұлардың екеуімен де бірдей нәтижеге жетуге болады. Алайда олардың өзара айырмашылықтары бар. Процедура қажетті операцияларды орындап, тізімдегі өз параметрлеріне нәтижелерін қайтарып береді. Функция да осы айтылғандарды орындап, оған қосымша нәтижені өзіне меншіктелген мәнге қайтарады. Сонымен функция неғұрлым әмбебап объект.

Ішкі бағдарламаларды сипаттау Procedure немесе function түйінді сөздерінен басталып, содан соң жақшаға алынған оның параметрлерінің тізімдері жазылады. Функция жағдайында әрі қарай қос нүкте қойылып, қайтарылған мәннің типі көрсетіледі. Соңында ( ; ) міндетті түрде қойылуы қажет. Ал ішкі бағдарламаның коды түгелімен логикалық жақшаның ішіне жазылады. Функция үшін кодта функция арқылы қайтарылған мән меншіктелуі қажет. Ішкі програмаларды жалпы түрде жазайық:

procedure Процедура_аты(параметрлері);begin Процедура коды;end;

   function Функция_аты(параметрлері): нәтиже_типі;   begin    Функция коды;    Result:= нәтиже;   end;

57

Page 55: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Осылай сипатталған ішкі бағдарламалар негізгі бағдарламаға ол орындалуға шақырылғанға дейін орналастырылуы тиіс. Бұл орындалмаған жағдайда компиляция кезінде « белгісіз идентификатор» деген хабарлама шығады. Ал оны бақылап отыру оңай емес. Бұдан шығатын жол – ол ішкі бағдарламалардың тақырыбын бағдарламаның барлық мәліметтерін сипаттайтын орынға орналастыру.

Мұндағы параметрлер - өзара үтірмен ажыратылған, қос нүктеден соң типі көрсетілген идентификаторлар тізімі.

Егер тізімде түрлі типтегі идентификаторлар бірнешеу болса, онда олар бір-бірінен (; ) арқылы ажыратылып жазылады. Бәрі де жалпы мәліметтерді сипаттаудағыдай. Бұларды формальды параметрлер дейді.

Ішкі бағдарлама шақырылғанда олар үтірден кейінгі сол типтегі параметрге ауысады.

Ішкі бағдарламада параметрлер болмауы да мүмкін, ол кезде олар негізгі бағдарламадағы мәліметтердің өзімен операциялар орындай береді.

Енді жергілікті мәліметтер ұғымын енгізу керек. Бұл мәліметтер ішкі програмаларды шақыру кезінде ғана болатын және пайдаланылатын айнымалылар, тұрақтылар мен ішкі бағдарламалар. Олар осы ішкі бағдарламада сипатталуы тиіс. Оның сипатталу орны – тақырып пен Begin түйінді сөзінің арасы. Жергілікті мәліметтердің аты бас тақырыптағы мәліметтер атымен бірдей болуы мүмкін, ол жағдайда жергілікті айнымалы қолданылады, бірақ одан бас тақырыптағы сол атпен берілген айнымалыға өзгеріс жасалмайды.

Жергілікті процедуралар мен функциялар да тек сол ішкі бағдарламаның ішінде ғана сипатталып, қолданыла алады. Айталық, екі санның қосындысын табу бағдарламасын жазу керек болсын дейік. Ол басқан кезде ішкі бағдарлама орындалатын Пішінге енгізілетін батырмадан (Button компоненті) және операндтарды енгізуге арналған екі енгізу жолынан (Edit компоненттері) тұрады.

58

Page 56: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Енді процедураны жазайық: var  Form1: TForm1;  A, B, kosyndy: Integer;procedure kos(A, B: Integer);implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin A:=StrToInt(Edit1.Text); B:=StrToInt(Edit2.Text); Kos(A, B); Caption:=IntToStr(kosyndy);end;

procedure kos (A, B: Integer);begin kosyndy:=A+B;end;

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

Енді осы операцияларды функция көмегімен атқарайық:var  Form1: TForm1;  A, B, kosyndy: Integer;

59

Page 57: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

  function kos (A, B: Integer): Integer;implementation{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);begin A:=StrToInt(Edit1.Text); B:=StrToInt(Edit2.Text); kosyndy=kos(A, B);// бұл жерде ненің, қайдан //алынатындығы әлдеқайда түсінікті сияқты Caption:=IntToStr(kosyndy);end;

function kos(A, B: Integer): Integer;begin Result:=A+B;end;

Делфи-де көлемі өте үлкен мәліметтер құрылымымен, мыс, бірнеше мың (одан да көп) элементтерден тұратын жиымдармен жұмыс істеудің ерекшеліктері бар. Міне осындай көлемдегі мәліметтерді ішкі бағдарламаға беру кезінде жүйе бұған көп уақыт пен ресурс шығындайды.

Сондықтан бұл кезде ішкі бағдарламаға олардың элементтерінің өз мәндері емес, айнымалы не тұрақтының атындағы сілтеме жіберілетін болады.

Ол өзіміз аты бойынша жібергіміз келген параметрлердің алдына var түйінді сөзінен бұрын жазу арқылы жүргізіледі.

function Kos(A, B: Integer; var Arr: array[1..1000000] of Integer): Integer;

Біздің ішкі бағдарлама мен батырманы басу өңдеуішінің сипаттамасына зер салсақ, онда өңдеуіштің аты алдында (ButtonClick) Tform1 тұрғанын көреміз. Сонымен Delphi ButtonClick- ті Form1 обьектісінің әдісі ретінде құрып тұр. Ал оның алдындағы Т әрпі оның тек обьект әдісі ғана емес, обьект класының әдісі екенін көрсетеді. Мұны көп тереңдетпей айтсақ, біздер енді

60

Page 58: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

процедуралар мен функцияларды Tform1 класының әдісі ретінде сипаттау арқылы класс обьектілерін олардың аттарын көрсетпей-ақ пайдалануға мүмкіндік аламыз, бұл бізге өте ыңғайлы. Сонымен бізге ішкі бағдарламада Пішінде орналасқан қандай да бір компонентті (мыс, Button1) пайдаланғымыз келсе, онда оны Form1.Button1.Width:=100; деп емес, енді былай жазамыз:

Button1.Width:=100;   //батырма еніМұнда оған қоса оның бірге қондырылған ішкі айнымалыларын (мыс, Sender обьектісі сияқты) пайдалануға мүмкіндік туады. Әрбір өңдеуіште бұл обьект шақырылатын ішкі бағдарлама көзін (біздің мысалда: Sender=Button1 қосынды табу көзін) көрсетеді.

Ішкі бағдарламаны класс әдісі ретінде сипаттай отырып, оны біз Delphi орналастырған – Tform1 класын сипаттау ішіне орналастыруымыз қажет. Button1Click процедурасының сипаттауы қайда орналасқанын қараңыз. Ол үшін Button1Click ішкі бағдарламаның ішіне меңзерді қойып, CTRL+SHIFT және меңзерді басқаратын «жоғары» немесе «төмен» батырмаларын бір уақытта басыңыз. Сонда біз ішкі бағдарламаның сипаттауына көшеміз, ал одан кері қайту үшін сол амалды тағы бір рет орындаңыз. Өз ішкі бағдарламаңыздың сипаттауын жаңа жолдың жанына қойсаңыз, онда TForm1 жазылмайтынын байқайсыз.

13. Delphi – дегі ерекше жағдайлар

Delphi – дегі ерекше жағдайлар тұрақты кездесіп тұрады. Ерекше жағдайлар деп нені айтамыз? Ол нәтижесінде қате пайда болатын және соның негізінде бағдарламаның орындалуы үзілетін жағдай. Мыс, нөлге бөлу – ерекше жағдайдың көп кездесетін түрінің бірі.

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

Бағдарламалаушы ерекше жағдайды бақылау үшін ол мүмкін болатын үзіндінің нұсқасын да, сол сияқты оның болуы мүмкін емес балама нұсқаны да дайындауы қажет. Сонда ерекше жағдайды бақылайтын оператор былай жазылар еді:

61

Page 59: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

try үзіндінің негізгі операторларыexcertүзіндінің балама нұсқасыend

Мұнда бағдарламаның негізгі бөлімін қамтитын оператордың try/excert бөлімі орындала бастайды. Осы бөлімнің қандай да бір операторында ерекше жағдай туа қалса, онда оның қалған операторлары орындалмай қалдырылады да, бөлімнің балама нұсқасы, яғни excert/end бөлігі орындалады. Ал егер бағдарламада ерекше жағдай байқалмаса, онда оның excert/end бөлігі қалдырылып кетеді.

Ерекше жағдайдың пайда болу/болмауына қарамастан, кодтың үзіндісі орындалуы қажет болған кейбір жағдайларда оны бақылап тексерудің тағы бір нұсқасын енгізуге болады:

try   операторларfinally   қорытындылаушы әрекеттерend;

Мұндағы негізгі операторлар дұрыс орындалуы да немесе ерекше жағдай туғызуы да мүмкін. Ал үзіндінің finally бөлігіндегі қорытындылаушы операторлар қандай жағдайда да орындалады.

14. Жолмен жұмыс

Delphi жүйесі жолдан тиісті ақпаратты ала отырып, оны өзімізге керек түрде бейнелеуге мүмкіндік береді. Бұл жүйеде жолды мынадай пішімдерге түрлендіруге болады. Олар:

Бүтін және жылжымалы нүктелі бөлшек түріндегі сандық пішім;

Уақыт мерзім, уақыт-мерзім пішімі; Символдарды жоғарғы және төменгі регистрлерге

түрлендіру;

62

Page 60: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жолдарды салыстыру, жолдан іздеу жүргізу және ішкі жолдарға көшіру және т.б.

Delphi тікелей жолдармен жұмыста бір ғана, конкатенация, яғни біріктіру операциясын қолдайды. Бұл операция бір жолды басқа жолға біріктіреді:

var S, S1, S2: String;begin S:=S1+S2;end;

Мұндағы S – қорытқы жол, ал S1,S2 – жолдар. Жолдың ұзындығы, яғни саны Length(S: String) ішкі функциясы арқылы қайтарылады.

Жолмен толыққанды жұмыс атқару үшін мынадай стандартты процедуралар мен функциялар пайдаланылады.

Жолды сандық пішімге және оны керісінше түрлендіру функциялары;

Есептеулерді жүргізу барысында мәліметтерді енгізу және оның нәтижелерін шығару үшін мына фунциялар қолданылады:

IntToStr(N: Integer): String функциясы – N бүтін санын жолға түрлендіреді.

StrToInt(S: String): Integer функциясы – S жолын бүтін санға түрлендіреді.

FloatToStr(X: Extended): String функциясы – Х жылжымалы нүктелі санын жолға түрлендіреді.

StrToFloat(S: String): Extended функциясы – S жолын жылжымалы нүктелі санға айналдырады.

Мерзім мен уақытты түрлендіру процедуралары мен функциялары

Алдымен солардың ағымдағы уақыт пен мерзім туралы ақпарат беретіндерін қарастырайық. Олар:

Now: TdateTime функциясы – ағымдағы мерзім мен уақытты қайтарады.

Now: TdateTime функциясы – ағымдағы мерзімді қайтарады.Time: TdateTime функциясы – ағымдағы уақытты қайтарады.

63

Page 61: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Ал мына функциялар оларды құрайтын (жыл, ай, күн, апта күні, сағат, минут, секунд, миллисекунд) шамалармен жұмыс атқарады:

DayOfWeek(Date: TDateTime): Integer функциясы – ағымдағы апта күнінің нөмірін қайтарады, мыс: 1-жексенбі, 7-сенбі.

DecodeDate(Date: TDateTime; var Year, Month, Day: Word) процедурасы – Date мерзімге бөледі: мұнда,Year – жыл, Month – ай, Day – күн.

DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) процедурасы – Time уақытқа бөледі: мұнда, Hour - сағат, Min - минут, Sec - секунд, Msec – миллисекунд.

EncodeDate(Year, Month, Day: Word): TdateTime функциясы – Year – жыл, Month – ай, Day – күн мәндерін TdateTime типінің мәндеріне біріктіреді.

EncodeTime(Hour, Min, Sec, MSec: Word): TdateTime функциясы – Hour - сағат, Min - минут, Sec - секунд, Msec – миллисекунд мәндерін TdateTime типінің мәндеріне біріктіреді.

Енді мерзім мен уақытты TDateTime пішімінен жолдық пішімге ауыстыратын функцияларды қарастырайық:

DateTimeToStr(DateTime: TDateTime): String функциясы – мерзім мен уақытты жолға түрлендіреді.DateToStr(Date: TDateTime): String функциясы – мерзімді жолға түрлендіреді.

TimeToStr(Time: TDateTime): String функциясы – уақытты жолға түрлендіреді.

Мына функциялар қайтарылатын жолдардың параметрлерімен жұмыс атқарады:

AnsiLoverCase(const S: String): String функциясы – төменгі регистрге түрленген S жолын қайтарады.

AnsiUpperCase(const S: String): String функциясы – жоғарғы регистрге түрленген S жолын қайтарады.Length(const S: String): Integer функциясы – S жолындағы символдар санын қайтарады.

Trim(const S: String): String функциясы – S жолдағы бастапқы және соңғы бос орындар мен басқарушы символдарды жояды

64

Page 62: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

TrimLeft(const S: String): String функциясы - S жолдағы бастапқы бос орындар мен басқарушы символдарды жояды.TrimRight(const S: String): String  функциясы - S жолдағы соңғы бос орындар мен басқарушы символдарды жояды.

Мына функциялар екі жолды өзара салыстырады:AnsiCompareStr(const S1, S2: String): Integer функциясы - S1

мен S2 жолдарын символдар регистрін есепке ала отырып салыстырады. Егер S1<S2 болса, оған <0 мәнін, S1=S2 болса, 0 мәнін, ал S1>S2 болса, >0 мәнін қайтарады.

AnsiCompareText(const S1, S2: String): Integer  функциясы - S1 мен S2 жолдарын символдар регистрін ескермей-ақ салыстырады. Егер S1<S2 болса, оған <0 мәнін, S1=S2 болса, 0 мәнін, ал S1>S2 болса, >0 мәнін қайтарады.

Ал мына функциялар ағымдағы жолдардан алынып тасталатын немесе қосылатын ішкі жолдарды іздестіреді:

Pos(Substr: String; Str: String): Integer функциясы – Str жолына SubStr-дің алғашқы ену позициясын(индексін) қайтарады. Егер Str жолында SubStr жоқ болса, оған 0 қайтарылады.

Insert(Source: String; var S: String; Index: Integer): Integer функциясы – S жолына нөмірі Index-ке тең символдан басталатын Source жолын қосады.Delete(var S: String; Index, Count: Integer): Integer функциясы - S жолынан нөмірі Index-ке тең символдан басталатын және Count –қа дейінгі символдардан тұратын ішкі жолды жояды.

Мынау жол бөліктерін көшіретін функция:Copy(S: String; Index, Count: Integer): Integer  функциясы - S

жолына нөмірі Index-ке тең символдан басталатын және Count –қа дейінгі символдардан тұратын ішкі жолды қайтарады.

Бұдан басқа осы функцияны үтірден кейін қажетті цифрлар саны бар бүтін емес сандарды экранға шығаруға пайдалануға болады. Ол үшін, әуелі Real пішімді сандардан жол алайық. Содан соң Pos функциясы арқылы осы жолдағы үтір позициясын тауып, оған қажетті символ санын қосамыз және соны нәтижеге көшіреміз.

65

Page 63: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Мынау соның дайын функциясы:

function RealToStr(X: Real; Count: Integer): String; //Count - үтірден кейінгі цифр саныvar S: String;    N: Integer;begin  S:=FloatToStr(X); // үтірден кейінгі ұзын цифрлар тізбегі  N:=Pos(',', S);   //жолдағы үтір позициясы  N:=N+Count;   // үтірден кейінгі қажетті таңбалар саны //берілген жолдың ұзындығын есептеу  Result:=Copy(S, 1, N);end;

66

Page 64: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

II. Бағдарлама құрып үйрену Бұл бөлімде біз алдыңғы 1- бөлімде оқып танысқан Delphi

бағдарламалау тілі бойынша білігімізді осы визуалды ортада пайдалана білуге көмектеседі-ау деген төмендегідей практикалық жұмыстарды орындау арқылы жалғастырамыз.

ЕскертуDelphi ортасында бағдарламалау жұмыстарын қазақ тілінде

орындау үшін пішінді ашқан бойда (Form1) ең алдымен Object Inspector терезесінің Properties астарында Font қасиетінің тұсындағы (...) көп нүктеде шертеміз, сонда ашылған Шрифт терезесінде қазақ қарпін (біздің жағдайда: Times New Roman) таңдауымыз керек. Міне осы әрекеттен соң ғана пішіндегі барлық жазбалар қазақ тілінде жазылатын болады, ал ол қаріпті үлкейтіп-кішірейту жұмысы сол Шрифт терезесінде бұрынғыша атқарылады.

Практикалық жұмыстар

№1. «Менің бірінші бағдарламам»

Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру: 1. Бағдарламаны іске қосқанда төмендегі терезе көрінеді.

1-сурет.

2. Бағдарламадан шығу үшін тышқанмен «Жабу» батырмасын шерту қажет.

67

Page 65: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Бағдарламаны жүзеге асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге Label белгісі мен Button батырмасын орнату.3. Мына кестеде жазылған әрекеттерді орындау: 1 - кесте.

Белгі-ленген нысан

Object Inspector терезесінің астары

Қасиеттің аты/ Оқиғаның аты

Атқарылатын әрекет

Form1 Properties Caption(жазу) Пішінге «Жоба1» атын орнату

Color(Түс) clmoneyGreen түсін таңдау

Label1(Standard астары)

PropertiesCaption

«Менің алғашқы бағдарла-мам» жазу мәтінін енгізу

AutoSize(Автотаңдау)

Қасиеттің мәніне: True енгізу

Font - Color clYellow түсін таңдау

Button1(Standard астары)

Properties Caption Батырмаға «Жабу» атын орнату

Events OnClick Close;

4.Жобаны сақтаңыз, оны іске қосып, жұмыс істеуін тексеріңіз.

68

Page 66: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№2. Консольдық қолданба құруЖұмыстың мақсаты: Консольдық бағдарлама құру.1.Бас мәзірден File > New > Other (Файл> Жаңа > Басқа) командасын орындап, шыққан сұхбат терезедегі New астарынан Console Application (Консольдық қолданба) белгісін таңдау.

2-сурет2.OK батырмасын басқан соң экран енді мына түрде көрінеді:

3-сурет69

Page 67: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

3.Мәтін Delphi арқылы автоматты түрде генерацияланды. Оны жасалатын қолданбаның нобайы деуге болады. Бұл мәтінде негізінде ештеңе өзгертпеуге де болады – ол дайын бағдарламаға сәйкес келеді. Дегенмен, кейбір өзгерістер енгізейік.

4-сурет

5-сурет

70

Page 68: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№3. «Сәлемдесу»

Жұмыстың мақсаты - мына әрекеттерді орындайтын бағдарлама құру:1.Бағдарлама іске қосылғаннан кейін тышқанмен «Сәлемдесу» батырмасын басқанда «Алғашқы жетістігім» хабарламасын шығару.

6-сурет.2. Бағдарламадан шығу үшін тышқанмен «Жабу» батырмасын шерту керек.

Бағдарламаны орындау жоспарының сипаттамасы.1.Жаңа жоба ашу.2.Пішінге: Label белгісі мен екі Button батырмаларын орналастыру.3.Мына кестеде жазылған әрекеттерді орындау: 2-кестеБелгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/ Оқиғаның аты

Атқарылатын әрекет

Form1 Properties Caption Пішінге «Жоба 2» атын орнату

Label1 Properties Caption Жазбаға «Алғашқы жетістігім» мәтінін енгізу

Button1Properties Caption Батырмаға«Сәлемдесу» атын

орнату

Events OnClick Label1.Caption:='Алғашқы жетістігім'

Button2 Properties Caption Батырмаға«Жабу» атын орнатуEvents OnClick Close;

71

Page 69: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

4.Жобаны сақтаңыз, сосын оны іске қосып, орындалуын тексеріңіз.

Өздігінше орындауға арналған тапсырма.1. Шығарылатын «Алғашқы жетістігім» сөзінің қаріпін стандарттан түрі, түсі және өлшемі бойынша өзгеше етіп жазу.Көмек: Object Inspector-да Font қасиетінің оң жағында екі рет шерту.2. «Шығу» батырмасының түрін тартымдылау түрге ауыстыру.Көмек: Батырманы ауыстыру үшін, әуелі бастапқыны өшіріңіз, ал басқа BitBtn-ды компоненттер палитрасының Additional астарынан табасыз. Содан кейін оның түрін Kind қасиетінің көмегімен өзгертіңіз.3. «Сәлемдесу» батырмасын басқаннан соң экранда «Бұл жұмысымыздың соңы болмасын!» деген хабарлама шығатын етіңіз.Көмек: Button1 батырмасының OnClick оқиғасына әсері кезіндегі Label1 белгісінің Caption қасиетінің мәнін өзгертіңіз.

Бағдарламаның листингі:unit Unitl; interface usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;TForm1 = class(TForm) Labell: TLabel; Buttonl: TButton; BitBtnl: TBitBtn;procedure ButtonlClick(Sender: TObject);private{Private declarations }public{Public declarations } end;varForml: TForml;implementation{$R *.DFM)procedure TForml.ButtonlClick(Sender: TObject); beginLabel1.Caption:= 'Бұл жұмысымыздың соңы болмасын!'; end;end.

72

Page 70: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№ 4. Пішіннің тақырыбын өзгерту

Жұмыстың мақсаты – Мына әректтерді орындайтын бағдарлама құру: 1. Бағдарламаны іске қосқанда мәтіндік өріске мәтін шығару.

7-сурет

2. «Терезе тақырыбын өзгерту» батырмасын тышқанмен шерткенде, терезенің тақырыбы өзгеруі тиіс.

8-сурет

3. Терезенің тақырыбын Enter пернесін басу арқылы өзгерту.4. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге Label белгісі, Button батырмасы, Edit мәтіндік өрісі компоненттерін орналастыру.

73

Page 71: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

3. Мына кестеде көрсетілген әрекеттерді орындау: 3-кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Жоба 3» атын орнату

Labell (Standard астары)

Properties CaptionМәтіндік өріске «Жаңа тақырып енгізіңіз:» мәтінін енгізу

Editl (Standard астары)

Properties Text Text қасиетінің мәнін тазарту

Buttonl (Standard астары)

PropertiesCaption Батырмаға «Терезе тақыры-

бын өзгерту» атын орнату

Default Ашылған тізімнен True мәнін таңдау

Events OnClick Form1.Caption := Edit1.Text;4. Жобаны сақтаңыз, оны іске қосып, орындалуын тексеріп көріңіз.

Өздігінше орындауға арналған тапсырма.Мына әрекеттерді орындайтын бағдарлама құру:1. Бағдарламаны іске қосқанда: евро мен доллардың ағымдағы курстарын енгізуге арналған екі жол; ақшаның сомасын теңгемен енгізуге арналған жол; евро және доллармен ақшаның эквивалентін шығаруға арналған екі жол бейнеленуі қажет.

74

Page 72: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

9-сурет

2. Евро мен доллардың ағымдағы курсын енгізіңіз.3. Ақша сомасын теңгемен енгізіңіз.4. «Эквивалентті есептеңіз» батырмасын тышқанмен шерткенде, ақша сомасы евро және доллармен шығуы тиіс.5. Евро мен доллар үшін жаңа ағымдағы курсты енгізіңіз.6. Жаңа ақша сомасын теңгемен енгізіңіз.7. «Эквивалентті есептеңіз» батырмасын тышқанмен шерткенде, жаңа ақша сомасы евро және доллармен шығуы тиіс.8. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.

75

Page 73: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№5. «Қозғалмалы батырма»

Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру: 1. Батырманы тышқанмен шерткенде, ол батырма не тоқтауы не қозғалуы тиіс.

10-сурет.

2. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Button батырмасын, Timer таймерін орналастыру. Мұнда батырма таймерді іске қосады және ажыратады, ал таймер батырманы қозғалтады.3. Мына кестеде көрсетілген әрекеттерді орындау: 4 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Қозғалмалы батырма» атын орнату

Timerl Properties Enabled Enabled қасиетіне Enabled = false мәнін орнату Enabled қасиеті таймердің қосылып не қосылмай тұрғанын анықтайды (әдетте

76

Page 74: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

ол қосулы болады).

Interval

Interval = 100Interval қасиеті OnTimer оқиғасының пайда болу аралығын миллисекундпен анықтайды(әдетте ол интервал 1 секундқа тең).

Events OnTimerButton1.Left := Button1.Left - 5; if Button1.Left < 10then Button1.Left := 100;

ButtonlProperties

Caption Батырмаға «ОК» атын орнату

Default Ашылған тізімнен True мәнін таңдау

Events OnClick Timer1.Enabled := not Timer1.Enabled;

4. Жобаны сақтаңыз, оны іске қосып орындалуын тексеріп көріңіз.

№6. «Альбом»

77

Page 75: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жұмыстың мақсаты – Мына әрекеттерді орындайтын бағдарлама құру: 1. Бағдарламаны іске қосқанда терезеде сурет бейнеленеді.

11-сурет

2. Суретті тышқанмен шерткенде сұхбат терезесі пайда болады.3. Осы ашылған сұхбат терезеде кезкелген суретті таңдаңыз.

12- сурет

4. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Panel жақтауын, Image суретін, OpenDialog сұхбат терезесін орналастыру.

78

Page 76: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

3. Мына кестеде көрсетілген әрекеттерді орындау: 5 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Альбом» атын орнату

Panell(Standard астары)

Properties

Caption Caption қасиетінің мәнін тазарту

BevelOuter Ашылған тізімнен bvLowered мәнін таңдау

BevelInner Ашылған тізімнен bvNone мәнін таңдау

BewelWidth 2 мәнін меншіктеуWidth 241 мәнін меншіктеуHeight 185 мәнін меншіктеу

Imagel(Additional астары)

Properties Left 2 мәнін меншіктеуTop 2 мәнін меншіктеуWidth 237 мәнін меншіктеуHeight 181 мәнін меншіктеуStretch True қасиетін қосуPicture Құрушы батырма көмегімен

Picture Editor (Кескін редакторы) сұхбат терезесін ашу. Load (Жүктеу) батырмасын шерткенде - Load Picture (Суретті жүктеу) сұхбат терезесі ашылады. C:\Windows бумасын ашып және одан ... файлды таңдап, Ашу/Открыть батырмасын шерту. Сурет редакторы терезесіне оралып, ОК батырмасын шерту.

79

Page 77: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Image1.Picture.LoadFromFile (OpenDialog1.FileName);

Events OnClick OpenDialog1.Execute;

OpenDialog1(Dialogs астары)

Properties

Title "Кескінді таңдау" мәтінін енгізу

FileNameФайлға апаратын жолды толық енгізу: C:\Windows\Pec.bmp

Filter Мәтін енгізу: Растрлық кескін

DefaultExt Қасиетіне: .bmp мәнін меншіктеу

OptionsofFileMustExit ішкі қасиетіне (Файл бар болуы қажет) True мәнін меншіктеу

4. Жобаны сақтаңыз, оны іске қосып, орындалуын тексеріп көріңіз.Ішкі бағдарламаның листингі:procedure TForm1.Image1Click (Sender: TObject); beginOpenDialog1.Execute;Image1.Picture.LoadFromFile (OpenDialog1.FileName); end;

№7. Мәзірмен /Менюмен/ жұмыс

Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру:

80

Page 78: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

1. Бағдарлама іске қосылғанда терезеде мәзір жолы (Файл, Шығу) бейнеленеді.

13-сурет

2. Файл мәзірі пунктін таңдаған кезде мәзірдің (Суреттер, Шығу)

пункттері пайда болады. 14-сурет3. Суреттер мәзірі пунктін таңдаған кезде екі пункттен (Ата-ана, АӘД сабағы) тұратын ішкі мәзір көрінеді.4. Тышқанның оң жақ батырмасын шерткенде контекстік мәзір шығады.

81

Page 79: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

5. Пункттер бойынша басқа сурет таңдау.6. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.7. Егер Шығу пунктінің қайсысын таңдасаңыз да, бағдарлама жұмысы аяқталады.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Panel жақтауын, Image суретін, OpenDialog сұхбат терезесін орналастыру.3. Мына кестеде көрсетілген әрекеттерді орындау: 6 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

Forml

Properties Caption Пішінге «Менің мәзірім» атын орнату

Events OnMouseDown

Var p:TPoint; beginp.X :=X;p.Y :=Y;p := ClientToScreen (p); PopupMenu1.Popup (p.X, p.Y); end;

Мәзір редакторын іске қосу (пішіндегі мәзір белгісін екі рет шерту)

Forml.MainMenul

Properties (Object Inspector терезесінде ешбір нысан таңдалмаған)

Caption

Мәзір пунктіне - Файл мәтінін енгізіп, сосын Enter-ді басу. Жүйе оған N1 атын меншіктейді.

Мәзірдің бұрыннан бар және енді жасалған пункттерінің бірінен-біріне тышқанды шерту арқылы немесе курсорлық пернелердің көмегімен ауысуға болады.Forml.MainMenul

Properties Caption Мәзір пунктіне - Шығу мәтінін енгізіп, сосын Enter-ді басу.

82

Page 80: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жүйе оған N2 атын меншіктейді.

Events (Мәзір жолындағы Шығу пункт-інде шерту)

N2Click Close;

Файл пунктінде шертіңіз. Мәзір редакторы осы пункт ішінен тағы бір дайындама әзірлеп қойды. Бұл дайындама жұмыс істеп тұрған бағдарламаның Файл пунктін таңдаған кезде ашылатын мәзірге арналған. Дайындамаларды пайдаланып, осы мәзірден мынадай екі пункт құрыңыз: Суреттер (система оған N3 атын меншіктейді) және Шығу (N4). Мәзір редакторында Суреттер пунктін таңдап, сосын Ctrl + Оңға пернелерін бірге басыңыз.

N4: TMenuItem Events OnClick

Ашылатын тізімнен бұрыннан бар N2Click өңдеуіш-процедураны таңдаймыз

Forml.MainMenul Properties Caption

Мәзір пунктіне – Ата-ана мәтінін енгізіп, сосын Enter-ді басу. Жүйе оған N5 атын меншіктейді.

N5: TMenuItem

Events (Пішіндегі Ата-ана пунктіндегі мәзір жолынан таңдау)

OnClick

Image1.Picture.LoadFromFile('C:\Documents and Settings\М±ратбек\Мои документы\Мои рисунки\Atanam.bmp');

Forml.MainMenul Properties Caption

Мәзір пунктіне – АӘД сабағы мәтінін енгізіп, сосын Enter-ді басу. Жүйе оған N6 атын меншіктейді.

N6: TMenuItem

Events (АӘД сабағы пунктіндегі мәзір жолынан

OnClick Image1.Picture.LoadFromFile ('C:\Documents and Settings\М±ратбек\Мои документы\Мои рисунки\

83

Page 81: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

таңдау) NvpSp1.bmp');Мәзір редакторының терезесін жауып, енді мәзір жолы бағдарлама-ның бас Пішінінде пайда болатындығына көз жеткізіңіз.

PopupMenu(Standard астары)

Properties

Caption

Мәзір пунктіне – Ата-ана мәтінін енгізіп, сосын Enter-ді басу. Жүйе оған N7 атын меншіктейді.

Caption

Мәзір пунктіне – АӘД сабағы мәтінін енгізіп, сосын Enter-ді басу. Жүйе оған N8 атын меншіктейді.

N7 Events OnClick

Ашылатын тізімнен бұрыннан бар N5Click өңдеуіш-процедураны таңдаймыз

N8 Events OnClick

Ашылатын тізімнен бұрыннан бар N6Click өңдеуіш-процедураны таңдаймыз

Image(Additional астары)

Properties Stretch True мәнін меншіктеу

4. Жобаны сақтаңыз, сосын оны іске қосып, орындалуын тексеріп көріңіз.

Ішкі бағдарламаның листингіprocedure TForm1.N2Click (Sender: TObject);beginClose; end;procedure TForm1.N5Click (Sender: TObject); beginImagel.Picture.LoadFromFile ('C:\Documents and Settings\М±ратбек\Мои документы\Мои рисунки\Atanam.bmp '); end;procedure TForm1.N6Click (Sender: TObject); beginImagel.Picture.LoadFromFile ('C:\Documents and Settings\М±ратбек\Мои документы\Мои рисунки\NvpSp1.bmp'); end;

84

Page 82: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure TForml.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X. Y: Integer); var p:TPoint; beginp.X :=X; p.Y :=Y;p := ClientToScreen (p); PopupMenul.Popup (p.X, p.Y); end;

№8. Сөйлем құраушы Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру: 1. Бағдарлама іске қосылғанда терезеде үш өріс бейнелеу.

85

Page 83: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

15-сурет

2. «Кездейсоқ таңдау» батырмасын тышқанмен шерткенде үш сөзден тұратын кездейсоқ сөйлем құрау.

16-сурет

3. Бағдарламадан шығу үшін тышқанмен тақырып жолындағы жабу батырмасын шерту қажет.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: тізімі бар үш ComboBox өрісін, Button батырмасын орналастыру.3. Мына кестедегі әрекеттерді орындау:

7 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

86

Page 84: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Form1

Properties Caption Пішінге «Сөйлем құраушы» атын орнату

Events OnCreateComboBox1.ItemIndex :=0;ComboBox2.ItemIndex :=0; ComboBox3.ItemIndex :=0;

ComboBoxl(Standard астары)

Properties

StyleАшылатын тізімнен cSDropDownList мәнін таңдаңыз

Items

Құрушы батырманы шертіңіз. Сонда String List Editor (Жолдар тізімінің редакторы) терезесі ашылады. Әр жолға бір-бірден тізім пункттерін енгізіп, оның соңынан Enter-ді басып отырыңыз. Тізім дайын болған соң ОК батырмасын шертіңіз.

ComboBox2(Standard астары)

Properties

Style Ашылатын тізімнен cSDropDownList мәнін таңдаңыз

Items

Құрушы батырманы шертіңіз. Сонда String List Editor (Жолдар тізімінің редакторы) терезесі ашылады. Әр жолға бір-бірден тізім пункттерін енгізіп, оның соңынан Enter-ді басып отырыңыз. Тізім дайын болған соң ОК батырмасын шертіңіз.

ComboBox3(Standard астары)

Properties

Style Ашылатын тізімнен cSDropDownList мәнін таңдаңыз

Items

Құрушы батырманы шертіңіз. Сонда String List Editor (Жолдар тізімінің редакторы) терезесі ашылады. Әр жолға бір-бірден тізім пункттерін енгізіп, оның соңынан Enter-ді басып отырыңыз. Тізім дайын болған соң ОК батырмасын шертіңіз.

87

Page 85: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Buttonl(Standard астары)

Properties Caption Батырмаға «Кездейсоқ таңдау» атын орнату

Events OnClick

ComboBox1.ItemIndex := Random(ComboBox1.ItemIndex); ComboBox2.ItemIndex := Random(ComboBox2.ItemIndex); ComboBox3.ItemIndex := Random(ComboBox3.ItemIndex);

4. Жобаны сақтаңыз, оны іске қосып орындалуын тексеріп көріңіз. 8 - кесте

Зат есімдер тізімі Үстеулер тізімі Әрекеттер тізіміМысық Тез жүзедіЖылан Биік жүгіредіШегіртке Жәй ұшадыДельфин Күшті жорғалайдыҚарлығаш Жақсы секіредіТасбақа Нашар тығылады

Ішкі бағдарлама листингіprocedure TForm1.OnCreate (Sender: TObject); beginRandomize;ComboBox1.Itemlndex :=0; ComboBox2.ItemIndex :=0; ComboBox3.ItemIndex :=0; end;procedure TForml.ButtonlClick (Sender: TObject); beginComboBox1.ItemIndex := Random(ComboBox1.ItemIndex); ComboBox2.ItemIndex := Random(ComboBox2.ItemIndex); ComboBox3.ItemIndex := Random(ComboBox3.ItemIndex); end;

№ 9. Көбейту кестесі

Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру. 1. Бағдарлама іске қосылғанда екі жылжытпа бейнеленуі тиіс.2. Екі сан мәнін таңдап, солардың көбейтіндісін табу.3. Егер бір ғана сан таңдалса, онда оның квадараты табылады.

88

Page 86: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

17-сурет

4. Бағдарламадан шығу үшін тақырып жолындағы Жабу батырмасын шерту керек.

Бағдарламаны іске асыру жоспарының сипаттамасы1.Жаңа жоба ашу.2.Пішінге мына компоненттерді: Button басқару батырмасын, TrackBar жылжытпасын, GroupBox жақтауын, Label жазуын және CheckBox жалаушасын орналастыру.3.Мына кестедегі әрекеттерді орындау:

9 - кесте

Белгі-ленген нысан

Object Inspector терезесінің астары

Қасиеттіңаты/

Оқиғаныңаты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Көбейту кестесі» атын орнату

TrackBarl(Win32 астары)

Properties Min(Минимум) 2 мәнін меншіктеуMax(Максимум) 99 мәнін меншіктеуPosition (орны) 2 мәнін меншіктеуLineSize (шағын өзгеріс) 1мәнін меншіктеу

PageSize 7 мәнін меншіктеу

89

Page 87: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

(Парақтық өзгеріс)Frequency (белгілеу жиілігі) 7 мәнін меншіктеу

Events OnChange

Label1.Caption :=IntToStr(TrackBar1.Position); Label3.Caption :=IntToStr(TrackBar1.Position * TrackBar2.Position); if CheckBox1.Checked then TrackBar2.Position :=TrackBar1.Position;

TrackBar2(Win32 астары)

Properties

Min (Минимум) 2 мәнін меншіктеуMax (Максимум) 99 мәнін меншіктеу

Position (орны) 2 мәнін меншіктеуLineSize (шағын өзгеріс) 1 мәнін меншіктеу

PageSize(Парақтық өзгеріс)

7 мәнін меншіктеу

Frequency (Белгілеу жиілігі)

7 мәнін меншіктеу

Events OnChange

Label2.Caption :=IntToStr(TrackBar2.Position); Label3.Caption :=IntToStr(TrackBar1.Position * TrackBar2.Position); if CheckBox1.Checked then TrackBar1.Position := TrackBar2.Position;

GroupBoxl(Standard астары)

Properties Caption «Көбейтінді» жазуын енгізу

Labell Properties AutoSize False мәнін орнату

90

Page 88: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

(Standard астары)

(Автотаңдау)Caption 2 мәнін меншіктеу

Alignment (туралау)

taRightJustify мәнін орнату(оң жақ шеті бойынша туралау)

Label2(Standard астары)

Properties

AutoSize False мәнін орнатуCaption 2 мәнін меншіктеу

AlignmenttaRightJustify мәнін орнату(оң жақ шеті бойынша туралау)

Label3Standard астары)

Properties

AutoSize False мәнін орнатуCaption 4 мәнін меншіктеу

AlignmenttaRightJustify мәнін орнату(оң жақ шеті бойынша туралау)

CheckBoxl(Standard астары)

Properties

Caption "Квадрат" жазуын енгізу

AlignmenttaRightJustify мәнін орнату(оң жақ шеті бойынша туралау)

Events OnClick TrackBar2.Position := TrackBar1.Position;

4. Жобаны сақтаңыз, оны іске қосып, орындалуын тексеріп көріңіз.

Ішкі бағдарламаның листингі:procedure TForm1.TrackBar1Change (Sender: TObject); beginLabel1.Caption := IntToStr(TrackBar1.Position);Label3.Caption := IntToStr(TrackBar1.Position * TrackBar2.Position);if CheckBox1.Checked then TrackBar2.Position := TrackBar1.Position;end;procedure TForm1.TrackBar2Change (Sender: TObject); beginLabel2.Caption := IntToStr(TrackBar2.Position); Label3.Caption := IntToStr(TrackBar1.Position * TrackBar2.Position); if CheckBox1.Checked then TrackBar2.Position := TrackBar1.Position; end;

91

Page 89: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure TForm1.CheckBox1Click (Sender: TObject); beginTrackBar2.Position := TrackBar1.Position; end;

Өздігінше орындауға арналған тапсырма1. Бағдарламаны тек екі орынды сандардың ғана емес, 2-199 аралығындағы үш орынды сандардың да көбейтіндісін табатындай етіп өзгертіңіз.2. Бағдарламаны екі санның қосындысын табуға арнап өзгертіңіз.

№ 10. Фигураларды қозғалту

Жұмыстың мақсаты – мына әрекеттерді орындайтын бағдарлама құру: 1. Бағдарлама іске қосылғанда екі айналдыру жолағын бейнелеу. Тік жолақ вертикаль қозғалысты, ал көлденең жолақ горизонталь қозғалысты басқаруы қажет.2. Тышқан көрсеткішін фигуралардың біріне апарып, олардың қай жолақпен байланысты екенін таңдай алу.

92

Page 90: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

18-сурет

3. Терезедегі фигуралар қозғалысы аймағын шектеуге көмегі болатын қосымша нысандар қажет болады.4. Айналдыру жолағы іске қосылған кезде, онда ол ЖОҒАРЫ, ТӨМЕН, СОЛҒА, ОҢҒА, PAGE UP, PAGE DOWN пернелерімен де басқарылуы тиіс. 5. Бағдарламадан шығу үшін тақырып жолындағы Жабу батырмасын шерту керек.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Panel тақтасын, ScrollBar айналдыру жолақтарын, Shape фигураларын орналастыру.3. Қосымша логикалық типті num айнымалысын енгізу. Егер num True мәнін қабылдаса, онда ағымдағы ретінде бірінші фигура саналады. Сонда екінші фигура False мәніне ие. Бұл айнымалы барлық процедуралар үшін қол жетімді болуы тиіс.4. Мына кестеде көрсетілген әрекеттерді орындау: 10 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттіңаты/

Оқиғаныңаты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Фигураларды қозғалту» атын орнату

Panel Properties Height 161 мәнін меншіктеу

93

Page 91: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

(Standard астары)

Width 161 мәнін меншіктеуCaption Қасиет мәнін тазарту

ScrollBarl(Standard астары)

Properties

Min 5 мәнін меншіктеуMax 145 мәнін меншіктеуPosition 76 мәнін меншіктеуSmallChange 2 мәнін меншіктеуLargeChange (үлкен өзгеріс) 20 мәнін меншіктеу

Events OnChange

if num then Shape1.Left := ScrollBar1.Position else Shape2.Left := ScrollBar1.Position

ScrollBar2(Standard астары)

Properties

KindsbVertical мәнін таңдау. Сонда көлденең жолақ тік жолаққа айналады.

Min 5 мәнін меншіктеуMax 145 мәнін меншіктеуPosition 76 мәнін меншіктеуSmallChange (шағын өзгеріс) 2 мәнін меншіктеу

LargeChange 20 мәнін меншіктеу

Events OnChange

if num then Shape1.Top := ScrollBar2.Position else Shape2.Top := ScrollBar2.Position

Shapel(Additional астары)

Properties Height 11 мәнін меншіктеуWidth 11 мәнін меншіктеуLeft 76 мәнін меншіктеуTop 76 мәнін меншіктеу

Shape (Түр) stCircle (шеңбер) мәнін таңдау

Brush (Қылқалам)

Color-дың(қылқалам түсі) ішкі қасиеті үшін clAqua (көгілдір түс) мәнін таңдау

94

Page 92: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Events

OnMouseMove(Тышқанды қозғалтқан кезде)

Shape1.Brush.Color := clAqua;Shape1.Brush.Color :=clFuchsia;Num := True;ScrollBar1.Position:=Shape1.Left;ScrollBar2.Position:=Shape1.Top;

Shape2(Additional астары)

Properties Events

Height 11 мәнін меншіктеуWidth 11 мәнін меншіктеуLeft 76 мәнін меншіктеуTop 76 мәнін меншіктеу

Shape stSquare (Квадрат) мәнін таңдау

Brush

OnMouseMove

Color -дың(қылқалам түсі) ішкі қасиеті үшін clFuchsia (сия көк түс) мәнін таңдау Алдыңғыға ұқсас Shape2

5. Жобаны сақтаңыз, оны іске қосып, орындалуын тексеріп көріңіз.

Ішкі бағдарламаның листингі:procedure Tform1.ScrollBar1Change (Sender: TObject); beginif num then Shape1.Left := ScrollBar1.Position else Shape2.Left := ScrollBar1.Positionend;procedure Tform1.ScrollBar2Change (Sender: TObject); beginif num then Shape1.Top := ScrollBar2.Position else Shape2.Top := ScrollBar2.Positionend;procedure Tform1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginShape1.Brush.Color := clAgua; Shape1.Brush.Color := clFuchsia; Num := True;

95

Page 93: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

ScrollBar1.Position:= Shape1.Left; ScrollBar2.Position:= Shape1.Top; end;procedure Tform1. Shape2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginShape2.Brush.Color := clFuchsia; Shape2.Brush.Color := clAgua; Num := False;ScrollBar1.Position:= Shape2.Left; ScrollBar2.Position: = Shape2.Top; end;procedure Tform1. FormCreate (Sender: TObject); beginnum := True; end;

№ 11. Пайызды есептеу

Жұмыстың мақсаты - мына әрекеттерді орындайтын бағдарлама құру: 1. Бағдарлама іске қосылғанда пішінге үш мәтін өрісін шығару.2. Бірінші өріске сан енгізіледі. Екінші өріске пайыз енгізіледі. Сонда «Есептеу» батырмасын басқанда үшінші өрісте санның есептелген пайызы шығуы тиіс.

96

Page 94: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

19-сурет

3. «Тазарту» батырмасы басылғанда өріс тазарады. Әрі қарай өріске жаңа мән енгізіле береді.4. Бағдарламадан шығу үшін тақырып жолындағы «Жабу» батырмасын шерту керек.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Button басқару батырмасын, Label жазуын, Edit мәтіндік өрісін орналастыру.3. Мына кестеде жазылған әрекеттерді орындау: 11 - кесте

Белгі-ленген нысан

Object Inspector

терезесінің астары

Қасиеттіңаты/

Оқиғаныңаты

Атқарылатын әрекет

Form1 Properties Caption Пішінге «Пайызды есептеу» атын орнату

Label1 Properties Caption «Пайызды есептеу» атын енгізу

Edit1 Properties Text Қасиеттің мәнін тазалауEdit2 Properties Text Қасиеттің мәнін тазалауEdit3 Properties Text Қасиеттің мәнін тазалауButton1 Properties Caption «Есептеу» атын енгізу

Events OnClick Number, Procent, Prn

97

Page 95: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

айнымалыларын сипаттау

Button2Properties Caption «тазарту» мәнін енгізу

Events OnClick Editl.Text:-''; Edit2.Text:=''; Edit3.Text:='';

4. Жобаны сақтаңыз, оны іске қосып орындалуын тексеріп көріңіз.

Бағдарлама үзіндісі. varNumber, Procent, Prn: Real; procedure TForm1.Button1Click(Sender: TObject); beginNumber:=StrToFloat(Edit1.Text); Procent:= StrToFloat(Edit2.Text); PrN:=0.01*Procent*Number; Edit3.Text:=FloatToStr(PrN); end;procedure TForm1.Button2Click(Sender: TObject); beginEdit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; end;

№ 12. Ллойд басқатырғышы

Жұмыстың мақсаты - Самуэл Ллойд басқатырғышының біреуінің компьютерлік нұсқасын жасау: Берілген сандар жиынынан қосындысы 50-ге тең болатын сандарды таңдау керек. Ллойдтың өз басқатырғышы үшін таңдаған сандары мыналар: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19.

98

Page 96: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

20-сурет

Мына әрекеттерді орындау:1. Бағдарлама іске қосылғанда терезеде Ллойдтың сандары көрінеді.2. Сандарды жалаушаның көмегімен таңдап, оларды оң жақ терезеге орналастырамыз.3. Таңдалған сандардың қосындысы жазба түрінде шығады.4. Бағдарламадан шығу үшін тақырып жолындағы «Жабу» батырмасын шерту қажет.

Бағдарламаны іске асыру жоспарының сипаттамасы.1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: CheckListBox жалаушаларының тізімін, Label жазуын, ListBox тізімін орналастыру.3. Мына 13-кестеде көрсетілген әрекеттерді орындау:

12 - кесте

Белгі-ленген нысан

Object Inspector терезесінің астары

Қасиеттіңаты/

Оқиғаныңаты

Атқарылатын әрекет

Forml Properties Caption Пішінге «Ллойд басқатырғышы» атын орнату

99

Page 97: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

BorderStyle bsSingle мәнін меншіктеу

CheckListBoxl(Additional астары )

Properties

Items

Тізім құрамын береміз. Құрушы батырманы шертейік.Сонда String List editor (Жолдар тізімінің редакторы) терезесі ашылады. Тізімге берілген сандарды Enter арқылы енгізіңіз. OK батырмасын басыңыз.

Height

Мәндерді барлық сандар тізімге сиятындай етіп таңдаңыз (айналдыру жолағынсыз).

Events OnClickCheck

Тізімнің тазаруын сипаттаңыз. Жалаушаның орнатылуын тексеріңіз.Тізімді жаңартқан соң таңдалған сандардың қосындысын есептеу керек. Тізім элементтері сан түрінде көрінгенімен, олар мәтіндік жолдар болып табылады (StrToInt функциясын қолдану қажет).

ListBox1(Standard астары)

Properties Height

Мәндерді барлық сандар тізімге сиятындай етіп таңдаңыз (айналдыру жолағынсыз). Алғашында тізім бос тұрады. Ол бағдарламамен жұмыс кезінде толтырылады.

Label1(Standard астары)

Properties Caption «Қосынды: 0» мәтінін

енгізіңізAutosize False мәнін беріңізAlignment taCenter мәнін беріңіз

4. Жобаны сақтаңыз, оны іске қосып, орындалуын тексеріп көріңіз.

100

Page 98: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Ішкі бағдарлама листингі:procedure TForm1.CheckListBox1ClickCheck (Sender: TObject);var i, s: Integer;beginListBox1.Clear;for i: = 0 to CheckListBox1.Items.Count-1 do if CheckListBox1.Checked[i] then ListBox1.Items.Add (CheckListBox1.Items[i]);s := 0;for i := 0 to ListBox1.Items.Count -1 dos := s + StrToInt(ListBox1.Items[i]); Label1.Caption := 'Қосынды: ' + IntToStr(s); if s = 50 thenbeginLabel1.Caption := 'Қосынды:' + IntToStr (s); CheckListBox1.Enabled := False; ListBox1.Enabled := False; end;end;

№ 13. Калькулятор

Жұмыстың мақсаты – кезкелген санмен (ондық бөлшекпен де) қосу мен азайту амалдарын орындай алатын қарапайым калькулятордың бағдарламасын дайындау. 1. Бағдарлама іске қосылғанда калькулятор терезесін шығару.

101

Page 99: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

21-сурет

2. Калькулятормен кезкелген санды қосу және азайту амалдарын орындау.3. Калькуляторды уақытша көрсетпеу үшін тақырып жолындағы «Жиыру», ал бағдарламадан шығу үшін «Жабу» батырмасын шерту керек.Бағдарламаны іске асыру жоспарының сипаттамасы1.Жаңа жоба ашу.2.Пішінге мына компоненттерді: Button батырмасын, Edit мәтіндік өрісін орналастыру.3.Мына бағдарламаны пайдаланып, Калькуляторды дайындап көріңіз: var accum: real; // аккумулятор oper: integer; // амал: 1 - '+' ; 2 - '-'; // 0 - "орындау"("=" батырмасы) f: integer; { f = 0 жаңа санның бірінші цифрын күту, мыс, амал орындалған соң, индикаторда нәтиже көрінген кезде. f = 1 қалған цифрларды күту}procedure TForm1.Button0Click(Sender: TObject); // 0 батырмасыbegin if f = 0 // санның бірінші цифры then begin Edit1.Text := '0'; f := 1; //басқа цифрларды күту end else if Edit1.Text <> '0' // индикатордағы санның басында бірнеше нөл болмауы үшін then Edit1.Text := Edit1.Text + '0';end;procedure TForm1.Button1Click(Sender: TObject); // 1 батырмасы

102

Page 100: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

begin if f = 0 // санның бірінші цифры then begin Edit1.Text := '1'; f := 1; // басқа цифрларды күту end else Edit1.Text := Edit1.Text + '1';end;procedure TForm1.Button2Click(Sender: TObject); // 2 батырмасыbegin if (f = 0) then begin Edit1.Text := '2'; f := 1; end else Edit1.Text := Edit1.Text + '2';end;procedure TForm1.Button3Click(Sender: TObject); // 3 батырмасыbegin if f = 0 then begin Edit1.Text := '3'; f := 1; end else Edit1.Text := Edit1.Text + '3';end;procedure TForm1.Button4Click(Sender: TObject); // 4 батырмасыbegin if f = 0 then begin Edit1.Text := '4'; f := 1; end else Edit1.Text := Edit1.Text + '4';end;procedure TForm1.Button5Click(Sender: TObject); // 5 батырмасыbegin if (f = 0) then begin Edit1.Text := '5'; f := 1; end else Edit1.Text := Edit1.Text + '5';end;procedure TForm1.Button6Click(Sender: TObject); // 6 батырмасыbegin if f = 0 then begin Edit1.Text := '6'; f := 1; end else Edit1.Text := Edit1.Text + '6';end;procedure TForm1.Button7Click(Sender: TObject); // 7 батырмасыbegin if f = 0 then begin Edit1.Text := '7'; f := 1; end else Edit1.Text := Edit1.Text + '7';end;procedure TForm1.Button8Click(Sender: TObject); // 8 батырмасыbegin if f = 0 then begin Edit1.Text := '8'; f := 1; end else Edit1.Text := Edit1.Text + '8';

103

Page 101: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

end;procedure TForm1.Button9Click(Sender: TObject);begin if f = 0 then begin Edit1.Text := '9'; f := 1; end else Edit1.Text := Edit1.Text + '9';end;procedure TForm1.ButtonZClick(Sender: TObject); // ондық үтірbegin if Edit1.Text = '0' then begin Edit1.Text := '0,'; f := 1; end; if Pos(',',Edit1.Text) = 0 then Edit1.Text := Edit1.Text + ',';end;procedure DoOper; // амалдардың орындалуыvar numb: real; // индикатордағы санbegin // accum алдыңғы амалдар нәтижесінен тұрады // oper – орындалатын амалдың коды. Операнд индикаторда тұр. numb := StrToFloat(Form1.Edit1.Text); case oper of 0: accum := numb; 1: accum := accum + numb; 2: accum := accum - numb; end; Form1.Edit1.Text := FloatToStr(accum);end;procedure TForm1.ButtonPlusClick(Sender: TObject); // "+" батырмасы{ мұнда алдыңғы амалды орындап, нәтижені индикаторға шығару керек, сосын ағымдағы амалды еске сақтап және жаңа санның бірінші цифрын күту режимін орнату керек.}begin if f = 0 then oper := 1 // амалды еске сақтау else begin DoOper; // алдыңғы амалды орындау oper :=1; // ағымдағы амалды еске сақтау f:=0; end;end;procedure TForm1.ButtonMinusClick(Sender: TObject); // "-" батырмаbegin if f = 0 then oper := 2 else begin DoOper; oper :=2; f:=0; end;end;procedure TForm1.ButtonEnterClick(Sender: TObject); // "=" батырмаbegin

104

Page 102: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

if f = 0 then oper := 0 else begin DoOper; oper :=0; f:=0; end;end;procedure TForm1.ButtonCClick(Sender: TObject); // "с" - тазарту begin Edit1.Text := '0'; accum := 0; oper := 0; f := 0; end; // Edit1 өрісінде пернені басуprocedure TForm1.Edit1Change(Sender: TObject; var Key:Char);begin Key := Chr(0); // символдарды көрсетпеуend;procedure TForm1.FormCreate(Sender: TObject);begin oper := 0;end;end.

№14. Жиымдағы кездейсоқ сандардың индексін табу

Жұмыстың мақсаты – жиымдағы кездейсоқ сандардың индексін табатын бағдарлама құру.Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.

105

Page 103: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

2. Пішінге мына компоненттерді: Button, Edit, Label орналастыру.3. Мына кестеде көрсетілген әрекеттерді орындау: 13 - кесте

Белгі-ленгеннысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

FormlProperties Caption Пішінге «Жиым 1» атын орнату

Events OnCreate Мәтіндік өрістердің Text қасиетінің мәндерін тазалау

ButtonlProperties Caption «Тазалау» атын енгізу

Events Onclick Мәтіндік өрістердің Text қасиетінің мәндерін тазалау

Button2Properties Caption «Жабу» атын енгізуEvents Onclick Пішінді Жабу оқиғасын өңдеу

Button3Properties Caption «Элементтің индексін табу»

атын енгізу

Events Onclick Енгізілген санның индексін табу оқиғасын өңдеу

Button4Properties Caption «Элементті кездейсоқ енгізу»

атын енгізу

Events Onclick Жиым элементтерін кездейсоқ енгізу

Editl Properties Caption Text қасиетінің мәнін тазалауEdit2 Properties Caption Text қасиетінің мәнін тазалауEdit3 Properties Caption Text қасиетінің мәнін тазалау4. айнымалыларды енгізу: ik, k, i : integer; s : string; a : array [1..15] of integer.5. Жобаны сақтап, сосын оны іске қосып, орындалуын тексеріңіз.

Бағдарлама листингіprocedure Tform1.FormCreate(Sender: Tobject); beginEdit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; end;procedure Tform1.Button1Click(Sender: Tobject); beginEdit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; end;

106

Page 104: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure Tform1.Button2Click(Sender: Tobject); beginclose;end;procedure Tform1.Button3Click(Sender: Tobject); begink := StrToInt (Edit2.Text); For i:= 1 to 15 doif k = a[i] then ik := i; if ik = 0 then Edit3.Text := 'number ubsent' else Edit3.Text := IntToStr (ik);end;procedure Tform1.Button4Click(Sender: Tobject); beginrandomize;s := '';For i := 1 to 15 do begina[i] := random (26); s := concat (s, IntToStr (a[i]), #32); end; Edit1.Text := s; end; end.Әрекеттер бойынша жобалардың түрлері:

22-сурет

107

Page 105: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

23-сурет

24-сурет

108

Page 106: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

25-сурет

№15. Уақыт есептеуіш

Жұмыстың мақсаты – ағымдағы уақыт пен ағымдағы күнді шығарып, көрсететін бағдарлама құру.

Бағдарламаны іске асыру жоспарының сипаттамасы1. Жаңа жоба ашу.2. Пішінге мына компоненттерді: Button, Edit, Label орналастыру.3. Мына кестеде жазылған әрекеттерді орындау: 14 - кесте

Белгі-ленгеннысан

Object Inspector

терезесінің астары

Қасиеттің аты/

Оқиғаның аты

Атқарылатын әрекет

Form1 Properties Caption Пішінге «Таймер» атын орнату

Button1Properties Caption «ағымдағы уақыт» атын енгізу

Events Onclick DateTime:=Time; Edit1.Text:=TimeToStr(DateTime);

Button2Properties Caption «Бүгінгі күн» атын енгізуEvents Onclick Edit2.Text:=DateToStr(Date);

Edit1 Properties Caption Text қасиетінің мәнін тазарту109

Page 107: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Edit2 Properties Caption Text қасиетінің мәнін тазарту

26-сурет

Ішкі бағдарлама листингі: varDateTime : TdateTime;procedure Tform1.Button1Click(Sender: Tobject); beginDateTime:=Time;Edit1.Text:=TimeToStr(DateTime); end;procedure Tform1.Button2Click(Sender: Tobject); beginEdit2.Text:=DateToStr(Date); end; end.

№16. Оятқыш сағат

110

Page 108: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жұмыстың мақсаты – көрсетілген уақытта оятатын оятқыш сағаттың бағдарламасын жасау. Пішінде қазіргі уақыт пен ояту уақыты бөлек-бөлек көрсетіліп тұруы тиіс.

27-сурет

Жұмысты іске асырудың бағдарламасы:var Hour,Min: word; // индикатордағы уақыт AlHour, AlMin: word; //оятқышқа орнатылған уақыт AlHour:AlMin // бағдарлама жұмысының басталуыprocedure TForm1.FormCreate(Sender: TObject);begin Hour := HourOf(Now); Min := MinuteOf(Now); Label1.Caption := IntToStr(Hour); if Min < 10 then Label2.Caption := '0'+IntToStr(Min) else Label2.Caption := IntToStr(Min);end; // таймерден түсетін сигналprocedure TForm1.Timer1Timer(Sender: TObject);var cHour,cMin: word;begin // ағымдағы уақытты алу cHour := HourOf(Now);

111

Page 109: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

cMin := MinuteOf(Now); if Timer1.Tag = 0 //экрандағы бағдарлама терезесі then begin { ағымдағы уақытпен индикаторда көрінген уақыттың сәйкестігін тексеру} if cHour <> Hour then begin Hour := cHour; Label1.Caption := IntToStr(Hour); end; if cMin <> Min then begin Min := cMin; if min <10 then Label2.Caption := '0' + IntToStr(Min) else Label2.Caption := IntToStr(Min); end; // (:) қос нүктенің жыпылықтауын қаматамасыз ету if Label3.Visible then Label3.Visible := False else label3.Visible := True; end else // бағдарлама терезесі жасырылған, сигнал // жіберу сәтінің келгендігін тексеру if (cHour = AlHour) and (cMin = AlMin) // сигнал ! then begin Form2.Show; Timer1.Tag := 0; Timer1.Interval := 1000; end;end;// UpDown1 шерту оятқыш -сағаттың сигнал беру уақытын өзгертедіprocedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);begin if UpDown1.Position < 10 then Label4.Caption := '0' + IntToStr(UpDown1.Position)

112

Page 110: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

else Label4.Caption := IntToStr(UpDown1.Position);end;// UpDown1 шерту оятқыш-минуттың сигнал беру уақытын өзгертедіprocedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);begin if UpDown2.Position < 10 then Label5.Caption := '0' + IntToStr(UpDown2.Position) else Label5.Caption := IntToStr(UpDown2.Position);end;// OK батырмасын шертуprocedure TForm1.Button1Click(Sender: TObject);begin // оятқышты орнату AlHour := UpDown1.Position; AlMin := UpDown2.Position; Timer1.Tag := 1; Form1.Hide; // Timer1.Interval := 3000; // әрбір 3 секунд сайын тексеруend;end.

№17. Олимпиада жалауы113

Page 111: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жұмыстың мақсаты – пішін бетінде олимпиада жалауын сызатын бағдарлама құру.

28-сурет

Ішкі бағдарлама листингі: unit Unitl;{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject); beginwith Canvas do begin// жалауша Canvas.Pen.Width := 1; Canvas.Pen.Color := clBlack; Canvas.Brush.Color := clCream; Rectangle(30,30,150,115);// сақиналарPen.Width := 2;Brush.Style := bsClear; // шеңбердің ішкі аймағын боямауPen.Color := clBlue; Ellipse(40,40,80,80); Pen.Color := clBlack; Ellipse(70,40,110,80); Pen.Color := clRed; Ellipse(100,40,140,80); Pen.Color := clYellow; Ellipse(55,65,95,105); Pen.Color := clGreen; Ellipse(85,65,125,105); end; end;end.

№18. Функция графигін салу114

Page 112: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Жұмыстың мақсаты – түрлі функциялар графигін салатын бағдарлама құру. Төменде үлгі үшін сызықтық және квадраттық фукциялардың графиктерін (0-7) аралығында салу қарастырылды. Бағдарламада кезкелген графикті (0-15) аралығында құруға болады.

29-сурет

30-сурет

115

Page 113: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

31-сурет

32-суретЖұмысты орындау бағдарламасы:unit grafik01;//GR процедурасын бетінде график сызылатын және өзі басқа //модульде орналасқан Form2 пішіні үшін onPaint оқиғасын өңдеу //процедурасы шақырады. // Сондықтан функция хабарландыруын басқа модульден шақырып //алу үшін Interface тарауында орналастыру қажет.procedure gr; implementationuses grafik02;

116

Page 114: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

{$R *.dfm}{ Пішінді құру кезінде StringGrid компонентінің қасиетін орнату: FixedRows := 0; RowCount := 2; Options.goEditing := True; Options.goTab := True;}const COLCOUNT = 15;var // функцияның аргументтері мен мәндері x: array[1..COLCOUNT] of real; y: array[1..COLCOUNT] of real;// x,y жиымының мәндері бойынша график салуprocedure gr;var i: integer; x1,x2:real; // функция аргументінің өзгеру шектері y1,y2:real; // функция мәндерінің өзгеру шектері l,b:integer; // график шығатын аймақтың сол жақ төменгі бұрышы w,h:integer; // график шығатын аймақтың ені мен биіктігі mx,my:real; // X және Y осьтері бойынша масштаб x0,y0:integer; // координат осьтерінің қиылысу нүктесі px,py: integer;// пішін бетіндегі графиктің нүкте координаталары np: integer; // графиктегі нүктелер саныbegin Form2.Canvas.Rectangle(0,0,Form2.ClientWidth,Form2.ClientHeight); // график шығатын аймақ i:=10; // X - сол жақ жоғарғы бұрыш координатасы b:=Form2.ClientHeight-20; // Y – сол жақ төменгі бұрыш //координатасы h:=Form2.ClientHeight-40; //биіктігі w:=Form2.Width-40; // ені // аргументтің өзгеру шектері мен нүктелер санын анықтау (X //жиымының элементтері өспелі тізбек құрауы тиіс)x1:=x[1]; i:=1; while (x[i+1] > x[i]) and (i < COLCOUNT) do i:= i+1; x2:= x[i]; //x[COLCOUNT-1]; np:=i; // нүктелер саны

117

Page 115: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

if np < 2 then begin ShowMessage('График нүктелері екіден кем болмауы қажет'); exit; end; // функцияның ең үлкен және ең кіші мәндерін табу y1:=0; y[1]; // минимум y2:=0; y[1]; // максимум for i:=1 to np do begin if y[i] < y1 then y1:=y[i]; if y[i] > y2 then y2:=y[i]; end; // масштабты есептеу my:=h/abs(y2-y1); // Y осі бойынша масштаб mx:=w/abs(x2-x1); //X осі бойынша масштаб // координат осьтерінің қиылысу нүктесі x0:=l+Abs(Round(x1*mx)); y0:=b-Abs(Round(y1*my)); with form2.Canvas do begin MoveTo(x0,b);LineTo(x0,b-h); // ось Y MoveTo(l,y0);LineTo(l+w,y0); // ось X TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3)); TextOut(l+2,b+2,FloatToStrF(y1,ffGeneral,6,3)); // график салу for i:=1 to np do begin px := x0+Round(x[i]*mx); py := y0-Round(y[i]*my); Form2.Canvas.Pen.Color := clRed; Rectangle(px-2,py-2,px+2,py+2); // маркер if Form1.CheckBox1.Checked then // қосу сызығы if i = 1 then MoveTo(px,py) else LineTo(px,py); Form2.Canvas.Pen.Color := clBlack; // функция мәні және аргументі TextOut(px-5,py-15,FloatToStr(y[i]));

118

Page 116: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

TextOut(px-5,y0+2, FloatToStr(x[i])); MoveTo(px,py); // Қаламұшты px,py нүктелеріне қайтару // өйткені TextOut қаламұш орнын өзгертеді. end; end;end;procedure TForm1.FormCreate(Sender: TObject);var i: integer;begin StringGrid1.ColCount := COLCOUNT; StringGrid1.Cells[0,0] := ' X'; StringGrid1.Cells[0,1] := ' Y'; // Өңдеу: кестені толтыру for i:=1 to COLCOUNT do begin StringGrid1.Cells[i,0] := IntToStr(i-1); StringGrid1.Cells[i,1] := IntToStr(i-1); end;end;// Құру батырмасын шертуprocedure TForm1.Button1Click(Sender: TObject);var i: integer;begin // Кестедегі мәндерді функция мәндері мен аргументтерінің //жиымы түрінде қайта жазу for i:=1 to COLCOUNT-1 do begin x[i] := StrToFloat(Form1.StringGrid1.Cells[i,0]); y[i] := StrToFloat(Form1.StringGrid1.Cells[i,1]); end; // Графикті шығару функциясын Form2 үшін OnPaint оқиғасын //өңдеу процедурасы шақырады if not Form2.Showing then Form2.Show // Form2 терезесін бейнелеу else Form2.Repaint;end;

119

Page 117: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№19. Еске сақтау тесті

Жұмыстың мақсаты – өзіңіздің еске сақтау қабілетіңізді ұштайтын бағдарлама құру. 1. Ол үшін жаңа жоба ашып, сол Пішінге 33-суретте көрсетілген компоненттерді орналастырыңыз.

33-сурет

2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

34-сурет

35-сурет

Жұмысты орындау бағдарламасы:unit essaktau;

120

Page 118: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

implementationconst KC = 5; // санның разрядтылығы (цифрлар саны) LT = 10; // сандардың саны (тест ұзындығы)var numb: integer; // сыналушы еске сақтауға тиіс сан right: integer; // дұрыс еске сақталған сандар саны n: integer; // сандар есептеуіші{$R *.dfm}// k-разрядты санды генерациялайдыfunction GetNumb(k: integer) : integer;var n: integer; // генерацияланатын сан i: integer;begin // процедура санды үлкенінен бастап разряды бойынша генерациялайды n:= Random(9)+1; // үлкен разряд нөл бола алмайды // қалған разрядтар for i := 1 to (k-1) do n := n*10 + Random(10); GetNumb := n;end;// пішін құруprocedure TForm1.FormCreate(Sender: TObject);begin Edit1.Visible := False; // Edit1 енгізу өрісін жасыру Edit1.MaxLength := KC; // енгізуге болатын символдар саны Label1.WordWrap := True; // сөзді келесі жолға тасымалдауға рұхсат //беру Label1.Caption := 'Қазір экранда сандар пайда болады. ' + 'Сіз сол санды еске сақтап, оны пернетақтада теріңіз, сосын Enter басыңыз'; Button1.Caption := 'Бастау'; Timer1.Enabled := False; // таймер тоқтатылды Timer1.Interval := 1000; // санның көріну уақыты - 1 секунд right := 0; // дұрыстарының саны n := 0; // сандарды есептеуіш Randomize; // ГСЧ инициализациялау

121

Page 119: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

end;// «Бастау/Аяқтау» батырмасында шертуprocedure TForm1.Button1Click(Sender: TObject);begin if Button1.Caption = 'Аяқтау' then Form1.Close; // бағдарлама терезесін жабу if Button1.Caption = 'Бастау' then begin Button1.Caption := 'Аяқтау'; Button1.Visible := False; // батырманы жасыру // Button1 батырмасы сынақ аяқталған соң ғана қол жетімді //болады Label1.Caption := ''; Label1.Font.Size := 24; // Label1өрісінің қаріп өлшемі Edit1.Font.Size := 24; // Edit1 өрісінің қаріп өлшемі // санды генерациялау және шығару numb := GetNumb(KC); Label1.Caption := IntToStr(numb); Timer1.Enabled := True; // таймерді іске қосу // таймерден түскен сигналды өңдеу процедурасы санды //«өшіреді» end;end;// таймер оқиғасын өңдеуprocedure TForm1.Timer1Timer(Sender: TObject);begin Timer1.Enabled := False; // таймерді тоқтату Label1.Visible := False; // санды жасыру Edit1.Visible := True; // Edit1 өрісін қол жетімді ету Edit1.SetFocus; // Edit1 өрісіне көрсеткішті орнатуend;// Edit1 өрісінде пернені басуprocedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);var igrok: integer; // сыналушы енгізген санbegin case Key of '0'..'9',#8: ; // "0"-"9" пернелері, <Backspace> #13: // <Enter> пернесі

122

Page 120: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

begin igrok := StrToInt(Edit1.Text); if (igrok = numb) then right := right + 1; n := n + 1; // сандар есептеуіші Edit1.Text := ''; Edit1.Visible := False; // Edit1 өрісін жасыру if n < LT then begin numb := GetNumb(KC); // келесі санды генерациялау Label1.Caption := IntToStr(numb); // санды бейнелеу Label1.Visible := True; Timer1.Enabled := True; // таймерді іске қосу End // сынақ аяқталды else begin // нәтиже шығару Label1.Font.Size := 10; Label1.Caption := 'Нәтиже:' + #13 + 'Көрінген сандар: ' + IntToStr(LT) + #13 + 'Дұрысы: ' + IntToStr(right); Label1.Visible := True; Button1.Visible := True; // «Аяқтау» батырмасы көрінеді end; end; else Key := Chr(0); end;end;end.

123

Page 121: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№20. Электр тізбегінің кедергісін табу

Жұмыстың мақсаты – физика пәні бойынша электр тізбегінің кедергісін есептейтін бағдарлама құру. 1. Ол үшін жаңа жоба ашып, 36-суретте көрсетілген компоненттерді Пішінге орналастырыңыз.2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

36-сурет

Жұмысты атқару бағдарламасы:unit kedergy;// Есептеу батырмасында шертуprocedure TForm1.Button1Click(Sender: TObject);var r1,r2: real; // кедергілердің шамалары r: real; // тізбек кедергісіbegin // бастапқы мәліметтерді алу r1 := StrToFloat(Edit1.Text); r2 := StrToFloat(Edit2.Text); if (r1 = 0) and (r2 = 0) then

124

Page 122: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

begin ShowMessage('Ең болмағанда бір кедергінің мәні берілуі тиіс'); exit; end;

37-сурет

// RadioButton1және RadioButton2 ауыстырып қосқыштары бір-//біріне тәуелді, сондықтан қосылу типі жайлы ауыстырып //қосқыштың біреуінің жағдайы арқылы білуге болады if RadioButton1.Checked then // Тізбектей ауыстырып қосқышы таңдалды r:= r1+r2 else // Параллель ауыстырып қосқышы таңдалды r:= (r1*r2)/(r1+r2); Label4.Caption := 'Тізбек кедергісі: '; if r < 1000 then Label4.Caption := Label4.Caption + FloatToStrF(r,ffGeneral,3,2) + ' Ом' else begin r:=r/1000; Label4.Caption := Form1.Label4.Caption +

125

Page 123: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

FloatToStrF(r,ffGeneral,3,2) + ' Ом'; endend;// Тізбектей ауыстырып қосқышында шертуprocedure TForm1.RadioButton1Click(Sender: TObject);begin // Пайдаланушы қосылу типін өзгертті Label4.Caption := '';end;// Параллель ауыстырып қосқышында шертуprocedure TForm1.RadioButton2Click(Sender: TObject);begin // Пайдаланушы қосылу типін өзгертті Label4.Caption := '';end;end.

38-сурет

126

Page 124: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№21. Ом заңы

Жұмыстың мақсаты – физика пәні бойынша Ом заңын пайдаланып, ток, кернеу және кедергінің мәндерін есептейтін бағдарлама құру. 1. Ол үшін жаңа жоба ашып, Пішінге 39-суретте көрсетілген компоненттерді орналастырыңыз.2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

Жұмысты орындау бағдарламасы:unit om_;{$R *.dfm}// Токты, кернеуді не кедергіні есептеуprocedure Calculate;var I,U,R: real; // ток, кернеу, кедергі

39-сурет

beginif Form1.RadioButton1.Checked then // ток begin U := StrToFloat(Form1.Edit1.Text);

127

Page 125: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

R := StrToFloat(Form1.Edit2.Text); if (R <> 0) then begin I := U/R; Form1.Label3.Caption := 'Ток: ' + FloatToStrF(I,ffFixed,4,2) + ' А'; end else ShowMessage('Кедергі нөлге тең болмауы тиіс.'); exit; end; if Form1.RadioButton2.Checked then // кернеу begin I := StrToFloat(Form1.Edit1.Text); R := StrToFloat(Form1.Edit2.Text); U := I*R;Form1.Label3.Caption := 'Кернеу: ' + FloatToStrF(U,ffFixed,4,2) + ' В'; exit; end; if Form1.RadioButton3.Checked then // кедергі begin U := StrToFloat(Form1.Edit1.Text); I := StrToFloat(Form1.Edit2.Text); if (I <> 0) then begin R := U/I;Form1.Label3.Caption := 'Кедергі: ' + FloatToStrF(R,ffFixed,4,2) + ' Ом'; end else ShowMessage('Ток нөлге тең болмауы тиіс.'); end;end;// Ток ауыстырып қосқышын таңдау

128

Page 126: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

40-сурет

procedure TForm1.RadioButton1Click(Sender: TObject);begin Label1.Caption := 'Кернеу (вольт)'; Label2.Caption := 'Кедергі (Ом)'; Label3.Caption := '';end;// Кернеу ауыстырып қосқышын таңдау

41-сурет

129

Page 127: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure TForm1. RadioButton2Click(Sender: TObject);begin Label1.Caption := 'Ток (ампер)'; Label2.Caption := 'Кедергі (Ом)'; Label3.Caption := '';end;// Кедергі ауыстырып қосқышын таңдау

42-сурет

procedure TForm1.RadioButton3Click(Sender: TObject);begin Label1.Caption := 'Кернеу (вольт)'; Label2.Caption := 'Ток (ампер)'; Label3.Caption := '';end;// Edit1өрісінде пернені басуprocedure TForm1.Edit1KeyPress(Sender: TObject; var Key:Char);begin case Key of '0'..'9',#8: ; // цифрлар және <Backspase> #13: Edit2.SetFocus; // <Enter> пернесі '.',',': begin if Key = '.' then Key := ',';

130

Page 128: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

// үтір белгісін қайта енгізуге мүмкіндік бермейді if Pos(',',Edit1.Text) <> 0 then Key := Chr(0); end; else Key := Chr(0); end;end;//Edit2 өрісінде пернені басуprocedure TForm1.Edit2KeyPress(Sender: TObject; var Key:Char);begin case Key of '0'..'9',#8: ; #13: Calculate; // <Enter> батырмасы - есептеу '.',',': begin if Key = '.' then Key := ','; // үтір белгісін қайта енгізуге мүмкіндік бермейді if Pos(',',Edit2.Text) <> 0 then Key := Chr(0); end; else Key := Chr(0); end;end;// Есептеу батырмасында шертуprocedure TForm1.Button1Click(Sender: TObject);begin if (Edit1.Text <> '') and (Edit2.Text <> '') then Calculate // токты, кернеу не кедергіні есептеу else ShowMessage('Екі өріске де бастапқы мәндер енгізілуі керек');end;end.

131

Page 129: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№22. Спортсменнің жүгіру жылдамдығын есептеу

Жұмыстың мақсаты – спортсменнің жүгіру жылдамдығын есептей-тін бағдарлама құру. 1. Ол үшін жаңа жоба ашып, төмендегі 43-суретте көрсетілген компоненттерді сол Пішінге орналастырыңыз.

43-сурет

2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

Жұмысты орындау бағдарламасы:unit zhygyru;{$R *.dfm}// Дистанция өрісіндегі пернені басуprocedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin // Key – басылған пернеге сәйкес символ. // Егер символ рұхсат етілмеген болса, онда процедура оны коды нөлге тең символға ауыстырады. Соның нәтижесінде символ редакциялау өрісінде көрінбейді, сол себепті пайдаланушы

132

Page 130: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

бағдарлама кейбір пернелердің басуына әсер етпейді деп ойлап қалады. // пернелер. case Key of '0'..'9': ; // цифрлар #8 : ; // <Backspace>#13: Edit2.SetFocus; // <Enter> - Уақыт өрісіндегі көрсеткіш: //минут // басқа символдарға – рұхсат етілмейді else Key :=Chr(0); // символды бейнелемеу end; end;// Уақыт өрісіндегі пернені басу:минутprocedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);begin case Key of '0'..'9': ; #8 : ; // <Backspace>#13: Edit3.SetFocus; // <Enter> - Уақыт өрісіндегі көрсеткіш:секунд // басқа символдарға – рұхсат етілмейді else Key :=Chr(0); //символды бейнелемеу end;end; // Уақыт өрісіндегі пернені басу:секунд procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);begin case Key of '0'..'9': ; ',','.' : // ондық таңбалы бөлгіш begin Key := DecimalSeparator; if Pos(DecimalSeparator,Edit3.Text) <> 0 then Key := Char(0); end; #8 : ; // <Backspace> #13 : Button1.SetFocus; // <Enter> - Есептеу батырмасына //фокустау // басқа символдарға – рұхсат етілмейді else Key :=Chr(0); // символды бейнелемеу end;

133

Page 131: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

end;// Есептеу батырмасында шертуprocedure TForm1.Button1Click(Sender: TObject);var dist : integer; // дистанция, метрмен min : integer; // уақыт, минутпен sek : real; // уақыт, секундпен v: real; // жылдамдықbegin // бастапқы мәліметтерді енгізу өрісінен алу dist := StrToInt(Edit1.Text); min := StrToInt(Edit2.Text); sek := StrToFloat(Edit3.Text); // дистанция мен уақыт нөлге тең болмауы тиіс if (dist = 0) or ((min = 0) and (sek = 0)) then begin ShowMessage('Дистанция мен уақытты көрсету керек.'); exit; end; // есептеу v := (dist/1000) / ((min*60 + sek)/3600); // нәтиже шығару label5.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 + 'Уақыт: ' + IntToStr(min) + ' мин ' + FloatToStrF(sek, ffGeneral,4,2) + ' сек ' + #13 + 'Жылдамдық: ' + FloatToStrF(v,ffFixed,4,2) + ' км/сағ';end;// Аяқтау батырмасында шертуprocedure TForm1.Button2Click(Sender: TObject);begin Form1.Close; // Бас пішінді жабу – бағдарлама жұмысын аяқтауend;end.

134

Page 132: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

44-сурет

135

Page 133: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№23. Файл іздеу

Жұмыстың мақсаты – қажетті файлды іздеп табатын бағдарлама құру. 1. Ол үшін Пішінге мына суретте көрсетілген компоненттерді орнату. 2. Буманы таңдаңыз, оны Шолу арқылы көрсетуге болады, содан соң файлдың немесе оның кеңейтілімін көрсетіп, Табу батырмасын басыңыз.3. Төменде файл іздеудің бағдарламасы берілген.

45-сурет

Бағдарламасы:// Файлды көрсетілген каталогтан не ішкі каталогтан іздеуде Find //рекурсивтік процедурасы қолданылады.unit FindFile_;{$R *.dfm}var

136

Page 134: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

FileName: string; // ізделінді файл не маска аты cDir: string; n: integer; // сұранысты қанағаттандыратын файл саны// файлды ағымдағы каталогтан іздеуprocedure Find;var SearchRec: TSearchRec; //файл не каталог жайлы хабарламаbegin GetDir(0,cDir); // ағымдағы каталог атын алу if cDir[length(cDir)] <> '\' then cDir := cDir+'\'; if FindFirst(FileName, faAnyFile,SearchRec) = 0 then repeat if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then begin Form1.Memo1.Lines.Add(cDir + SearchRec.Name); n := n + 1; end; until FindNext(SearchRec) <> 0; // ағымдағы каталогтың ішкі каталогтарын өңдеу { Егер жүйелік каталог өңделмесе, онда faAnyFile орнына faDidertory беріледі. Мұның себебі мынада: жай каталог үшін SearchRec.Attr мәні faDirectory (16), ал Program Files үшін - faDirectory+faReadOnly (17), Windows каталогы үшін - faDirectory+faSysFile (20) тең.} if FindFirst('*', faAnyFile, SearchRec) = 0 then repeat if (SearchRec.Attr and faDirectory) = faDirectory then // каталогтар .. және . тағы да каталогтар, бірақ оған кірудің //қажеті жоқ !!! if SearchRec.Name[1] <> '.' then begin // Form1.Memo1.Lines.Add('>>>>'+SearchRec.Name); ChDir(SearchRec.Name);// каталогқа кіру Find; // іздеуді ішкі каталогта орындау ChDir('..');// каталогтан шығу //Form1.Memo1.Lines.Add('<<<<'+SearchRec.Name); end; until FindNext(SearchRec) <> 0;end;

137

Page 135: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

// Іздеу батырмасында шерту

46-сурет

procedure TForm1.Button1Click(Sender: TObject);begin if not DirectoryExists(Edit2.Text) then begin ShowMessage('Каталог дұрыс көрсетілмеді.'); Edit2.SetFocus; exit; end; Button1.Enabled := False; Label4.Caption := ''; Label4.Repaint; Memo1.Clear; // Memo1өрісін тазарту Label4.Caption := ''; FileName := Edit1.Text; // не іздейміз cDir := Edit2.Text; // қайдан іздейміз

138

Page 136: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

n:=0; // табылған файлдар саны ChDir(cDir); // каталогтағы іздеудің басына бару Find; // іздеуді бастау if n = 0 thenShowMessage('Іздеу критерийін қанағаттандыратын файлдар жоқ.') else Label4.Caption := 'Табылған файлдар:' + IntToStr(n); Button1.Enabled := True;end;// пайдаланушы таңдаған каталогты қайтарадыfunction GetPath(mes: string):string;var Root: string; // түпкі каталог pwRoot : PWideChar; Dir: string;begin Root := ''; //түпкі каталог – Жұмыс столы бумасы GetMem(pwRoot, (Length(Root)+1) * 2); pwRoot := StringToWideChar(Root,pwRoot,MAX_PATH*2); if SelectDirectory(mes, pwRoot, Dir) then if length(Dir) = 2 // пайдаланушы түпкі каталогты таңдады then GetPath := Dir+'\' else GetPath := Dir else GetPath := '';end;// Бума батырмасын шертуprocedure TForm1.Button2Click(Sender: TObject);var Path: string;begin Path := GetPath('Буманы таңдаңыз'); if Path <> '' then Edit2.Text := Path;end;end.

139

Page 137: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№24. Файлға жазба қосу

Жұмыстың мақсаты – Файлға жазба қосу әрекетін орындау мүмкіндігін беретін бағдарлама құру. 1. Ол үшін жаңа жоба ашып, мына 47-суреттегі компоненттерді Пішінге орналастырыңыз.

47-сурет2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

Бағдарламасы:unit RewAp_;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var f: TextFile; // файл fName: String[80]; // файлдың аты i: integer;begin if not OpenDialog1.Execute then exit; // Пайдаланушы файлды таңдады fName := OpenDialog1.FileName; AssignFile(f, fName); Rewrite(f); // қайта жазу үшін ашу // файлға жазу

140

Page 138: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

for i:=0 to Memo1.Lines.Count do // жолдар нөлден бастап //нөмірленеді writeln(f, Memo1.Lines[i]); CloseFile(f); // файлды жабу MessageDlg('Мәліметтер файлға қосылды. ', mtInformation, [mbOk],0);end;

48-суретprocedure TForm1.Button2Click(Sender: TObject);var f: TextFile; // файл fName: String[80]; // файлдың аты i: integer;begin fName := Edit1.Text; AssignFile(f, fName); Append(f); // жазба қосу үшін ашу // файлға жазу for i:=0 to Memo1.Lines.Count do // жолдар нөлден бастап //нөмірленеді writeln(f, Memo1.Lines[i]); CloseFile(f); // файлды жабуMessageDlg('Жазбалар файлға қосылды ',mtInformation,[mbOk],0);end;end.

141

Page 139: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№25. Файлдан оқу

Жұмыстың мақсаты – Файлдан оқуға мүмкіндік жасайтын бағдарлама құру. 1. Жаңа жоба ашып, Пішінге 49-суретте бейнеленген компоненттерді орнатыңыз.

49-сурет2. Төменде келтірілген бағдарламаны пайдаланып, сол компоненттердің оқиғалары мен қасиеттерін өңдеп, жұмыс мақсатына жеткізетін әрекеттерді орындаңыз.Бағдарламасы:// мәтіндік файлды редакциялау-қарап шығуunit rd1_;{$R *.dfm}// Ашу батырмасын шертуprocedure TForm1.Button1Click(Sender: TObject);var f: TextFile; // файл fName: String[80]; // файл аты buf: String[80]; // жолды оқуға арналған буфер begin if not OpenDialog1.Execute then {пайдаланушы сұхбатты Болдырмау батырмасын шертіп жапты} exit; // пайдаланушы файлды таңдады

142

Page 140: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

fName := OpenDialog1.FileName; Form1.Caption := fName; AssignFile(f, fName); try Reset(f); // оқу үшін ашу except on EInOutError do begin ShowMessage('файлға қатынас жасауда қате кетті '+ fName); exit; end; end; // файлдан оқу

50-сурет

while not EOF(f) do begin readln(f, buf); //мәтін жолын файлдан оқу Memo1.Lines.Add(buf); // жолды Memo1 өрісіне қосу end; CloseFile(f); // файлды жабуend;procedure TForm1.FormCreate(Sender: TObject);begin // сүзгіні анықтау OpenDialog1.Filter := 'Мәтін|*.txt';end;end.

143

Page 141: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№26. Жұлдыздар

Жұмыстың мақсаты – терезенің кезкелген жерінен тышқанның батырмаларымен шерткенде жұлдыздар шығаратын бағдарлама құру. 1. Жаңа жоба ашып, Пішінге 51-суретте көрсетілгендей компонент-терді орналастырыңыз.

51-сурет

2. Компоненттердің оқиғалары мен қасиеттерін төменде берілген бағдарламаға сәйкес өңдеп, жұмыс мақсатына сәйкес әрекеттерді атқарыңыз.

Жұмысты орындау бағдарламасы:unit Zhuldyzdar_;{$R *.dfm}// жұлдыз саладыprocedure TForm1.StarLine(x0,y0,r: integer); // x0,y0 – жұлдыз центрінің координатасы // r – жұлдыз радиусыvar p : array[1..11] of TPoint; // сәулелер мен ойыстар //координаталарының жиымы a: integer; // ОХ осі мен жұлдыз центрін және сәуле не ойыс //ұшын қосатын түзу арасындағы бұрыш i: integer;

144

Page 142: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

begin a := 18; // оң жақ көлденең сәуледен бастап салу for i:=1 to 10 do begin if (i mod 2 = 0) then begin // ойыс p[i].x := x0+Round(r/3*cos(a*2*pi/360)); p[i].y:=y0-Round(r/3*sin(a*2*pi/360)); end else begin // сәуле p[i].x:=x0+Round(r*cos(a*2*pi/360)); p[i].y:=y0-Round(r*sin(a*2*pi/360)); end; a := a+36; end; p[11].X := p[1].X; // жұлдыз контурын тұйықтау үшін p[11].Y := p[1].Y; Canvas.Polyline(p); // жұлдыз контурын сызуend;// тышқан батырмасын басуprocedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin if Button = mbLeft // сол жақ батырма басылды ма? then Canvas.Pen.Color := clBlack else Canvas.Pen.Color := clRed; StarLine(x, y, 30);end;end.

145

Page 143: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№27. Мәліметті басып шығару

Жұмыстың мақсаты – кестемен берілген мәліметтерді басып шығаратындай бағдарлама құру. 1. Жаңа жоба ашып, сол Пішінге 52-суретте көрсетілген компоненттерді орнатыңыз.

52-сурет

2. Төменде келтірілген бағдарламаны пайдаланып, сол компоненттердің оқиғалары мен қасиеттерін өңдеп, жұмыс мақсатына жеткізетін әрекеттерді орындаңыз.

Бағдарламасы:{ Бағдарлама тек басып шығаруды ғана орындайды. }unit malymet_;{$R *.dfm}uses Printers;procedure TForm1.FormCreate(Sender: TObject);var i: integer;begin with StringGrid1 do begin

146

Page 144: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Cells[0,0] := ' №'; Cells[1,0] := ' Аты-жөні'; Cells[2,0] := ' Білімі'; Cells[3,0] := ' Санаты'; Cells[4,0] := ' Өтілі'; for i:=1 to 10 do Cells[0,i] := ' '+IntToStr(i); end;end;

// Басып шығару батырмасында шертуprocedure TForm1.Button2Click(Sender: TObject);const LEFT_MARGIN = 2; // сол жақтан шегініс 2 см TOP_MARGIN = 2; // жоғарыдан шегініс 2 смvar dpiX, dpiY : integer; // Принтердің X және Y бойынша шығару //мүмкіндігі kx,ky: real; // экран координатын принтердің Х және Y бойынша //координатына айналдыру коэффициенті // кесте p: array[0..4] of integer; // бағандар орны x1,y1,x2,y2: integer; // кестенің шекаралары px,py: integer; // шығу нүктесінің көрсеткіші i,j: integer;begin { Экран мен принтердің шығару мүмкіндіктері әр түрлі, енді олардағы кескін өлшемдерін сәйкестеу үшін экран нүктелерінің координатын принтер координатына түрлендіретін коэффициентке көбейту керек. Ол принтердің мүмкіндігіне байланысты. Мыс, принтердің шығаруы 300 dpi болса, онда экрандікі -96 dpi, сонда коэффициент 300/96=3.125-ке тең.} // GetDeviceCaps функциясы құрылымдар сипаттамасын алуға //мүмкіндік береді // LOGPIXELSX -X бойынша дюймге келетін пикселдер саны dpiX := GetDeviceCaps(Printer.handle,LOGPIXELSX); dpiY := GetDeviceCaps(Printer.handle,LOGPIXELSY); kx := dpiX / Screen.PixelsPerInch;

147

Page 145: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

ky := dpiY / Screen.PixelsPerInch; px := Round(LEFT_MARGIN / 2.54 * dpiX); py := Round(TOP_MARGIN / 2.54 * dpiY); // кесте бағандарының «принтерлік» координаттарын есептеу p[0] := px; for i:=1 to 4 do begin p[i] := p[i-1] + Round(StringGrid1.ColWidths[i-1]* kx); end; with Printer do begin BeginDoc; // басып шығаруды ашу // кестенің тақырыбы Canvas.Font.Name := Edit1.Font.Name; Canvas.Font.Size := Edit1.Font.Size; Canvas.TextOut(px,py,Edit1.Text); // StringGrid1кестенің құрамы py := py+ Round(Edit1.Font.Size * 2 * ky); x1 := px; y1 := py; // кестенің сол жақ жоғарғы бұрышы Canvas.Font.Name := StringGrid1.Font.Name; Canvas.Font.Size := StringGrid1.Font.Size; x2 := p[4] + Round(StringGrid1.ColWidths[4]* kx); y2 := py + Round(StringGrid1.RowCount * StringGrid1.RowHeights[1] * ky); for j:=0 to StringGrid1.RowCount do begin // кестенің жолдары for i:=0 to StringGrid1.ColCount do begin Canvas.TextOut(P[i],py,StringGrid1.Cells[i,j]); // көлденең сызық Canvas.MoveTo(p[0],py); Canvas.LineTo(x2,py); end; py:=py+ Round(StringGrid1.RowHeights[j]* ky);

148

Page 146: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

end; // тік сызық for i:=0 to StringGrid1.ColCount -1 do begin Canvas.MoveTo(p[i],y1); Canvas.LineTo(p[i],y2); end; Canvas.MoveTo(x2,y1); Canvas.LineTo(x2,y2); EndDoc; // басып шығаруды жабу end; end; end..

149

Page 147: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№28. Тир

Жұмыстың мақсаты – біршама ойнауға, өзіңнің шалт қимылыңды көрсетуге арналған тир ойынының бағдарламасын құру. 1. Ол үшін жаңа жоба ашып, сол Пішінге қажетті компоненттерді орналастырыңыз. 2. Төменде келтірілген бағдарламаны пайдаланып, сол компоненттердің оқиғалары мен қасиеттерін өңдеп, жұмыс мақсатына жеткізетін әрекеттерді орындаңыз.

53-сурет

Жұмысты орындау бағдарламасы:unit tir_;public { Public declarations } {процедуралар хабарламасының мұнда орналасуы, бет бейнесі салынатын пішінге процедура жақын болсын дегендіктен } procedure PaintFace(x,y: integer); // бет бейнесін салады procedure EraseFace(x,y: integer); // бет бейнені өшіреді end;var Form1: TForm1; fx,fy: integer; // бет бейненің координаттары n: integer; // тышқан батырмасын шерту саны p: integer; // тигізу саны

150

Page 148: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

implementation// бет бейнені салуprocedure TForm1.PaintFace(x,y: integer);begin Canvas.Pen.Color := clBlack; // сызықтар түсі Canvas.Brush.Color := clYellow; // боялым түсі // бет бейнені салу Canvas.Ellipse(x,y,x+30,Y+30); // беті Canvas.Ellipse(x+9,y+10,x+11,y+13); // сол көзі Canvas.Ellipse(x+19,y+10,x+21,y+13); //оң көзі Canvas.Arc(x+4,y+4,x+26,y+26,x,y+20,x+30,y+20); //күлкісіend;// бет бейнені өшіруprocedure TForm1.EraseFace(x,y: integer);begin // пішінмен сәйкес келетін шекарасы мен боялым түсін беру.//Өзі орнатылатын пішін түсі - clBtnFace (Object Inspector –ді қара) Canvas.Pen.Color := clBtnFace; // шеңбер түсі Canvas.Brush.Color := clBtnFace; // боялым түсі Canvas.Ellipse(x,y,x+30,y+30);end;{$R *.dfm}

54-сурет

procedure TForm1.TimerTimer(Sender: TObject);begin EraseFace(fx,fy);

151

Page 149: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

// бет бейненің жаңа қалпы fx:= Random(ClientWidth-30);//30 – бет бейне диаметрі fy:= Random(ClientHeight-30); PaintFace(fx,fy);end;procedure TForm1.FormCreate(Sender: TObject);begin // бет бейненің бастапқы қалпы fx:=100; fy:=100; Randomize; //кездейсоқ сандар генераторын инициализациялауend;// тышқан батырмасын шертуprocedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin inc(n); // шерту саны if (x > fx) and (x < fx+30) and (y > fy) and (y < fy+30) then begin // бет бейнені шерту inc(p); end; if n = 10 then begin

// ойын аяқталды Timer.Enabled := False; //таймерді тоқтату ShowMessage('Атылғаны: 10. Тигені: ' + IntToStr(p)+'.'); EraseFace(fx,fy); Label1.Visible := True; Button1.Visible := True; // енді батырма мен хабарлама қайта көрінді end;end;

152

Page 150: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

55-сурет

// Ok батырмасын шертуprocedure TForm1.Button1Click(Sender: TObject);begin Label1.Visible := False; // хабарламаны жасыру Button1.Visible := False; // батырманы жасыру Timer.Enabled := True; // таймерді іске қосуend;end.

153

Page 151: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

Пайдаланылған әдебиеттер мен дереккөздер.

1. Programmers.kz сайтының материалдары.2. Delphi-manual.ru сайтының материалдары.3. Симонович С.В., Евсеев Г.А. Занимательное программирование: Delphi. –M.: АСТ-ПРЕСС КНИГА: Инфорком – Пресс, 2001.4. Культин Н.Б. Delphi в задачах и примерах. - СПб.: БХВ – Петербург, 2005.5. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. –СПб.: Питер, 2003.6. Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер, 2005.7. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi.- СПб.: БХВ – Петербург, 2005.8. Кузнецова И.А. Практикум по Delphi для решения прикладных задач. - Н.Новгород: ННГУ, 2005.

154

Page 152: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

№29. Тестілеу бағдарламасыЖұмыстың мақсаты – тестілеу бағдарламасын құру. 1. Ол үшін жаңа жоба ашып, сол Пішінге қажетті компоненттерді орналастырыңыз. 2. Төменде келтірілген бағдарламаны пайдаланып, сол компоненттердің оқиғалары мен қасиеттерін өңдеп, жұмыс мақсатына жеткізетін әрекеттерді орындаңыз.

{ Тестілеудің әмбебап бағдарламасы (с) Культин Н.Б., 2003 }unit tester_;interface

uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;

type TForm1 = class(TForm) Label5: TLabel; // сұрақ

Label1: TLabel; // балама жауаптар Label2: TLabel; Label3: TLabel; Label4: TLabel;

RadioButton1: TRadioButton; // жауапты таңдау радио батырмалары RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton;

Image1: TImage; // кескін шығару аймағы Button1: TButton; Panel1: TPanel; RadioButton5: TRadioButton;

procedure FormActivate(Sender: TObject);155

Page 153: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure Button1Click(Sender: TObject); procedure RadioButtonClick(Sender: TObject);

// Бұл хабарландырулар қолдан қойылған procedure Info; procedure SurakToScr; procedure ShowPicture; // кескін шығарушы procedure ResetForm; // кезекті сұрақты шығару алдында пішінді //«тазарту» procedure Kortyndy; procedure FormCreate(Sender: TObject); // тестілеу нәтижесі

private { Private declarations } public { Public declarations } end;

var Form1: TForm1; // Пішін

implementation{$R *.DFM}const N_LEV=4; // бағалаудың төрт деңгейі N_ANS=4; // жауаптардың төрт нұсқасы

var f:TextFile; fn:string; // сұрақтар файлының аты

level:array[1..N_LEV] of integer; // деңгейге сәйкес келетін ұпай mes:array[1..N_LEV] of string; // деңгейге сәйкес келетін //хабарлама

score:array[1..N_ANS] of integer; // жауапты таңдағаны үшін баға summa:integer; // жиналған ұпай surak:integer; // ағымдағы сұрақ нөмірі jauap:integer; // таңдалған жауап нөмірі

156

Page 154: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

procedure Tform1.Info; // тест жайлы хабарлама шығаруvar s,buf:string;begin readln(f,s); Form1.Caption := s; buf:=''; repeat readln(f,s); if s[1] <> '.' then buf := buf +s + #13; until s[1] ='.'; Label5.caption:=buf;end;

Procedure GetLevel; // тесттен алған бағаң жайлы хабарламаны оқуvar i:integer; buf:string;begin i:=1; repeat readln(f,buf); if buf[1] <> '.' then begin mes[i]:=buf; // хабарлама readln(f,level[i]); // баға i:=i+1; end; until buf[1]='.';end;

Procedure TForm1.ShowPicture; // кескінді масштабтауvar w,h: integer; // суреттің мүмкін болған ең үлкен өлшеміbegin // суреттің мүмкіндігі бар өлшемін есептеу w:=ClientWidth-10; h:=ClientHeight

157

Page 155: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

- Panel1.Height -10 - Label5.Top - Label5.Height - 10;

if Label1.Caption <> '' // сұрақтар then h:=h-Label1.Height-10; if Label2.Caption <> '' then h:=h-Label2.Height-10; if Label3.Caption <> '' then h:=h-Label3.Height-10; if Label4.Caption <> '' then h:=h-Label4.Height-10;

// егер сурет өлшемі w-дан h-қа кем болса, онда ол //масштабталмайды Image1.Top:=Form1.Label5.Top+Label5.Height+10; if Image1.Picture.Bitmap.Height > h then Image1.Height:=h else Image1.Height:= Image1.Picture.Height; if Image1.Picture.Bitmap.Width > w then Image1.Width:=w else Image1.Width:=Image1.Picture.Width;

Image1.Visible := True;end;

Procedure TForm1.SurakToScr; // сұрақты шығару var i:integer; s,buf:string; ifn:string; // кескін файлы begin surak:=surak+1; caption:='Сұрақ ' + IntToStr(surak); // сұрақты оқу buf:=''; repeat readln(f,s); if (s[1] <> '.') and (s[1] <> '\')

158

Page 156: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

then buf:=buf+s+' '; until (s[1] ='.') or (s[1] ='\'); Label5.caption:=buf; // сұрақты шығару

{Иллюстрацияны оқиық, бірақ оны баламалы жауаптарды оқып және шығару үшін қолданатын пішін өлшемінің ең үлкен мөлшерін анықтап болған соң ғана шығарамыз} if s[1] <> '\' then Image1.Tag:=0 // сұраққа сәйкес кескін жоқ else // сұраққа сәйкес кескін бар begin Image1.Tag:=1; ifn:=copy(s,2,length(s)); try Image1.Picture.LoadFromFile(ifn); except on E:EFOpenError do Image1.Tag:=0; end; end;

// Жауап нұсқаларын оқу i:=1; repeat buf:=''; repeat // жауап нұсқасының мәтінін оқу readln(f,s); if (s[1]<>'.') and (s[1] <> ',') then buf:=buf+s+' '; until (s[1]=',')or(s[1]='.'); // балама жауап оқылды score[i]:= StrToInt(s[2]); case i of 1: Label1.caption:=buf; 2: Label2.caption:=buf; 3: Label3.caption:=buf; 4: Label4.caption:=buf; end; i:=i+1;

159

Page 157: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

until s[1]='.'; // мұнда кескіндер мен балама жауаптар оқылды

// сұрақ мәтіні шығарылған if Image1.Tag =1 // сұраққа сәйкес кескін бар then ShowPicture;

// балама жауаптарды шығару if Form1.Label1.Caption <> '' then begin if Form1.Image1.Tag =1 then Label1.top:=Image1.Top+Image1.Height+10 else Label1.top:=Label5.Top+Label5.Height+10; RadioButton1.top:=Label1.top; Label1.visible:=TRUE; RadioButton1.visible:=TRUE; end;

if Form1.Label2.Caption <> '' then begin Label2.top:=Label1.top+ Label1.height+10; RadioButton2.top:=Label2.top; Label2.visible:=TRUE; RadioButton2.visible:=TRUE; end;

if Form1.Label3.Caption <> '' then begin Label3.top:=Label2.top+ Label2.height+10; RadioButton3.top:=Label3.top; Label3.visible:=TRUE; RadioButton3.visible:=TRUE; end;

if Form1.Label4.Caption <> '' then begin Label4.top:=Label3.top+ Label3.height+10; RadioButton4.top:=Label4.top; Label4.visible:=TRUE;

160

Page 158: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

RadioButton4.visible:=TRUE; end; end;

Procedure TForm1.ResetForm;begin // барлық белгілер мен радио батырмаларды көрінбейтін ету

Label1.Visible:=FALSE; Label1.caption:=''; Label1.width:=ClientWidth-Label1.left-5; RadioButton1.Visible:=FALSE;

Label2.Visible:=FALSE; Label2.caption:=''; Label2.width:=ClientWidth-Label2.left-5; RadioButton2.Visible:=FALSE;

Label3.Visible:=FALSE; Label3.caption:=''; Label3.width:=ClientWidth-Label3.left-5; RadioButton3.Visible:=FALSE;

Label4.Visible:=FALSE; Label4.caption:=''; Label4.width:=ClientWidth-Label4.left-5; RadioButton4.Visible:=FALSE;

Label5.width:=ClientWidth-Label5.left-5;

Image1.Visible:=FALSE;end;

// жеткен деңгейін анықтауprocedure TForm1.Kortyndy; var i:integer; buf:string; begin buf:='';

161

Page 159: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

buf:='Тестілеу нәтижесі'+ #13+'Барлық ұпайыңыз: '+ IntToStr(summa);

i:=1; while (summa < level[i]) and (i<N_LEV) do i:=i+1; buf:=buf+ #13+mes[i]; Label5.Top:=20; Label5.caption:=buf; end;

procedure TForm1.FormActivate(Sender: TObject); begin ResetForm; if ParamCount = 0 then begin Label5.caption:= 'Тест сұрақтарының файлы берілмеген.'; Button1.caption:='Ok'; Button1.tag:=2; Button1.Enabled:=TRUE end else begin fn := ParamStr(1); assignfile(f,fn); try reset(f); except on EFOpenError do begin ShowMessage('Тест файлы '+fn+' табылған жоқ.'); Button1.caption:='Ok'; Button1.tag:=2; Button1.Enabled:=TRUE; exit; end; end; Info; // тест жайлы хабарламаны оқу және шығару GetLevel; // бағалаудың деңгейі жайлы хабарламаны оқу end;end;

162

Page 160: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

// Button1 батырмасын шертуprocedure TForm1.Button1Click(Sender: TObject); begin case Button1.tag of 0: begin Button1.caption:='Әрі қарай'; Button1.tag:=1; RadioButton5.Checked:=TRUE; // бірінші сұрақты шығару Button1.Enabled:=False; ResetForm; SurakToScr; end; 1: begin // басқа сұрақтарды шығару summa:=summa+score[jauap]; RadioButton5.Checked:=TRUE; Button1.Enabled:=False; ResetForm; if not eof(f) then SurakToScr else begin summa:=summa+score[otv]; closefile(f); Button1.caption:='Ok'; Form1.caption:='Нәтижесі'; Button1.tag:=2; Button1.Enabled:=TRUE; Kortyndy; // нәтижені шығару end; end; 2: begin // жұмысты аяқтау Form1.Close; end; end;end;

163

Page 161: Delphi визуалды программалау ортасыi.it-mbeks.org/u/09/6b269a188b11e4852fe45f87cd4527/-/…  · Web viewБексарыұлы Мұратбек. delphi ВИЗУАЛДЫ

// RadioButton1-RadioButton4 компоненттері үшін OnClick оқиғасын //өңдеу проуцедурасыprocedure TForm1.RadioButtonClick(Sender: TObject);begin if sender = RadioButton1 then jauap:=1 else if sender = RadioButton1 then jauap:=2 else if sender = RadioButton3 then jauap:=3 else jauap:=4; Button1.enabled:=TRUE;end;

// компоненттерді баптауды қамтамасыз етедіprocedure TForm1.FormCreate(Sender: TObject);begin Image1.AutoSize := False; Image1.Proportional := True; RadioButton1.Visible := False;end;end.

164