2.2-сурет. Delphi 7 ортасының басты терезе
Басты терезедегі мәзір әмірлері мен саймандар тақтасы арқылы Delphi бағдарлама өңдеу барысын басқарады. Мұнда пайдалану мақсатына қарай топталған компоненттер орналасқан. Мысалы, Standart тобының элементтері: MainMenu, PopurMenu, Label, Edit, Memo, Button, CheckBox, RadioButton, ListBox тағы басқалары. Экранға сыймаған компоненттер соңғы көрінген топтың жанындағы бағыттауышты басқанда көрінеді.
2.3-сурет. Нысандар инспекторы
2.4-сурет. Кодты өңдеу терезесі
Объект Инспектіріндегі Caption жолына бірінші элемент меню бірінші жолына үстеу, екінші жолына жою, үшінші жолына жою деп енгізіңіз , ол меню жолағының оң жақ жоғарғы шетінде орналасқан көк тіктөртбұрышқа жазылады.
2.5 сурет. Бағдарламадағы қолданылған компоненттер
Delphi құрамына Image Editor (көріністер редакторы) бағдарламасы кіреді. Оның көмігімен өзіңіз құрған қосымшаға ерекше белгі қоюыңызға болады. Image Editor бағдарламасы Tools менюіне сәйкес команданы таңдау арқылы жұмысқа қосылады. Жаңа белгішені құру жөніндегі жұмысты бастау үшін File менюінен New командасын таңдап, ал пайда болған тізімнен Icon File опциясын алу қажет. (2.6 - сурет)
2.6 – сурет. Бағдарламаға ат беру және белгішені таңдау менюі
Image Editor-дегі сурет салу процесінің қарапайым графикалық редактордағы картина құру процесінен ешқандай айырмашылығы жоқ. Мысалы, Microsoft Paint. Дегенмен де атап өтерлік жақтары да жоқ емес. Бейнелеу өрісі алғашқы кезде (transparent) мөлдір түспен боялған. Егер белгішені осы фонда салатын болса, оны шығару кезінде бейне өрісінің белгіше салынған бөлігі фонын қабылдайды. Картиналар құруда қате сызылған немесе боялған элементтерді мөлдір түспен бояу арқылы өшіруге (жоюға) болады. Мөлдір түстен басқа, палитрада инверстті түстер де бар. Құрылған белгіні сақтау үшін File менюінен Save командасы таңдалады.
Командасы көмегімен жаңа жобаны құрамын. Объектілер инспкторы көмегімен Caption (аты) қасиетінде «Бөлуден қалатынбүтін бөлікті табу» мәнін беремін. Компоненттер палитрасының Standard бетін пайдаланып суретте көрсетілгендей форманың төменгі жағында Button (батырма) екі компонентін орналастырамын. Осы компоненттердің (Object Inspector объектілер инспекторынан) Caption қасиеттеріне «Операция» және «Жабу» мәндерін беру керек. Келесі жасаған жұмыстарымда осы батырмаларды құру операциялары осы жолмен берілетіндіктен, оларды құрудың сипаттамасы келтірілмейді. «Жабу» батырмасын тінтуірмен екі рет басып активтендіру қажет. Компоненттер палитрасының Standard бетін пайдалана отырып форманың бірінші бөлігінде Edit енгізудің үш жолын орналастырамын. Мәтіннің модуліне оларға Edit1, Edit2 және Edit3 аттары меншіктеледі. Объектілер инспекторы көмегімен барлық енгізу жолдарының Text (Мәтін) қасиетінің құрамын жоямын.
Компоненттер палитрасының бетін пайдалана отырып әрбір енгізу жолының Edit1 Label1 Label2, Label3 Panel1 Panel2 Panel3 Panel4 TrackBar SpeedButton CheckBox ProgresBar ListBox компоненттерін таңдап Form1 терезесіне енгіздім.
батырмасын басқан кезде экранда пайда болатын анықтамалық жүйенің бөлімін анықтайтын параметр. Егер анықтаманы шығару қарастырылмаған болса, онда контексті анықтама параметрінің мәні 0-ге тең.
MessageDlg функциясы қайтаратын мәндер (қолданушының басқан командасына байланысты) тізімі төмендегі кестеде берілген (2.2 кесте).
2.2 кесте. MessageDlg функциясы
MessageDlg функциясының мәні
|
Сұхбат мына батырманы басумен аяқталады
|
MrAbort
|
Abort
|
MrYes
|
Yes
|
MrOK
|
OK
|
MrRetry
|
Retry
|
MrNo
|
No
|
MrCancel
|
Cancel
|
MrIgnore
|
Ignore
|
MrAll
|
All
|
Ақпаратты шығаруға арналған сұхбаттық терезенің бір бөлігі – шығару өрісі (Label компоненті) немесе таңбалар (меткалар) өрісі деп аталады. Шығару өрісінің құрамы с қасиетінің мәнімен анықталады. Caption қасиеті мәндерін қосымшаның формасын өңдеуде де, сонымен қатар бағдарламаның жұмыс сәтінде де өзгертуге болады. Мәні – символдық тип. Сондықтан да бағдарламаның жұмысы кезінде тамғалар өрісінде сандық мән шығару үшін үшін санды қатарға түрлендіру қажет болады. Түрлендіруде FloatToStr немесе IntToStr функциялары қолданылады. Осы жазылғандарыма сәйкес мынадай мысалды көрсетуге болады: Label2.Caption:=FloatToStr(kg)+ “кг”;
Бағдарламалау тілінің нұсқауы түрінде берілген бағдарлама бастапқы бағдарлама деп аталады. Ол адамға түсінікті нұсқаулардан құрылғанмен де, бұл нұсқаулар компьютер процессорына түсініксіз. Процессор бастапқы нұсқауларына сәйкес жұмысты орындау үшін, бастапқы бағдарлама машиналық тілге – процессор командалары тіліне аударылуы қажет. Бастапқы бағдарласаны машиналық кодқа түрлендіруді компилятор деп аталатын арнайы бағдарлама жүзеге асырады.
Компилятор екі міндетті тізбектей орындайды:
Бастапқы бағдарлама мәтініндегі синтаксистік қатенің жоқтығын тексереді.
Орындалатын бағдарлама – машиналық кодты құрайды (генерациялайды).
2.4 Бағдарлама нұсқауларының жазбасы
Бағдарламадағы нұсқаулар басқа нұсқаулардан немесе символдардан нүктелі үтір арқылы ажыратылып жазылады. Әр нұсқаудың соңына «;» символын қойып кету қажет. Бір қатарға бірнеше нұсқауды жазуға болады, дегенмен де әр нұсқауды әр қатарға шегініс арқылы жазған жөн. Кейбір нұсқауларды (if, case, repeat, while және т.б.) бірнеше қатарға шегініс арқылы жазу қабылданған. Компилятор жұмысқа қосылған кезде бос қалдырылған орындар мен шегіністерді елемейді. Арифметикалық және логикалық өрнектерді, параметрлер тізбектерін жазған кезде бос аралық (пробел) қалдырып отырып талап етілмейді. Дегенмен де бос аралықты қолданып жазылған бағдарламаны түсінудің жеңіл екеніне көзім жеткен тәрізді. Бағдарлама жұмысының логикасын түсінуді жеңілдету үшін, бағдарлама мәтініне түсініктемені қосқан жөн. Түсініктеме фигуралы жақшаға алынып жазылады. Егер түсініктеме бір қатарға жеке жазылатын болса немесе нұсқаудан кейін орналасса, онда түсініктеменің алдына екі (//) қисық сызық қойылады.
Жұмыс кезінде бағдарламауды жаңа бастап жүрген бағдарламашы өзі құрып отырған бағдарламаның мағынасын түсіне білуі керек. Жұмыс тиімді болу үшін бағдарлама оқуға жеңіл, шешілуге тиісті тапсырманың құрылымына және алгоритміне сәйкес болуы керек. Ол үшін бағдарламалау стилінің ережелеріне сүйенген жөн. Бағдарламалау стилі – бағдарламалау процесінде қолданылатын ережелер жиыны. Әрине, тәжірибелі бағдарламашы жақсы стильді ережелерге сүйенуі керек. Жақсы стиль дегеніміз:
- түсініктемелерді қолдану;
- айнымалыларға, процедураларға және және функцияларға мағыналы аттар беру;
- шегіністерді пайдалану;
- бос қатарларды қолдану.
Бағдарламалаудың жақсы стилін қолданғанда мәтінді теру кезеңіндегі қателердің пайда болу ықтималдылығы едәуір азаяды және түзету немесе өзгеріс енгізу процестері жеңілдейді. Бағдарламалау стилі бағдарлама мәтінін жазу ережесіне арналған деп бір жақты түсінік беру, әрине қате пікір болар еді. Жақсы стиль, сонымен қатар бағдарлама жұмысында да ескерілуі қажет. Осы ұстанымдар негізінде құрылған бағдарлама әрі сенімді, әрі қолданушыға түсінікті болмақ. Жұмыс тиімді болу үшін бағдарлама оқуға жеңіл, шешілуге тиісті тапсырманың құрылымына және алгоритміне сәйкес болуы керек. Ол үшін бағдарламалау стилінің ережелеріне сүйенген жөн. Бағдарламалау стилі- бағдарламалау процесінде қолданылатын ережелер жиыны. Сенімділік – бағдарлама бастапқы деректерді бақылайды, қандай да бір себептермен орындалмай қалған операциялардың орындалу нәтижелерін тексеріп отырады. Ыңғайлылық – тиімді жобаланған сұхбаттық терезелердің, анықтамалық жүйелердің қызметтерімен толықтырылмақ.
ListBox – бұл компонент керекті элементті таңдауға мүмкіндік беретін тізім болып келеді.
Name – компонент қасиетіне кіру мүмкіндігін алу үшін пайдаланылатын компонент атауы.
Items – тізім элементтері – жолдар жиыны.
Count – тізім элементтерінің саны
ItemIndex – тізімде таңдалған элемент нөмірі.
Sorted – тізімге кезекті элементті қосқаннан кейінгі автоматты сұрыптау қажеттілігін көрсетеді.
Top – тізімнің жоғары шекарасынан форманың жоғары шекарасына дейінгі қашықтық.
Left - тізімнің сол жақ шекарасынан форманың сол жақ шекарасына дейінгі қашықтық.
Width – тізім өрісінің ені.
Height – тізім өрісінің биіктігі.
Font – тізім элементтерін шығару үшін пайдаланылатын қаріп.
Timer – On Timer оқиғалар тізбегін генерациялауды қамтамасыз етеді.
Name – компонент аты. Компонентке кіру үшін пайдаланылады.
Interval – On Timer оқиғаларын генерациялау периоды. Миллисекунд
арқылы беріледі.
Enabled – On Timer оқиғаларын егер мәні ақиқат болса генерациялайды, ал мәні жалған болса жұмысты тоқтатады.
2.5 Жобаны сақтау
Жоба – бұл файлдар жиыны, бұл арқылы компилятор бағдарламаның орындалатын (exe-файлдар) файлын құрады. Жоба мынадай файлдардан тұрады:
жобаны баяндау файлынан (dpr-файл)
басты модуль файлынан (pas-файл)
ресурстар файлынан (res-файл)
форманы баяндау файлынан(dfm-файл)
функцияна баяндау файлынан(cpp-файл) және т.б.
Жобаны сақтау үшін File менюінен Save Project As командасын таңдау қажет.
Егер жоба әлі сақталмаған болса, Delphi онда алдымен модульді (код редакторы терезесінің құрамындағыларды) сақтауды ұсынады, сондықтан экранда Save Unit1 As терезесі пайда болады. Осы терезеде жоба файлдарына арналған папканы таңдап, модуль атын енгізу қажет.
Сохранить (Сақтау) батырмасын басқаннан кейін жоба файлының атын енгізу қажет терезе пайда болады. Модуль файлдарының аттары (pas-файл) және жоба файлдары (dpr-файл) аттарының әр түрлі екендігіне назар аудардым. Онда компилятормен генерацияланатын файл аты жоба атымен сәйкес болады.
Кейбір жағдайда массивті енгізу үшін Memo компоненті қолданылады.
Memo компоненті бірнеше қатарлардан тұратын мәтінді енгізуге ыңғайлы. Сондықтан да сиволдық массивті енгізуде тиімді болмақ. Memo компонентін формаға енгізу үшін, Standard салымынан осы компоненттің белгісін таңдаймыз.
Memo компоненттің қасиеттері:
Name – компонент аты.
Text – Memo өрісіндегі мәтін.
Line – Memo өрісіндегі мәтін. Қатарлар жиыны ретінде қарастырылады. Қатарға қатынас нөмірі бойынша құрылады.
Lines.Count – Memo өрісіндегі мәтіндік қатаралар саны.
Left – Өрістің сол жақ шекарасынан форманың сол жақ шекарасына дейінгі аралық (сол жақтағы).
Top - Өрістің жоғарғы шекарасынан форманың жоғарғы шекарасына дейінгі аралық.
Height – өріс биіктігі.
Width – өріс ені.
Font – енгізілген мәтін қарпі.
Memo компонентін қолданған кезде массивті енгізу үшін массивтің әрбір элементінің мәнін жеке қатарда енгізу қажет, сонан соң Enter пернесін басқан жөн. Memo өрісіндегі мәтінге Lines қасиетінің көмегімен қатынас құруға болады. Ол үшін қажетті қатардың нөмірін квадрат жақшаға алып жазу керек.
2.6 Форма құрастырушының және объектілер бақылаушысының терезесі
Форма құрастырушысының немесе форманың терезесі - болашақ программаның Wіndows терезесінің жобасы. Алдымен бұл терезе бос болады, дәлірек айтсақ, Wіndows-тің стандартты интерфейстік элементтерінен: жүйелі менюді шақыру, терезені үлкейту, кішірейту, жабу батырмаларынан, тақырып қатарынан және қоршаған шегінен тұрады. Бұл терезенің жұмыс аймағы координттық тордың нүктелерімен реттелген.
Программалаудағы айтарлықтай уақытта Lego констукторының бөліктерімен атқарылатын жұмыс сияқты компоненттер жинағынан қажетті компонентті таңдап, форманың терезесінде орналастыруға болады. Сөйтіп, форма терезесінде қажетті компоненттер бірінен соң бірі орналастырылады.
Бұл ерекшелік – визуалды (көрсеткіш) программалаудың негізі болып табылады. Программалаушы әр мезгілде құрылатын программаның терезесін бақылап отырып, қажетті өзгерістерді кез-келген мезетте енгізу мүмкіндігіне ие болады.
Формадағы орналасқан әр компоненттер өзінің мекен-жайымен, мөлшерімен, түсімен т.с.с. анықталады. Форманы құрастыру Fіle => New => Form опциялары арқылы орындалады. Шығып тұрған бос формаға бір компонентті, мысалы Standard парағының Button батырмасын орналастыру үшін компоненттер жинағындағы Standard белгісін сырт еткізіп, парақты екпінді күйге келтіру керек.
Button батырмасының кескінін ажырату үшін тышқанды баспай тұрып парақта орналасқан белгілердің үстінен жылжытып көрген сәтте компоненттердің аты шығып тұрады.
Қажетті компонентті сырт еткізіп белгілеп, тышқанды форма аймағының кез-келген жеріне сырт еткізсек, форманың бетінде Button1 элементі пайда болады.
Компоненттің формадағы орнын, мөлшерін форма терезесінде бірден өзгертуге болады, ол үшін компонентті тышқанның сол жақ батырмасымен белгілеу керек (кішігірім төртбұрыштылар пайда болады). Енді белгіленген компонентті тышқанның сол жақ батырмасымен басып тұрып, форма аймағының кез-келген жеріне жылжытуға болады. Мөлшерін өзгерту үшін тышқанды элементті қоршап тұрған кез-келген төртбұрышқа орналастырсаңыз, пайда болған қос бағытты тік сызықты тышқанның сол жақ батырмасын басып тұрып жылжытуға болады. Компонент жою үшін оны белгілеп, Delete пернесін басса жеткілікті.
Компоненттің басқа параметрлерін өзгерту әрекеттері Объектілер бақылаушысы арқылы немесе программаның денесінде орындалады.
Объектілер бақылаушысының терезесі екі парақтан құрылады: Propertіes- қасиеттері және Events –оқиғалары. Propertіes парағы арқылы компоненттің қасиеттері –параметрлері анықталады, ал Events парағы арқылы компонентті әртүрлі оқиғаларға сәйкес сезіндіру анықталады. 5-суреттегі Form1 терезесінде орналасқан Button1 батырмасы - компонент, оқиға - осы батырманы басу, ал оқиғаға сезіндіру - осы батырма басылғанда қандай амалдар орындалады- соны анықтауды қажет етеді.
Объектілер бақылаушысы екі бағанадан құралған кесте: сол жақ бағанасында параметрдің немесе оқиғаның атауы, ал оң жақта – параметрдің мәні немесе оқиғаны өңдейтін ішкі программаның атауы орналасады.
Кестенің кез келген жолын тышқанды сырт еткізу арқылы таңдауға болады. Бұл жолдағы параметр қарапайым немесе күрделі болуы мүмкін. Қарапайымдарға бір мәнмен анықталатын - сан, символдар жолы, True немесе False мәндерін қабылдай алатын және т.с.с. компоненттің қасиеттері жатады. Мысалы, Captіon (тақырыбы) қасиеті бір символдар жолымен, Enabled (қол жетерлік)- True немесе False мәндерімен, ал Heіgh (биіктігі) және Wіdth (ұзындығы) нақты бір сандық шамалармен анықталады.
К/омпоненттің күрделі қасиеттер құрамына бірнеше мәндер тізімі кіреді. Олардың сол жағында “+“ белгісі тұрады, мысалы (2.8-сурет),
Осы тізімді ашу үшін “+” белгісін тышқанмен сырт еткізсе жеткілікті. Тізімді жабу амалы қасиеттің “-“ белгісін басқанда орындалады.
Жолдың оң бағанасын сырт еткізу арқылы қасиеттің мәнін шығаруға болады, кейде шыққан көрініс келесі түрлерде де болуы мүмкін:
С уреттегі бірінші көріністегі “…” белгісін басқанда қасиеттің мәнін анықтауға мүмкіндік туғызатын сұқбаттасу терезесі шығады. Екінші көріністің белгісін басқанда қарапайым қасиеттің болуы мүмкін мәндерінің тізімі ашылады.
Объектілер бақылаушысы терезесінің жоғарғы жағында форманың атауы және формадағы орналасқан барлық компоненттер және оларға қолданылған оқиғалар тізімі орналасып тұрады.
Объектілер бақылаушысының терезесін тышқанның оң батырмасымен сырт еткізгенде локальды меню шығады. Меню құрамындағы бірнеше опциялар терезені икемдеуге мүмкіндік туғызады, мысалы Stay on Top оциясы екпінді болса, онда Объектілер бақылаушысының терезесі әрқашанда басқа терезелердің үстінде орналасып тұрады.
Dеlрһі - де интернет үшін қосымшаларды дайындау мүмкіндігі кеңейтілген және ол берілгендер қорымен жұмыс істейді. Delрһі-де Паскаль тілінде орындау мүмкін және мүмкін емес күрделі процестерді бағдарламалауға болады. Delрһі-дің негізгі ерекшелігі - онда қосымша құруда компоненттік және объектілік тәсілдер пайдаланылады (Windows ортасында пайдаланатындықтан, Delрһі-де бағдарламаны көбінесе қосымша деп атайды). Компоненттік тәсілдің мәнісі жеңіл: әр қосымша кітапханасы бағдарламалау ортасында дайындалып, арнайы іс-әрекеттерді орындайтын компоненттер элементтерінен жинақталады.
Delрһі -де жұмыс жасаудың тиімділігі ондағы объектілерді
сипаттамай-ақ тышқанның көмегімен қою арқылы ерекшелінеді.
Delрһі Windows жүйесінде багдарламалаудың ыңғайлы құралы. Онда
көптеген операторларды пайдаланып бағдарлама дайындау,
бағдарлама мәзірін құру, анимация, мультимедия процестерін
ұйымдастыру, ОLЕ технологиясын пайдаланып басқа офистік қосымшаларды шақыру, олармен жүмыс істеу және т.б. іс-әрекеттерді орындау мүмкін.
Жоғары деңгейлі бағдарламалау тілдері жарыққа шыға бастағаннан бері көптеген бағдарламалау тілдері пайда болды. Қазіргі кезде олар процедуралық, логикалық және обьектілі-бағдарлы болып үш түрге бөлінеді. Мысалы, дәстүрлі (“классикалық“) процедуралық бағдарламалау тілдері - Фортран, Бейсик, Паскаль, логикалық тілдер - ЛИСП, Пролог. Есептеуіш техниканың қарқынды дамуы жәнс бағдарламалық жабдықтауды тиімді дайындауға қәжеттілік нәтижесінде соңғы кездерде Windows ортасында жарыққа шыққан жәнс объектілі-бағдарлы бағдарламалау (ОББ) негізінде құрылған бағдарламалау тілдері - Borland С++ for Windows, Object Pascal және визуальды Microsoft Visual Basic, Borland Delphi. Процедуралық бағдарламалау тілдерінде бағдарламаның жұмысы операторларды ретімен орындау бойынша, ал, логикалық бағдарламалау тілдерінде ол қатаң логикалық ережелерге сәйкес өзгертулер енгізу ретінде қарастырылған болатын. Объектіге бағдарлы оқиғалық бағдарламалау тілінде бағдарламаның жұмысы негізінен оқиғалар тізбегінен және түрлі объектілердің осы оқиғаларға жауабынан тұрады. Олардың визуальды түрлері – Visual Basic тілі Qbasic бағдарламалау тілі негізінде, Delрһі (Дельфи) Объектілі Паскаль (Object Pascal) тілі негізінде Windows операциялық жұмысын басшылыққа алып құрылған (visual- көзбен көру, экрандық). Олар, әсіресе, Delрһі бағдарламалау тілі - кез-келген қосымшаны дайындауға болатын жылдамдығы тез, қуатты тіл.
Delphi – бұл ең алдымен қосымшаларды құру және оларды қолдау үшін қолданылатын, әрбір дербес компьютср мен серверге арналған бағдарламалау ортасы. Delphi ортасы әлі күнге дейін Windows үшін ең күшті объектті - бағдарлы және визуалды бағдарламалау тілдерінің бірі болып келеді. Алайда ол тек Windows үшін емес, қазіргі таңда Linux, ал болаша?та Net үшін де ең күшті бағдарламалау ортасы болады.
Delphi -ді қосымшаларды жылдам, әрі тез құру ортасы деп айтады. Бұл визуалды бағдарламалау технологиясы. Қолданушы өзінің болашақ бағдарламасын әрлеп, безендіріп, жұмыстың нәтижесін бағдарламаны жүргізуден бұрын көре алады. Жоғарыда айтып өткендей Delphi-дің негізі болып Object Pascal объектті-бағдарлы бағдарламалау тілі табылады. Оның негізінде әлемге әйгілі және жалпыға түсінікті Pascal тілі жатыр. Сондықтан Delphi -ді тез үйрену үшін әрине осы тілді білу қажет. Delphi -де әрбір терезелік жоба бір бағдарлама мәтінінен және кемінде бір модуль терезесінен тұрады. Яғни бағдарлама дискіде жобаның тақырып қатарындағы атаумен және *.dpr кеңеюімен сақталады.
Delphi жүйесінде Pascal тілінің ұлғайтылған және дамытылған нұсқасы – Object Pascal программалау тілі қолданылады. Delphi ортасы іске қосылғанда программа кодының терезесі Windows ортасының бос терезесінің бастапқы кодынан тұрады. Жаңа форманың кодына Delphi ортасы бұл қатарларды автоматты түрде қосып отырады. Жобаны құру барысында осы кодқа қажетті өзгерістер енгізіледі. Delphi ортасы Unit, Unit 1 және implementation қатарларының аралығын өзгертіп отырады, ал программалаушының жұмыс аймағы – {SR*DFM} және END қатарлар аралығы бойынша.
Оператор дегеніміз – алгоритмді жүзеге асыру барысындағы орындалатын іс-әрекеттерді анықтайтын тілдің қарапайым сөйлемі. Операторлар жазылу ретінде қарай бірінен кейін бірі тізбектеліп орындалады.
Басқару операторлары программа қатарларының орындалу реттілігін өзгертеді. Олар шартты тексерту, таңдау және цикл операторларына жіктеледі. Шартты оператор кейбір шарттарды тексеруге және тексеру нәтижесіне байланысты мына немесе келесі әрекетті орындауға мүмкіндік береді. Шартты оператор “Иә” немесе “Жоқ” деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Шартты оператор құрылымы мынадай: if <шарт> then <1-оператор> else <2-оператор>; Шарт оператор келесі алгоритм бойынша жұмыс істейді: егер оның нәтижесі ақиқат, яғни құптарлық болса (иә), онда бір программалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда (жоқ), программаның басқа бір тармағы жүзеге асырылады. Мұнда есептің шартына байланысты тармақталу алгоритмдерінің “Таңдау” немесе “Аттап өту” мүмкіндіктерінің бірі орындалуы тиіс.
Delphi ортасында таңдау оператормен жұмыс істеу.
Таңдау операторы программаның мүмкін болатын бірнешежалғасының бірін таңдауға мүмкіндік береді. Таңдау операторының құрылымы мынандай:
Case< ключ выбора> of <список выбора> [else<операторы>] end;
Таңдау операторлар келесі алгоритм арқылы жұмыс істейді: Case операторы айнымалының мәнін мүмкін болатын қатарымен салыстырады және әр мәнге сәйкес әр түрлі операторларды орындайды. ELSE сөзінің болуы міндетті емес, егер ол болмаса, яғни жәй ол өрнек ешбір мәнге сәйкес болмаса, онда, CASE-тің END
Компоненттер жинағы – Delphi негізгі байлығы болып табылады. Ол негізгі терезенің оң жағында орналасып, қажетті компонентті тез табуға арналған белгілерде тұрады.
Компонент деп белгілі бір қасиеттерді иемденген және форма терезесінде кез-келген объектіні орналастыру мүмкіндігін туғызатын функциональды элементті айтады. Delphi ортасының компоненттері 19 топқа бөлінген, ол топтарды парақтар деп атаймыз.
Форма құрастырушының және объектілер бақылаушысының терезесі. Форма құрастырушының немесе форманың терезесі – болашақ программаның Windows жобасы. Алдымен бұл терезе бос болады. Бұл терезенің жұмыс аймағы координаттық тордың нүктелерімен реттелген.
Формада орналасқан әр компоненттер өзінің мекен-жайымен, мөлшерімен және түсімен анықталады. Форманы құрастыру File=>New=>Form опциялары арқылы орындалады. Шығып тұрған бос формаға бір компонентті, мысалы Standard парағының Button батырмасын орналастыру үшін компоненттер жинағындағы Standard белгісін сырт еткізіп, парақты екпінді күйге келтіру керек.
Button батырмасының кескінің ажырату үшін тышқанды баспай тұрып парақта орналасқан белгілердің үстінен жылжытып көрген сәтте компоненттердің аты шығып тұрады.
Бағдарламаны енгізу
Медиаойнатқыш бағдарламасын көркемдеу
Менің бағдарламамның интерфейсін қарастырамыз. Бірінші дизайн үлгісінен бастайық. Ол үшін AlphaSkins компоненттерін және оның құрауыштарын қолданамыз.
Бағдарлама көркем болу үшін AlphaControls компоненттерін қолданам. Ол үшін AlphaControls пакетін орнатамын. www.alphaskins.com сайтына кіріп өз версиямызға сай AlphaSkins компоненттерін жүктейміз.
Барлық элеметтер скиндері өздеріне тән қасиеттерге ие. Графикалық функция барлық есептеулерді жүргізуге және real-time режимінде сурет салуға мүмкіндік береді. Бұл скин жаңа мүмкіндіктермен қатар әдемі бағдарлама жасауға көмектеседі. Дизайн таңдау арқылы барлық фунциялардың қасиеттерін ашады және бағдарламаны көркейтеді. Мысалы, TsSkinManager (3.1-сурет) компоненттін формаға қосқанда жаңа меню пайда болады. SkinName қасиетінен өзімізге ұнаған скинді таңдап аламыз. Сонымен қатар ішкі скиндерді Design-time қасиетінен InternalSkins Active=True таңдай аламыз. Егер TsSkinManager. Active=False болса, онда стандартты түрге келеді
Сурет 3.1-сурет. Skinmanager компонентінің интерфейсі
Жасаған бағдарламаның ерекшелігі:
өте ыңғайлы меню формасы
әдемі көркем дизайн
ойнатқыш парақшасы арқылы көптеген файлдарды ашу
3.2-сурет. Тез және ыңғайлы пернелер комбинациялары.
Бұл бағдарламаның ерекшелігі аудио және видео фоматтарды оқуы және плейлистке жаңа форматтарды қосу болып табылады. Пернелер комбинациялары арқылы тез әрі ыңғайлы әнтізімді таңдауға мүмкіндік береді(3.2-сурет).
Delрһі -дің негізгі характеристикасы мынадай: Delрһі -бұл бірнеше қажетті технологиялардың комбинациясы:
машиналық кодтағы жоғарғы өндеуші компилятор;
компоненттің объектті-бағытталған моделі;
қосымшаны визуалды етіп (жылдам, әрі тез) күру;
моліметтер қорын құрудағы кең көлемді кұрал.
Қазіргі кезде музыка сүйер қауым ғаламторда түрлі аудиоредакторлық бағдарламаларға тап болатындықтан, өздеріне қажеттісін таба алмай, уақыттарын босқа жұмсап, әлек болып жүреді. Бағдарламаның көмегімен қолданушы жаңғырық, эквалайзерлерді өзгерте алады.
Бұған қоса, Медиаойнатқыш көмегімен аудиодағы шуылдарды алып тастауға, сондай-ақ ескі жазбаларды өңдеп, реставрациялау процессінен өткізуге болады. Бағдарлама қазіргі барлық заманауи аудио форматтарды қолдайды. Олардың ішінде:.wav, *.mp3, *.ogg, *.aiff, *.au, *.vox тағы да басқалары бар.
Сондай-ақ, "Медиаойнатқыш " сыртқы аудио көздерінен аудионы жазуға мүмкіндік береді.
Мультимедиа (Multimedia) - компьютерде дыбысты, ақпаратты, тұрақты және қозғалыстағы бейнелерді біріктіріп көрсету үшін жинақталған компьютерлік технология. Ол ақпаратты кешенді түрде бейнелеуді — мәліметтерді мәтіндік, графикалық, бейне-, аудио- және мультипликациялық түрде шығаруды — жүзеге асырады. Мәтін, түрлі-түсті графика, дыбыс, сөз бен кескін синтезін жасап, ақпараттың өте көлемді мөлшерін жадында сақтап, диалогтық түрде жұмыс істейді. Мультимедиа элементтерімен еркін интерактивті түрде қатынас құруға, дыбыспен сүйемелденетін бейнекөріністерді компьютер экранында көрсетуге, тыңдауға толық мүмкіндік бар. Мультимедиалық программалар сөйлейтін энциклопедиядан бастап, бейнеклиптік мәліметтер базасын жасау жұмыстарын толық қамти алады.
3.3-сурет. Бағдарламаның ойнатқыш парақшасы
Пішіндегі батырмалардың ішінен Анықтама батырмасын басыңыз. Оны пішіннің төменгі жағының центріне орналастырыңыздар. Ол үшін пішіннің аймағында тышқанның оң жақ батырмасымен батырмаға шертіңіздер. Пайда болған контекстік менюден Align командасын таңдап, пайда болған қарым – қатынас терезесінен Center in window параметрін таңдаңыздар.(3.3- сурет).
MediaPlayer – видеороликтерді, дыбыстарды және дыбысы бар анимацияларды орындауға мүмкіндік береді.
Name – компонент қасиетіне кіру және плеерді басқару мүмкіндігін алу үшін пайдаланылатын компонент атауы. DeviceType – құрылғы типі.
FileName – бейнеролик немесе дыбыстық фрагменті орналасқан файл аты. AutoOpen – бағдарламаны шақырғаннан кейін бейнеролик файлы немесе
дыбыстық фрагменттің автоматты ашылу белгісі. Display – бейнеролик орналасқан компонентті анықтайды. Visiblebuttons – компоненттің көрінетін батырмаларын анықтайды.
3.4-сурет. Бағдарлама авторының формасы.
Бұл терезе (3.4- сурет) бағдарламаның авторы екенін көрсетеді. Оны көру үшін Бағдарлама туралы Меню терезесіндегі бағдарлама командасын бір рет шертеміз. Сөйтіп мен компоненттер палитрасындағы компоненттер арқылы бағдарлама құрастырдым. Компоненттер Delphi программасының негізгі элементтері болып табылады. Олар арқылы қолданбалы программаның қолданушы интерфейсін құруға көмек береді. Интерфейс бөлімі interfase сөзінен басталады. Интерфейс (interface) бөлiмi interface кiлттiк сөзiмен басталады да, оған келесi бөлiмдер енгiзiледi: uses – Турбо Паскальда пайдаланатын бөлiм сияқты, оған стандартты модуль атаулары жазылады, бөлiмге пайдаланушы дайындаған модуль атауын кiрiстiрiп қою да мұмкiн. Одан әрi, Delphi дайындаған форма типi сипатталады (онда өрiстер, қасиеттер, компоненттер сипатталып, олардан соң модульде жазылатын процедуралар мен функциялар (программа элементтерi) жарияланады, т.б.).
Delphi -дің алтыншы нұсқасы 2001 жылы мамырда шығарылды. 5, 6 нұсқалардың бір-бірінен айырмашылығы жоқ деуге болады, екеуі де Windows 32 операциялық жүйесінің негізінде дайындалған. Тек Delphi 6, оған қоса, 1991 жылы жарық көрген, Салыстырмалы арзан, Linex операциялық жүйесінің негізінде де жұмыс істей алады. (Linех жүйесі UNIX операциялық жүйесіне шамалас, мүмкіндігі Windows32 жүйесінің мүмкіндігінен кем емес.) Delphi 6 - да интернет үшін қосымшаларды дайындау мүмкіндігі кеңейтілген және берілгендер қорымен жұмыс істеуде біраз артықшылықтар бар. Delphi -дің 7-версиясы 2004 жылы шықты. Қәзіргі уақытта Delphi-дің 8-версиясы шығуда.
Delphi – бұл ең алдымен қосымшаларды құру және оларды қолдау үшін қолданылатын, әрбір дербес компьютср мен серверге арналған бағдарламалау ортасы. Delphi ортасы әлі күнге дейін Windows үшін ең күшті объектті - бағдарлы және визуалды бағдарламалау тілдерінің бірі болып келеді. Алайда ол тек Windows үшін емес, қазіргі таңда Linux, ал болашақта Net үшін де ең күшті бағдарламалау ортасы болады.
3.5-сурет. Медиаойнатқыш бағдарламасы
Бағдарлама әр түрлі кодекті оқиды. Олар видео кодеки: DivX, XviD, Theora, WMV, MPEG-1, MPEG-2, MPEG4, VP3, VP5, VP6, VP8, H.263(+), H.264(AVC1)MSVIDC, MS MPEG4 V1/2/3, FFV1, VCR1, FLV1. Аудио кодектер: DTS, LPCM, MP2, MP3, MP4,AAC, WMA, ALAC, AMR, QDM2, EVRC, RealAudio, etc (3.5-сурет).
3.2 Бағдарламаны орындау.
Енді қосымшаны орындауға кірісейік. Бұл әрекетті саймандар тақтасынан батырмасын, мәзір қатарындағы Выполнить әмірін немесе F9 басу арқылы жүзеге асыруға болады. Алдымен компиляция жүреді, яғни процессор бастапқы бағдарламаны машина тіліне аударады. Сонан соң бағдарлама орындалуға кіріседі. /Егер бағдарламаның жазылуында синтаксистік қате болса, онда қате туралы хабар шығады/. Нәтижесінде ЕХЕ файл жасалады. Ары қарай, қатесіз болған жағдайда бұл файл орындалуға жіберіледі. Бағдарлама орындалуы кезінде Delphi-дегі барлық терезелердің орнында тек бір терезе – кодты өңдеу терезесі қалады.
Бұл терезеде (3.6-сурет) жобаның жалпы құрылымы көрсетіледі. Маус көрсеткішімен «+» таңбасына басып, тізімді ашуға болады. Мұнда жоба туралы жалпы ақпарат, жобаның барлық файлдары мен сыртқы модульдері жайлы ақпарат болады. Project.exe1 бөлімін ерекшелеп, жанама мәзірді шақырады. Онда жобаны сақтауға, атын өзгертуге, бастапқы файлды қарауға, жоба элементін жоюға немесе қосуға болады.
3.6-сурет. Жоба менеджері
Терезесі форма конструкторының терезесі болып бұл терезеге негізгі конпоненттер орналасады.
Бұл терезе объекттер инспекторы болып, мұнда объекттің негізгі параметрлері енгізіледі. Уақиғалар тізімі жазылады. Мұны View/obgect inspector немесе F1клавиші арқылы экранға шығамыз . Obgect inspector терезесі екі жапсырмада тұрады.
Propertits ( қасиет )
Events (жағдай)
Терезесі кодтар редакторының терезесі болып табылады. Бұл терезеде формаға қойылған компоненттердің тізімі, компоненттердің уақиғалар тізімі және сол уақиға сәйкес командалар жазылады.
Бір проектімен жұмыс қажеттілігіне қарай экранда басқа да терезелер тұруы мүмкін. Жұмыс жасау барысында негізгі терезеден басқа терезелерді алып тастауға, орын ауыстыруға болады. Көп терезелі болғанмен Delphi-де тек қана бір уақытта жасауға болады.
Delphi-де құрылғының қосымша проекті түрінде жиналған бірнеше элементтерден тұрады. Олар:
Проект коды (DPR кеңейтілген мен берген формада сақталады)
Форма сипаттамасы (DFM)
Форма модулі (PAS)
Модулдер (PAS)
Объектілер параметрі (ОРТ)
Ресурстар сипаттамасы
Копилтильда таңбасымен өзгеріс енгізеді. Ең қарапайым проектінің өзі көп формадан тұрады. Сондықтан кез-келген проект құру барысында оның барлық элементін сақтайтын каталог ашқан дұрыс.
Проекті аты проекті файлының атымен сәйкес келеді және дискіге сақталу барысында да ресурстар файлымен проектілер параметрлері файлы да осы атпен аталады. Проект файлының атын өзгерткенде автоматты түрде осы файл аттары өзгереді. Проектіні құру проект файлын компиляциялау барысында орындалады және қосымшаның ехе файл проект атымен аталады.
Query компоненті алыстатылған SQL – серверлерге болмаса жергілікті мәліметтер қорына SQL-сұранысын құру және орындау үшін пайдаланылады.
DBGrid компоненті мәліметтерді жол немесе баған ретінде көрсететін, белгіленген мәліметтерге кестесін туғызу үшін пайдаланылады. Компонент визуальды.
DataSource компоненті - бұл компонент Table немесе Query компоненттері секілді мәліметтер қорымен байланыстыру үшін пайдаланылады.
MainMenu компоненті - бұл компонент формаға негізгі меню құру үшін қолданылады. Басты қасиеті Items арқылы менюге керекті сөздер жазылады. Я болмаса MainMenu компоненттінің үстінен 2 рет шерту арқылы жазуға болады. ShortCut қасиеті клавиатурадан басқаруға мүмкіндік береді.
Panel компоненті - бұл компонент кең ауқымда қолданылады. Бұл компонент бір-бірімен байланысты бірнеше компоненттерді біріктіріп, бір жерде орналастыруға ыңғайлы. Panel компонентіндегі жазуды Caption қасиеті арқылы өзгертуге болады. Bevellnner, BevelOuter, bevelWidth, BorderStyle, BorderWidth қасиеттері арқылы компоненттің жиектерін көркемдеуге болады.
Button компоненті - бұл компонент ең көп қолданылатын компоненттер қатарына жатады. Caption басты қасиеті болып табылады. Басты оқиғасы болып OnClick болып табылады. Осы оқиғаға батырманы басқан кездегі орындалатын операторлар жазылады.
ComboBox компоненті - ListBox және Edit компоненттерінің функциясын біріктіреді. Пайдаланушы текстті енгізуге және тізімнен таңдап алуына болады.
Edit компоненті бір жолды текст енгізу үшін немесе көрсету үшін қолданылады. Тексті енгізіп шығаратын қасиеті Text. BorderStyle қасиеті арқылы компоненттің түрін көркейтуге болады.AutoSelect қасиеті барлық текст автоматты түрде боялатынын анықтайды. SelLength, SelStart және SelText қасиеттері боялған тексттің өзін анықтайды. MaxLength қасиеті енгізілетін тексттің максимальды ұзындығын анықтайды.
Label компоненті формада әртүрлі жазуларды немесе белгілерді көру үшін компоненті қолданылады. Бұл компоненттегі тізімнен пайдаланушы тек бір ғана жолды таңдай алады. Басты қасиеті Items.
ExcelApplication компоненті - бұл компонент Microsoft Excel программасын шақыру үшін қолданылады.
WebBrowser компоненті - бұл компонент htm кеңеймесінде сақталған құжаттарды көрсету үшін арналған.
PopupMenu- жылжымалы менюді құру үшін қолданылады.Бұл тип тышқанның сол жақ батырмасын басқанда пайда болады.
Label- экранда текстің бейнеленуі үшін қолданылады. Егер объектілер инспекторында font қасиетінде екі рет сырт еткізсе, онда таңбаның түсін және шрифтін өзгертуге болады.
Edit – енгізуге арналған Windows-тың стандартты элементі. Ол текстің қысқаша фрагментін бейнелеу үшін қолданылады және қолданушыға программанының орындалу кезінде текстті енгізуге мүмкіндік береді.
SpeedButton – “шапшаң” командалық батырмалары бар басқару панельдерін формировать ету кезінде қолданылады.
ComboBox – тізімі бар жазба компоненті. Бұл компонент жалғасқан қосымша өрісі бар тізім вариантын береді. Онда тізімнің таңдалған элементі көрсетіледі.
Toolbar – бұл панель “шапшаң” командалық батырмаларды басқару үшін қолданылады. Инструменттер панелін құрғаннан кейін автоматты түрде ол форманың жоғарғы жағында орналасады. Олар Delphi компоненттер палитрасында орналаспаған. Олар тек ToolBar компонентімен қолданылу үшін арнайы үйлестірілген және панельге оның контекстік менюінде NewButton пунктін тандау арқылы орналастырылады. мұндай батырмалар массиві Buttons қасиетінде сақталады. Олардың ағымдағы саны ButtonCount қасиетінің мәнімен анықталады.
Енді бағдарламаны түрлендіріп көрейік, алдымен терезе тақырыбын. Алғаш Delphi жүйесіне кіргеннен кейін, терезе тақырыбы форма тақырыбына сәйкес келеді. Тақырыпты өзгерту үшін Объектілер инспекторы терезесіне бару қажет. Form1 бағдарламасының терезесін жабыңыз. Объектілер инспекторы терезесінің Caption жолын тышқанмен белгілеңіз. Осы жолдың оң жақ бағаны мәтінмен ерекшеленеді және ерекшеленгеннің оң жағында жыпылықтаған курсор болады. Пернетақтаны кириллицаға ауыстырып, «бағдарлама» деп жазыңыз, одан кейін Ғ9-ды басыңыз. Бағдарламаның бұл орындалуы – тақырыбы «бағдарлама» деп аталатын терезе құру. Дәл осылай формалардың кез келген қасиетін өзгертуге болады.
Формаға жаңа компонент орналастыру үшін алдымен орналасатын компонентті таңдау қажет, мысалы Standard бетінің Button батырмасын орналастыру үшiн компоненттер жинағындағы Standard белгiсiн сырт еткiзiп, бетті екпiндi күйге келтiру керек. Button батырмасының кескiнiн ажырату үшiн тышқанды баспай тұрып бетте орналасқан белгiлердiң үстiнен жылжытып көрген сәтте компоненттердің аты шығып тұрады. Қажеттi компонентті таңдап, курсорды форма аймағының кез-келген жерiне апарып, тышқанның сол жақ батырмасын жібермей басып тұрып курсорды жылжытып, қажетті мөлшерде тышқан батырмасын босатамыз. Сол кезде форма бетiнде Button1 элементi пайда болады.
Формада орналасқан әр компоненттер өзiнiң мекен-жайымен, мөлшерiмен, түсiмен т.с.с. анықталады. Компоненттің формадағы орнын, мөлшерiн форма терезесiнде бiрден өзгертуге болады, ол үшiн компонентті
тышқанның сол жақ батырмасымен белгiлеу керек (кiшiгiрiм төрт бұрыштылар болады).
Ендi белгiленген компонентті тышқанның сол жақ батырмасымен басып тұрып, форма аймағының кез-келген жерiне жылжытуға болады. Мөлшерiн өзгерту үшiн тышқанды элементтi қоршап тұрған кез-келген төртбұрышқа орналастырсаңыз, пайда болған қос бағытты тiк сызықты тышқанның сол жақ батырмасын басып тұрып жылжытуға болады. Компонент жою үшiн оны белгiлеп, Delete пернесiн басса жеткiлiктi.
Жаңа компоненттің стандартты аты Button1, батырмадағы жазудың да аты осындай болады. Объектілер инспекторы терезесіндегі Caption жолының
көмегімен бұл жазуды оңай өзгертуге болады, «Есептеу» деп енгіземіз. Бұл
енгізілген жазу формадағы компоненттен көрінеді (3.7-сурет).
3.7-сурет. Формаға Button батырмасын орналастыру
Енді жазудың түсі мен қаріпін өзгертейік. Ол үшін объектілер инспекторы терезесіндегі Font қасиетін тышқанмен белгілейміз, батырманың көмегімен жолдың оң жақ бөлігінен қаріпті түзететін сұхбат терезесі ашылады.
Размер (Өлшемі) тізімінен қаріптің өлшемін 24, Цвет (Түс) тізімінен
қажетті түсті таңдаймыз. OK батырмасымен терезені жабамыз.
OnClick оқиғасын өңдеуші. Тышқанның сол жақ батырмасын басқанда
жұмыс істеп тұрған бағдарламада OnClick оқиғасы пайда болады. Әзір бұл
оқиға бағдарламамен ешқандай өңделмейді, сондықтан батырманы басу
ешқандай нәтиже бермейді. Батырма басылғанда жауап беруді жүзеге асыру
үшін Object Pascal тілінде бағдарлама фрагментін жазу қажет, ол оқиғаны
өңдеуші деп аталады. Бұл фрагментте программист батырма басылғанда
бағдарламаның не істейтінін көрсететін мәтіндік жолдар тізбегі жазылады.
Фрагмент Object Pascal-дің арнайы қосалқы бағдарламасы – процедура түрінде өрнектеледі.
Delphi OnClick оқиғасын өңдеу процедурасына дайындықты өз бетімен жасау үшін компонентті тышқанмен жылдам екі рет белгілеу қажет. Нәтижесінде Код терезесінде төмендегідей мәтін фрагменті болады:
Procedure TForm1.Button1Click (Sender:Tobject);
Begin
End;
Мұндағы, Procedure сөзі компиляторға қосалқы бағдарлама процедураның басы жөнінде хабарлайды. Delphi ортасында сондай-ақ, қосалқы бағдарлама – функция пайдаланылуы мүмкін, бұл жағдайда Function сөзі пайдаланылады. Одан кейін: TForm1.Button1Click процедураның аты жазылған. Атау құрама сөзден тұрады: TForm1 – класс атауы; Button1Click процедураның атауы.
Delphi ортасында класс деп өзіне ұқсас көшірме құрудың үлгісі қызметін атқаратын, аяқталған бағдарлама фрагментін айтады. Программист класс құрғаннан кейін оны бірнеше бағдарламаға немесе бір бағдарламаның бірнеше жеріне қоюға болады. Delphi-дің құрамына Borland коорпорациясының программистері құрған стандартты кластар деп аталатын бірнеше жүз кластар кіреді. Стандартты кластар жиынтығы осы бағдарламалау жүйесінің қуатты мүмкіндіктерін анықтайды. Әрбір компонент белгілі бір класқа жатады, ал формаға қойылатын компоненттердің барлық нақты көшірмелері сандық индексі бар класс атауын алады.
Пайдаланылып отырған Delphi ортасында кластардың барлық атауларын Т әрпінен бастау келісілген. Сөйтіп, Tform атауы Tform стандартты класс үлгісі бойынша құрылған кластың атын білдіреді. Код терезесіндегі мәтіннің басына назар аударсаңыздар, төмендегідей жолдар көрінеді:
TForm1=class(form) жолы Tform стандартты класынан туған (үлгі
бойынша құрылған) Tform1 жаңа класын анықтайды. Ал, Form1:TForm1 жолы осы кластың Form1 атты көшірмесін құрады. Стандартты TForm класы бос Windows терезесін сипаттайды, сонымен бірге Tform1- белгі және батырма компоненттері қойылған терезені сипаттайды. Бұл компоненттерді сипаттайтын жолдар:
Button1: TButton;
Label1: TLabel;
Мұндағы, Button1 компоненті TButton стандартты класының экземпляры; ал Label1 компоненті TLabel стандартты класының экземпляры.
TForm1.Button1 Click процедура атауынан кейін дөңгелек жақшада параметрді шақыру сипатталған:
Sender: Tobject
«Sender» атты параметр Tobject класына жатады. Sender параметрі Delphi ортасына барлық жағдай үшін қойылған: оның көмегімен Button1Click қосалқы бағдарламасы OnClick оқиғасы қандай компонент құрғанын анықтап береді. Жол толығымен Procedure TForm1.Button1 Click (Sender: Tobject); процедураның тақырыбы деп аталады. Object Pascal тілінде «;» белгісі тілдің сөйлемінің аяқталғандығын компиляторға хабарлайды.
Бағдарлама мәтіні жеке сөйлемдерден құралады. Әрбір сөйлемнің соңына нүктелі үтір қойылады. Төмендегі үш жол процедура денесін анықтайды:
Begin
//процедура денесі жазылады
End;
Begin сөзі компиляторға процедураның жұмыс алгоритмін сипаттайтын сөйлемдер тізбегінің бастамасы екені туралы белгі береді, ал End сөзі осы тізбектің соңын білдіреді. Біздің жағдайда процедура денесінде ешқандай сипаттама жоқ. Delphi процедура жазуға дайындықты құрып берді. Программист процедура денесін қажетті сөздермен толтырады. Button1 батырмасын әрбір басқан сайын басқару процедура денесіне беріледі, яғни begin және end сөздерінің арасына оқиғаға жауап ретінде орындалатын бағдарлама фрагменті жазылады. Яғни, Delphi-де бағдарлама құру процесі екі кезеңге бөлінеді: форма құру және кодтау.
3.3 Жай операторлар
Delphi тілінде қандайда да бір болмасын іс - әрекетті
бағдарламада орындау үшін операторлар қолданылады. Операторлар күрделі іс - әрекетті орындау үшін тіл компиляторына берілетін команда. Операторлар жәй және құрылымды болып бөлінеді. Жоғарыда аталған арифметикалық, логикалық және жолдық операторлардан басқа, жәй операторлар қатарына мыналар жатады:
Меншіктеу операторы;
Бос оператор;
Құрамалық оператор;
Кіру мүмкіндігі бар оператор (доступ).
Меншіктеу операторы Delphi тілінің бағдарламасында жиі қолданылады. Меншіктеу белгісі := түрде жазылады.
Бос оператор - бағдарламаның кез - келген жеріне орналаса алады, ешқандай іс - әрекет орындалмайды, бірақ кейбірде қажет болып қалады. Ол нүктелі үтір (;) түрінде жазылады. Мысалы: А:=5;. Бұл жердегі артық нүктелі үтірлер бос операторлар.
Құрамалық оператор - Begin және аnd операторлық жақшаның арасындағы, бір - бірінен нүктелі үтір (;) арқылы бөлінетін операторлар тобы. Операторлар бір - бірінің ішінде жатуы мүмкін. Delphi тілінде ішінара операторлар саны шектелмейді. Кіру мүмкіндігі оператор - құрамалық бөліктердің жекелеген обьектеріне тез және ыңғайлы кіру мүмкіндігі. With объект do іс - әрәкет.
Құрылымды операторлар – бағдарлама орындалуы барысында өзгеріп отырады.
Құрылымды операторлар қатарына:-
өту (переход) операторы ;
шарт операторы;
тандау операторы;
циклдық операторлар жатады.
Өту операторы - бағдарлама орындалуын ағымдағы орыннан басқа орынға ретсіз түрде өткізеді. Бұл оператор бағдарлама орындалуы кезегін сақтамайды. Өту белгі арқылы жүзеге асады. Белгі- бұл идентификатор немесе 0 - мен 9999 диапазоны аралығындағы бүтін сан. Бұл бағдарламада оператор алдында қос нүкте арқылы ажыратылады. Бағдарламадағы барлық белгілер алдын - ала Label сөзімен басталып, хабарлануы тиіс. Шартты оператор - Вооlеаn типінің шартының нәтижесіне байланысты, қандай да бір іс – әрәкеттің орындалуы немесе орындалмауына арналған. Егер берілген шарт ақиқат болса, басқа операторлар орындалады.
шартты оператор мына түрде: If шарт Then опeратор1 else оператор2;
қысқаша: if шарт then оператор;
Таңдау операторы - бұл бірнеше if операторын қатыстырмай- ақ, күрделі іс - әрекетті таңдау арқылы орындайтын тіл конструкциясы.
Циклдік операторлар - бағдарламада орындалуы қайта қажет болатын жағдайлар кездесіп жатады. Сондықтан барлық бағдарламалау тілдерінде, сонымен қатар Delphi тілінде де циклдер қолданылады.
Цикл - бұл бір реттен көп орындалатын, яғни қайталанатын операторлық тізбектілік.
Delphi тілінде циклдік операторлардың 3 түрі бар:
параметрлі цикл;
алдыңғы шарт;
кейінгі шарт;
Параметрлі цикл - алдын - ала қанша рет қайталанатыны белгілі болғанда қолданылады.
For параметр:= бастапқы мән tо соңғы мән do оператор; Алдын - ала берілген шарт - алдын - ала қайталануы белгісіз және кейбір шарттарға байланысты цикл денесі мүлдем орындалмауы да мүмкін.
While Шарт do оператор;
Берілген цикл Тrue мәніне сәйкес келсе орындалады, False мәніне тең болған жағдайда тоқтатылады;
Кейінгі шарт цикл денесі бір рет орындалады, бірақ қайталану саны белгілі емес.
Repeat
Оператор1;
… … …
операторN ;
Until шарт ;
Қосалқы бағдарлама бұл операторлармен тіл командаларынан және арнайы образбен жасалынған кішігірім аяқталған бағдарлама.
Бағдарлама көлемін қысқару мақсатында және негізгі бағдарламаның кез-келген жерінен шақырылатын қосалқы бағдарлама қолданылады. Қосалқы бағдарлама кәдімгі бағдарламаға ұқсас келеді, бірақ uses блогы болмайды.
Қосалқы бағдарламамен жұмыс істеу үшін, оны сипаттап алу керек. Сипаттау кезінде қосалқы бағдарламаның аты, параметрлер тізімі және қосалқы бағдарлама арқылы орындалатын іс - әрекет көрсетіледі.
Delphi модулінде бірнеше оңдаған стандартты қосалқы бағдарламалар бар, олар алдын - ала сипатталусыз-ақ шақырыла алады. Delphi тіліндегі барлық қосалқы бағдарламалар 2 топқа бөлінеді:
процедуралар;
функциялар;
Негізгі программаға өту үшін және қосалқы бағдарламадан тезірек шығу үшін Exit процедурасын шақыру жеткілікті.
Қорытынды
Delphi жүйесі деректер базасын басқару жүйесі болып табылмайды, егер сөздің тура мағынасын алатын болсақ бірақ толық МББЖ (Мәліметтер базасын басқару жүйесі) мүмкіндіктеріне ие. Ұсынылып отырған Delphi құралы жергілікті және тораптық деректер базасын құрып және оның ішінде жұмыс істеуге және кез келген деректер базасымен жұмыс істей алатын қолданба құруға мүмкіндік береді.
Осы дипломдық жұмысты жаза отырып мен delphi ортасымен таныстым. Delphi құралы үлкен бір бағдарламалық орта болып саналады. Соған қарамастан Delphi ортасында жұмыс істеу онша қиын емес және де өте қолайлы. Delphi қолданушы үшін мәліметтер базасын жасауда көп мүмкіншіліктерді береді. Сол мүмкіншіліктердің біразын біз осы дипломдық жұмысты жазу барысында қолдандық.
“Қолданушының Delphi-ді үйреніп білуі үшін қанша уақыт керек” деген сұраққа жауап: кез-келген Pascal-ді білетін бағдарламашы практика жүзінде Delphi-ді үйреніп алады.
Delphi-ді Паскаль программалау тілімен жұмыс істеген адамдардың меңгеруі көп қиындық келтірмейді. Бірақ мұнда бағдарламалау тілін үйрену үшін обьект, оқиға, қасиет түсініктерімен еркін таныстым, онда компоненттерді пайдалану жәнс түрлі командалардың жазылу түрлерін білу қажет.
Borland корпорациясы аз ғана мерзім ішінде Delphi7-нің негізгі версиялары мен бірнеше модификацияларын шығарды. Delphi 7 версиясында өте көп өзгерістер енгізілген. Программалармен қамтамасыз етудің тиімді өңдеу құралдарын қажет ету “жылдам жасау” ортасы деп аталатын бағдарламалау жүйелерінің пайда болуына алып келді. Мұндай ортаға мысал ретінде Borland Delphi жатады.
Әлемдегі миллиондаған программистер Delphi-де жұмыс жасайды және олардың көбісі Delphi-де мәліметтерді өңдеуге және сақтауға арналған бағдарламалар құрады. Күнбе-күн коммерциялық және жеке мәліметтерді санамағанда (адам аттары, мекен-жайлар, есепшоттар) визуальды интерфейс көмегімен жұмыс істеу керек болатын көптеген ақпараттар бар: дыбыс файлдары, видео көріністер, Web –парақшалары және тағы басқа. Осындай көп ақпарат арасында өзімізге керекті мәліметтерді алу үшін, оларды өңдейтін бағдарламалар қажет.
Қазіргі кезде delphi құралының мүмкіншіліктері күннен – күнге артуда. Бүгінгі күні Delphi – дің көмегімен деректер базасын интернетте де жариялауға болады.
Дипломдық жұмыстың мақсаты әр түрлі форматтағы аудио видео кодектерді оқу бағдарламасын құру. Бағдарламаның тиімділігі қарапайым қолданушының жұмыс істей алатындығы.
Жұмыстың нәтежиесі ретінде қойылған мақсаттардың орындалуын айтар едім, олар келесідей:
Медиа ойнатқыш жүйесін автоматтандыру;
Delphi бағдарламалау ортасының жүйені жасауға жарамдығын көрсету;
Дипломдық жұмысты орындау барысында берілген тапсырмаға сәйкес сұрақтар қаралып, орындалды.
Қазіргі интернет технологияларды пайдалану арқылы, қажет деген барлық ақпарат алмасу мүмкіндігімізге қол жеткізе аламыз.
Қорыта келе, медиаойнатқыш және Mp3 ойнатқыш бұл XXI ғасырдың талабы. Әрбір программист үшін Delphi құралын білген өте пайдалы, әрі тиімді екенін айта кеткен жөн.
Delphi – ортасы программист жұмысының өте жоғары тиімділігін қамтамасыз ететін орта. Бағдарламалау іскерлігін үйрену үшін нақты есептер шығарып, программасын жаза білу қажет. Обьектілі бағдарланған программалау жүйелеріндегі программалаудың негізгі ерекшелік алдымен программалау синтаксисі мен компоненттерді пайдалануды үйренуде болып табылады.
Қазіргі заман талабына сай компьютерлік саясатты өте тиімді. Өйткені қандай да болса да жұмыс орны компьютерсіз жұмыс атқара алмайды. Ал оны оқып үйрену инемен құдық қазғандай. Дербес компьютерде жұмыс істей білу бұл болашақта кез келген жұмысты орындай алу мүмкіндігін береді. Қазіргі таңда көп программалардың шығуына байланысты көп мұқияттылықты талап етеді. Бұл программистердің басты мақсаты.
Ақпараттық коммуникациялық технологиялардың қарқынмен дамып, күнделікті тұрмысқа енуіне байланысты соңғы кездері программалауға деген қызығушылықтың арта түскені белгілі. Қазіргі уақытта компьютерсіз қандай да бір жұмысты орындауды көз алдымызға елестету қиын. Бұл компьютермен жұмыс істейтін адамға қандайда бір ұмтылысты тудыруды мүмкін.
Құрудың графикалық ортасынан басқа аспектісі ол – көмекші жүйесінінің күштілігі. Delphi 7-да басқа да қазіргі программалау ортасы сияқты, объектілі бағытталған программаларға негізделген. Бағдарлама құру барысында дайын компоненттерді, олардың қасиетін, әдістерін және алдын-ала анықталған оқиғаларды пайдалану арқылы аз ғана бағдарламалау кодымен айналып өтуге болады. Программа құрушыға бұл өзінің программасының қолданушы интерфейсін құру барысында көп уақытты үнемдеуді білдіреді.
Осы дипломдық жұмыста болашақ техник-программист ретінде кез келген өз мамандығыма байланысты жобаны қолға алған кезде маған қандай жауапкершіліік жүктелетінін білем. Себебі, кіріскелі отырған жоба қандай маңызды болса да, жұмысқа сондай тиянақтылықпен кірісуге тырысам. Қазіргі кезде техника және ақпарат көздері өте қарқынды жылдамдықпен дамуда, сондықтан жаңаны тез меңгеріп, жетілдіріп отыруға тиістіміз және де бұрынғыны да ұмытпау керекпіз.
Қолданылған әдебиеттер
Абдыкеримова Э.А., Delphi ортасында бағдарламалау. Ақтау 2010.
Аманжолова С.Т. Работа с визуальными объектами. «Проектирование программных средств ЭВМ, систем и сетей» для специальности 3701. – Санкт-Петербург, 2001.
Архангельский А.Я. Язык SQL в Delphi 5. –М: Бином, 2000 –208с. (Все о Delphi).
Балапанов Е.Қ. Бөрібаев Б.Б. Дәулетқұлов А.Б. Жаңа информациялық технологиялар: информатикадан 30 сабақ. Алматы, ЖТИ, 2004.
Бобровский С. Delphi 7 Учебный курс. – СПб.: Питер,и 2002-640с.
Вальвачев А. Н., Сурков К. А., Сурков Д. А., Четырько Ю. М..Программирование на языке Delphi. Учебное пособие. — 2005.
Виштынецский Е. И., Кривошеев А. О. Вопросы применения информационных технологий в сфере образования и обучения Информационныетехнологии, 1998, №2 – с. 32-36.
Даулеткулов А.Б. Олимпиады по информатике. Алматы. ИНТ. 2004.
Информационно-поисковая система в системе управления предприятием, Сборник научных трудов, Ленинград, 2001 г.
Кандзюба С.П. Delphi 6. Базы данных приложения: Лекции и упражнения /Кандзюба С.П., Громов В.Н. -М: Диа-Софт. 2001-576с.
Кенту Марко. Delphi 5 для профессианалов. СПб.: Питер, 2001-944с:ил-/в пер.
Компьютерная технология обучения:словарь-справочник/Под редакцией В. Ю. Гриценко, А. М. Довгялло, А. Я. Савельева-К.: «Накова думка», 1992.
Культин Н. Delphi6. Программирование на Object Pascal. «БХВ-Петербург», – Санкт-Петербург, 2001.
Культин Н.Б. Delphі в задачах и примерах. – СПб.: БХВ-Петербург, 2006. – 288 с.
Нил Дж. Рубенкинг. Язык программирования Delphi для «чайников». Введение в Borland Delphi 2006 = Delphi for Dummies. — М.:Диалектика, 2007. — 336 с. — ISBN 0-7645-0179-8.
Нурбекова Ж.К. Практикум решения задач на Delphі 5.0 – Павлодар, 2001. – 105 с.
Нұрғалиева Г. Қ. Электрондық оқулықтар – мұғалім мен оқушы арасындағы әрекетттестікті гуманизациялау құралы// «Информатика негіздері» республикалық журналы, №2, 2002.- 2-3 б.
Прищепов М.А., Севернева Е.В., Шакирин А.И. Програмирование на языках Basic, Pascal и Object Pascal в среде Delphi. – Минск, 2006.
Фаронов В. Delphi 7: учебный курс. - СПб.: «Питер», 2006. – 512 с.
Фаронов В.В. DELPHI. Программирование на языке высокого уровня. - СПб.:Питер, 2004. – 640 с.
Хавьер Пашеку. Программирование в Borland Delphi 2006 для профессионалов = Delphi for .NET Developer’s Guide. — М.: Вильямс, 2006. — 944 с.
Халықова К.З., Тұрғанбаева А.Р., Бостанов Б.Ғ. Программалау тілдерін оқыту. Delphi ортасы. Оқу құралы.- Алматы, 2005. – 217 б.
Шайқұлова А.Ә., Аманжолова С.Т., Асқарова Н.Т. Бағдарламалық жасақтаманың қазіргі заманғы жабдықтары. Астана 2007 «Фолиант» баспасы.
Шураков В.В.. “Информационно-поисковая система для статической обработки данных”, 2000.
Юркин А.Г. Задачник по программированию. – СПб.: Питер, 2002.
Қосымша
Бағдарлама листингі.
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, ComCtrls, StdCtrls, Buttons,
DirectShow9, ActiveX, sSkinManager, Vcl.ImgList;
type
TPlayerMode = (Stop, Play, Paused);
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Panel1: TPanel;
GroupBox1: TGroupBox;
Panel2: TPanel;
ProgressBar1: TProgressBar;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Timer1: TTimer;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Splitter1: TSplitter;
Timer2: TTimer;
Label2: TLabel;
Label3: TLabel;
ListBox1: TListBox;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
ListBox2: TListBox;
TrackBar1: TTrackBar;
Label4: TLabel;
CheckBox1: TCheckBox;
Label5: TLabel;
SpeedButton6: TSpeedButton;
Panel4: TPanel;
N1: TMenuItem;
N3: TMenuItem;
sSkinManager1: TsSkinManager;
MainMenu1: TMainMenu;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
I1: TMenuItem;
ImageList1: TImageList;
N11: TMenuItem;
procedure Initializ;
procedure Player;
procedure AddPlayList;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ProgressBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Panel1Resize(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Timer2Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ListBox2DblClick(Sender: TObject);
procedure ListBox2MouseActivate(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y, HitTest: Integer;
var MouseActivate: TMouseActivate);
procedure ListBox2Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
Procedure WMKeyDown(Var Msg:TWMKeyDown); Message WM_KeyDown;
public
{ Public declarations }
end;
var
Form1: TForm1;
hr: HRESULT = 1;
pCurrent, pDuration: Double;
Mode: TPlayerMode;
Rate: Double;
FullScreen: boolean = false;
i: integer = 0;
FileName: string;
xn, yn : integer;
mouse: tmouse;
pGraphBuilder : IGraphBuilder = nil;
pMediaControl : IMediaControl = nil;
pMediaEvent : IMediaEvent = nil;
pVideoWindow : IVideoWindow = nil;
pMediaPosition : IMediaPosition = nil;
pBasicAudio : IBasicAudio = nil;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm1.Initializ;
begin
if Assigned(pMediaPosition) then pMediaPosition := nil;
if Assigned(pBasicAudio) then pBasicAudio := nil;
if Assigned(pVideoWindow) then pVideoWindow := nil;
if Assigned(pMediaEvent) then pMediaEvent := nil;
if Assigned(pMediaControl) then pMediaControl := nil;
if Assigned(pGraphBuilder) then pGraphBuilder := nil;
hr := CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraphBuilder);
if hr<>0 then begin
ShowMessage('Графаны сақтау мүмкін емес! ');
exit;
end;
hr := pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
if hr<>0 then begin
ShowMessage('IMediaControl');
exit;
end;
hr := pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
if hr<>0 then begin
ShowMessage('Интерфейс оқиғасы');
exit;
end;
hr := pGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
if hr<>0 then begin
ShowMessage(' IVideoWindow');
exit;
end;
//получаем интерфейс управления звуком
hr := pGraphBuilder.QueryInterface(IBasicAudio, pBasicAudio);
if hr<>0 then begin
ShowMessage('Аудио интерфейс қабылдамайды');
exit;
end;
hr := pGraphBuilder.QueryInterface(IID_IMediaPosition, pMediaPosition);
if hr<>0 then begin
ShowMessage('Бағдарлама жабылады');
exit;
end;
hr := pGraphBuilder.RenderFile(StringToOleStr(PChar(filename)), '');
if hr<>0 then begin
ShowMessage('Файл бұл форматты оқымайды!');
exit;
end;
pVideoWindow.Put_Owner(Panel1.Handle); pVideoWindow.Put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
pVideoWindow.put_MessageDrain(Panel1.Handle);
pVideoWindow.SetWindowPosition(0,0,Panel1.ClientRect.Right,Panel1.ClientRect.Bottom);
end;
procedure TForm1.Player;
begin
if mode<>paused then begin
if not FileExists(FileName) then begin ShowMessage('Файл не существует');exit;end;
Initializ;
end;
pMediaControl.Run;
pMediaPosition.get_Rate(Rate);
Form1.Caption:=ExtractFileName(FileName);
mode:=play;
end;
Procedure TForm1.WMKeyDown(Var Msg:TWMKeyDown);
begin
if Msg.CharCode=VK_ESCAPE then
begin
pVideoWindow.HideCursor(False);
Form1.ListBox2.Visible:=True;
Form1.Splitter1.Visible:=True;
Form1.CheckBox1.Checked:=True;
Form1.GroupBox1.Visible:=True;
Form1.BorderStyle:=bsSizeable;
Form1.windowState:= wsNormal;
Form1.FormStyle:=fsNormal;
pVideoWindow.SetWindowPosition(0,0,Panel1.ClientRect.Right,Panel1.ClientRect.Bottom);
FullScreen:=False;
end;
inherited;
end;
procedure TForm1.AddPlayList;
var
j: Integer;
begin
OpenDialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
OpenDialog1.Title := 'Файлдың ашылуы';
//фильтр для файлов
OpenDialog1.Filter := 'Файл мультимедиасы |*.mp3;*.wma;*.wav;*.vob;*.avi;*.mpg;*.mp4;*.mov;*.mpeg;*.flv;*.wmv;*.qt; |Барлық файлдар|*.*';
if listbox2.Count<>0 then i:=ListBox2.ItemIndex else i:=0;
if not OpenDialog1.Execute then exit;
Begin
For j:=0 to OpenDialog1.Files.Count -1 do
Begin
ListBox2.Items.Add(ExtractFileName(OpenDialog1.Files.Strings[j]));
ListBox1.Items.Add(OpenDialog1.Files.Strings[j]);
End;
End;
Filename:=ListBox1.Items.Strings[i];
//Выделяем эту запись в PlayList
ListBox1.ItemIndex:=i;
ListBox2.ItemIndex:=i;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if Form1.CheckBox1.Checked=True then
begin
Form1.ListBox2.Visible:=True;
Form1.Splitter1.Visible:=True;
end
else begin
Form1.ListBox2.Visible:=False;
Form1.Splitter1.Visible:=False;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CoInitialize(nil);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CoUninitialize;
end;
procedure TForm1.ListBox2Click(Sender: TObject);
begin
i:=ListBox2.Itemindex;
ListBox1.Itemindex:=i;
end;
procedure TForm1.ListBox2DblClick(Sender: TObject);
begin
i:=ListBox2.Itemindex;
ListBox1.Itemindex:=i;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
player;
end;
procedure TForm1.ListBox2MouseActivate(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y, HitTest: Integer;
var MouseActivate: TMouseActivate);
var
point : TPoint;
begin
if (Button = mbRight) then
begin
point.X := X;
point.Y := Y;
i := ListBox2.ItemAtPos(point, true);
ListBox1.ItemIndex:=i;
ListBox2.ItemIndex:=i;
if i >= 0 then
begin
PopupMenu1.Popup(ListBox2.ClientOrigin.X + X, ListBox2.ClientOrigin.Y + Y);
end;
end;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox2.Clear;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
ListBox1.DeleteSelected;
ListBox2.DeleteSelected;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
AddPlayList;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Panel1DblClick(Sender: TObject);
var
Rct: TRect;
begin
if hr <> 0 then exit;
pVideoWindow.HideCursor(False);
if FullScreen=False then begin
Form1.ListBox2.Visible:=False;
Form1.Splitter1.Visible:=false;
Form1.GroupBox1.Visible:=false;
//устанавливаем параметры формы
Form1.BorderStyle:=bsNone; //без бордюра
Form1.FormStyle :=fsstayOnTop; //поверх окон
Form1.windowState:= wsMaximized;
pVideoWindow.SetWindowPosition(0,0,screen.Width,screen.Height);
FullScreen:=True;
end
else begin
if form1.CheckBox1.Checked=true then Form1.ListBox2.Visible:=True;
Form1.GroupBox1.Visible:=True;
Form1.Splitter1.Visible:=True;
Form1.BorderStyle:=bsSizeable;
Form1.windowState:= wsNormal;
Form1.FormStyle:=fsNormal;
pVideoWindow.SetWindowPosition(0,0,Panel1.ClientRect.Right,Panel1.ClientRect.Bottom);
FullScreen:=False;
end;
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FullScreen<>True then Exit;
if (mouse.CursorPos.X
begin
Form1.ListBox2.Visible:=False;
Form1.Splitter1.Visible:=False;
end;
if (mouse.CursorPos.X>=panel1.Width-ListBox2.Width) and (ListBox2.Visible=False) then
begin
if form1.CheckBox1.Checked=true then
begin
Form1.ListBox2.Visible:=True;
Form1.Splitter1.Visible:=True;
end;
end;
if (mouse.CursorPos.Y
begin
groupbox1.Visible:=false;
end;
if (mouse.CursorPos.Y>=panel1.Height-groupbox1.Height) and (groupbox1.Visible=False) then
begin
groupbox1.Visible:=True;
end;
end;
procedure TForm1.Panel1Resize(Sender: TObject);
begin
if mode=play then
begin
pVideoWindow.SetWindowPosition(0,0,Panel1.ClientRect.Right,Panel1.ClientRect.Bottom);
end;
end;
ProgressBar
procedure TForm1.ProgressBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
p: real;
begin
if hr = 0 then begin
if ssleft in shift then
begin
p:=ProgressBar1.Max/ProgressBar1.Width;
ProgressBar1.Position:=round(x*p);
pMediaControl.Stop;
pMediaPosition.put_CurrentPosition(ProgressBar1.Position);
pMediaControl.Run;
mode:=play;
end;
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if mode=play then begin pMediaPosition.put_Rate(Rate);exit;end ;
Player;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if mode=play then
begin
pMediaControl.Pause;
mode:=paused;
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if mode=play then
begin
pMediaControl.Stop;
mode:=Stop;
pMediaPosition.put_CurrentPosition(0);
end;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
var pdRate: Double;
begin
if mode=play then
begin
pMediaPosition.get_Rate(pdRate);
pMediaPosition.put_Rate(pdRate/2);
end;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
var pdRate: Double;
begin
if mode=play then
begin
pMediaPosition.get_Rate(pdRate);
pMediaPosition.put_Rate(pdRate*2);
end;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
AddPlayList;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
TrackLen, TrackPos: Double;
ValPos: Double;
ValLen: Double;
plVolume:Longint;
db : integer;
begin
Panel4.Caption:=TimeToStr(SysUtils.Time);
if hr <> 0 then Exit;
pMediaPosition.get_Duration(pDuration);
ProgressBar1.Max:=round(pDuration);
pMediaPosition.get_CurrentPosition(pCurrent);
ProgressBar1.Position:=round(pCurrent);
if pCurrent=pDuration then
begin
if i
begin
inc(i);
Filename:=ListBox1.Items.Strings[i];
ListBox1.ItemIndex:=i;
ListBox2.ItemIndex:=i;
mode:=stop;
player;
end
else exit;
end;
//pBasicAudio.put_Volume(TrackBar1.Position*100-10000);
plVolume:= (65535 * TrackBar1.Position) div 100;
db:= trunc(33.22 * 100 * ln((plVolume+1e-6)/65535)/ln(10));
pBasicAudio.put_Volume(db);
TrackLen:=pDuration;
TrackPos:=pCurrent;
ValPos:=TrackPos / (24 * 3600);
ValLen:=TrackLen / (24 * 3600);
Label2.Caption:=FormatDateTime('hh:mm:ss',ValPos);
Label3.Caption:=FormatDateTime('hh:mm:ss',ValLen);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if FullScreen<>True then Exit;
if ((xn-5)<=mouse.CursorPos.X) and ((yn-5)<=mouse.CursorPos.Y) and ((xn+5)>=mouse.CursorPos.X) and ((yn+5)>=mouse.CursorPos.Y)then
pVideoWindow.HideCursor(true) else pVideoWindow.HideCursor(False);
xn:=mouse.CursorPos.X;
yn:=mouse.CursorPos.Y;
end;
end.