Delphi

4,775 views

Published on

Published in: Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,775
On SlideShare
0
From Embeds
0
Number of Embeds
469
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Delphi

  1. 1. Windows үйлдлийн системийн ерөнхий зохион байгуулалтын талаартовчхонWindows-н өмнөх хувилбарууд MS-DOS үйлдлийн системтэй сайн зохицонажилладаг боловч үйлдлийн систем гэсэн утгандаа бүрэн хүрч чадахгүй байсанбол өнөөгийн Windows95 өөрөө 1 цогц үйлдлийн системийг илэрхийлж чадахболжээ.Windows95 үйлдлийн систем нь ерөнхийдөө 3 дэд системд хуваагддаг.1. Win KERNEL2. Win GDI3. Win USERWindows95 нь 16 болон 32 битийн программуудыг ажиллуулахдаа системийнвиртуаль машин болон дээрхи 3 дэд системийн тусламжтайгаар зохионбайгуулдаг. Системийн виртуаль машин гэдэг нь Windows-н бүх ажлыг дэмжижбайдаг Windows95-н бүрэлдхүүнд ордог үйлдлийн орчин юм. Мөн дээрхи 3 дэдсистемийн ажлыг дэмжиж байдаг.32 битийн win гэдэг нь санах ойн 32 битийн моделийг ашиглаж байдаг windows-ншинэ хэрэглээ юм. Харин 16 битийн win гэдэг нь бидний урьд өмнө хэрэглэжбайсан windows-н хуучин хувилбарууд юм. Тэдгээр нь санах ойн сегментийнхаяглалтийг буюу чухамдаа 80286 процессорын санах ойн моделийг ашигладаг.Тэдгээр нь Windows 3.x –нх шиг ажиллахдаа Windows95 нх шиг нэгдмэл нэгорон зайг хуваан эзэмшдэг бөгөөд олон бодлогын зарчимтай зохицодоггүй.Windows95-н хэрэглээний программийн төвшинд Windows 3.x –н API бүрэнтохирч ажилладаг.Win32 API нь Microsoft –н WinNT, Win32S, Win3.1-н өргөтгөл win32 битийнинтерфейс юм. Windows95 үйлдлийн систем нь олон бодлогын аргад үндэслэндээрх application-уудыг жолооддог. Бүрхүүл гэдэг нь хэрэглэгчийг системтэйхарилцах үйлдлийг хангаж байдаг 32 битийн Windows application юм.Windows95-н бүрхүүл нь windows3.x-н программ менежер, файл менежерзэргийг нэгтгэсэн application юм.KERNELKERNEL нь windows-н доод түвшиний динамик санах ойн функцүүдээр хангажөгч байдаг үйлдлийн системийн цөм юм. Энэ нь 16 ба 32 битийн windows-нүйлдлүүд тохирохүйлчилгээг хангадаг.GDIGDI нь graphic device interface гэсэн товчилсон үг. Энэ нь Windows95-н графикболомж болон дэлгэцэнд харуулах өнгө, хэлбэр дүрс, resolution-г хангаж байдаг.Win32 –т байдаг бүх шинэ боломжуудыг агуулна.USERUSER нь дэлгэцийн диспетчер юм. Windows-н интерфейсийг үүсгэх, удирдахфункцүүдийн цргц юм. Жишээ нь Хэрэглэгч хэд хэдэн MS-DOS –н Prompt гарганашиглаж болно.Хэрэглэгч арай илүү виртуалчилах боломжийг хангадаг хэд хэдэн давуу тал гарчирлээ.Системийн виртуаль машинWindows-н API функцийн төвшинДээр харлуулсан орон зайг хамтарч эзэмшинэ. Энэдээс Windows95 нь 16 битийнпрограммуудад тусад нь орон зай гарган өгч орчинийг нь бүрдүүлж өгдөг ньхарагдаж байна.Windows32 bitWindows32 bit16 bit16 bitБүрхүүл
  2. 2. Windows-н дэд системWin KERNELKERNELWin USER Win GDIФайл удирдах дэд системСүлжээ удирдах дэд системҮйлдлийн системийн үйлчилгээВиртуал машин удирдах дэдсистемХөтлөгч хэрэгслүүдБүрхүүлЭнэ нь хэд хэдэн системийн удирдлагыг хэрэглэх нөөцүүдийн боломжуудаархангах программ юм. Windows95-үйлдлийн системийн бүрхүүл нь дэлгэцсистемийн нөөцүүдтэй харилцан ажиллахыг удирдан зохион байгуулдаг.APIХэд хэдэн зуун API функцүүд windows-н бүх системийн хийх үйлдчилгээг хангажөгдөг. Windows-н орчин бол интерфейс баазын дуудалтаар ханддаг. Үүнийг APIгэдэг.Системийн виртуаль машинWindows-н бүх application ситемийн виртуаль машины тухайн хил хязгаартүйлдлээ гүйцэтгэдэг. 16 битын application –ууд өөрийн нэгдмэл хаяглалын оронзайд ажилладаг.Энэ нь application бүрийн өөрийн орон зайн хаяглалтыг 32 битын хаяглалтаархангаж дэмжиж өгдөг.MS-DOS-н виртуаль машинWindows95 олон тооны MS-DOS-н программыг хамгаалалтын горим эсвэл 8086виртуаль үйл ажиллагаа ажиллуулж дэмжиж байдаг. MS-DOS-н виртуаль машинхэд хэдийг үүсгэж болно.Виртуаль машины диспетчерВиртуаль машины диспетчер нь үнэндээ үйлдлийн системийн зүрх юм. Энэ ньдоод түвшиний санах ойн удирдлага болон драйверуудын виртуаль зохионбайгуулалтын үйлчилгээг хянаж ажилллаж байдаг.| Windows95 –н диспетчерүүдWindows95 –н виртуаль машины диспетчер дотор хоёр диспетчер ажиллажбайдаг.Үүнд: Үндсэн диспетчер. (primary scheduler)Энэ нь thread-дын приоретитүүдийг тооцоолж хариу өгнө.Квантын диспетчер (timeslice scheduler)Энэ нь хугацааны квантуудад хувааж хэсэгчлэн ажилуулана.Үнэн хэрэгтээ квантын диспитчер аль thread-н ямар хувийг нь ямар хугацаандпроцессороор үйлчлүүлэхийг тооцоолно.Процесс 0-31 хүртэл приоритеттой байдаг ба үүнийг үндсэн диспетчер бодоодквантын диспетчер лүү гаргана. Хэрвээ процессийн хугацааны квант 100 хувьболсон бол VMStat_Background эсвэл VMStat_High_Pri_Background гэдэгтөлвийг үлдээдэг.DELPHI ДЭЭР АНХНЫ АЛХАМ ХИЙЦГЭЭЕТа мэдэж байгаа Delphi бол Borland пүүсийн Windows-ийн орчны програмыгбичдэг дээд түвшний програм юм. Delphi -ээр та Windows -ийн орчныпрограммыг урьд байгаагүйгээр хялбар бөгөөд хурдан бичих боломжтой.Win32 эсвэл Win32 graphical user interface (GUI) -ийг та нээж ажиллуулжболно. Win32 GUI -ийг ажиллуулснаар та дээд түвшний програмчлалынхэлний үнэн хүч чадлыг мэдрэх болно. Мөн та Web browsers –ийг минутийндотор үүсгэдэг шигээ form дээрх ActiveX control -оор тусгай програмуудыгүүсгэж болно. Энэ мэт олон зүйлийн давуу талууд Delphi -д байдаг баDelphi нь өөрөө кодоо үүсгэдэг тул програмын биелэлт хурдан байдаг.Танд л гэж хэлэхэд Pascal -ын программчлалыг жаахан судлах хэрэгтэй.Delphi нь Windows програмчлалын доод түвшний нарийн зүйлүүдийг нуудагба энэ нь танд чухал биш. Эцэст нь та програмист л болохыг хүсч байгаа
  3. 3. бол энэ нь бүгдийг судлах хэрэгтэй. Delphi нь танд урьд байгаагүй хөгжилтаашаалыг авчрах болно. Ингээд ханцуйгаа шамлан бүх ажилдаа орогтун.Delphi сэтгэлийн таашаалыг авчрах агуу программ юм.Delphi IDE -ийг өнгөц харъяЭнэ хэсэг нь Delphi integrated development environment (IDE) -ийг агуулна.Windows програмчлалыг судлах бүхэнд энэ нь хэрэгтэй юм. Та одоо Delphi-ийг эхлэх урам зоригтой байгаа гэж бодож байна. Программыг эхлүүлэхэдта хоосон form ба IDE -ийг харах болно.Delphi IDE нь 3 хэсэгт хуваагдана. Дээд хэсгийг нь үндсэн цонх гэдэг. Энэнь toolbars болон Component palette -ийг агуулдаг. Delphi toolbars ньcompiling project, хадгалах, нээх үйлдлүүдийг нэг товшилтоор гүйцэтгэхболомжийг танд олгоно.Component palette нь wide array of components агуулдаг ба түүнийг formдээр чирч тавьж болно. Component -ууд нь text labels, edit controls, listboxes, buttons ба бусад болно. . Componentууд нь бүлгүүдэд хуваагдсанбайна. Component palette -ийн дээд талын tab -ыг харав уу?Дээр нь очоод click хийвэл өөр өөр component гарч ирнэ. Form дээрээcomponent -оо байрлуулахын тулд Component palette -ийн компонентынbutton дээр click хийж component -оо харагдах хэсэгт нь очоод click хийххэрэгтэй. Яаж хэрэглэх үр дүнд юу болох бол гэж санаа зовох хэрэггүй.Эдгээр нь хормын дотор болно.Шинэ нэр томъёо: Component гэдэг бол software -ийн 2 хэсгийг агуулсанба тусгай урьдчилан тодорхойлогдсон функц үйлдлийг нь гүйцэтгэжбайдаг. Жишээ нь: text label, edit control, list box.Обьектийн инспекторҮндсэн цонхны доор дэлгэцийн зүүн талд Object Inspector байна. Энэ ньcomponent -ийн properties ба events -үүдийг өөрчлөхөд ашиглагддаг. Delphi-тэй ажиллах явцдаа үргэлж Object Inspector -ийг та хэрэглэх болно. ObjectInspector нь 2 хэсэгтэй. Properties tab ба Events. Component -ийн propertiesнь component -ийг яаж ажиллуулахыг удирдана. Жишээ нь : Color property -ийг өөрчлөхөд background color -нь өөрчлөгддөг.Шинэ нэр томъёо: property –нь component -ийн үйл ажиллагаагтодорхойлдог.Events хэсэг нь component -ын event -уудын жагсаалтуудаас бүрдэнэ.Component дотор үйлдэл хийхэд event -ийг ашигладаг. Жишээ ньcomponent дарагдахад event нь component дарагдсан байна шүү гэж тандхэлнэ.Та component -д хамаарах код бичиж болох ба тусгай үйлдлийггүйцэтгэхэд хэрэглэж болно.Шинэ нэр томъёо: event бол цонх ба хэрэглэгчтэй ажиллах component -
  4. 4. ийн харилцан ажиллагааны үр дүн юм.Delphi –ийн ажлын талбарDelphi IDE -ийн үндсэн хэсэг нь ажлын талбар юм. Ажлын талбар нь FormDesigner -ийг үүсгэнэ. Энэ нь гайхмаар юм биш Form Designer нь өөрөөform үүсгэдэг. Delphi -д form гэдэг нь программын цонхыг хэлнэ. Form ньпрограммын үндсэн цонх байж болно, dialog box эсвэл цонхны янз бүрийнхэлбэртэй байж болно.Form Designer -ийг, form -ийг үүсгэх процессийн хэсэгт component -уудыгнь байрлуулах, зөөх зэргээр ашиглаж болно. Form Designer -ийн ард CodeEditor байдаг. Программын кодыг Code Editor дээр бичдэг. Application -ийгүүсгэн ажиллах явцад Object Inspector, Form Designer, Code Editor, баComponent palette -ууд нь харилцан уялдаатай байдаг. Та Delphi IDE-ийгмэддэг боллоо одоо ямар нэг зүйлийг хийж үзье.Таны эхний програм: Hello WorldДэлгэцэнд Hello World гэж хэвлэх нь бүх програмчлалын хэлний сурахбичигт байдаг уламжлалт програм юм. Заавал ийм байх албагүй гэж бибоддог. Pascal хэлийг өмнө нь судалсан бол сайн юм. Та гайхаж магадгүйюм, Delphi танд одоогийн Windows program -ийн Hello World -д хүрэххамгийн хялбар замыг зааж өгнө.Програм бичихТа яг одоо Delphi -ийг ажиллуулж байгаа бол blank form -ийг харсан байхёстой. Form нь Form1 гэж нэрлэгдсэн байдаг. Form -ийн зүүн хэсэгт ObjectInspector form -ийн properties -үүдийг харуулна. Object Inspector -ийн title barдээр товш. Caption property нь идэвхжих ба cursor нь тэнд юу хийхийгхүлээнэ. Hello World! гэж бичин form -ийн caption -ийг өөрчил.Санамж: Properties -ийг өөрчлөх бол Delphi шууд өөрчлөлтийг нь гаргадаг.Caption -ийг өөрчлөх үед form -ийн window caption нь өөрчлөгдөж байгаагажигла.Toolbar дахь Run товчийг товш. Form нь гарахдаа caption нь Hello World!. -ийг гаргана. Энэ тохиолдолд ажиллаж байгаа программ нь бараг л blankform шиг харагдана.Програмыг өөрчлөхОдоо программаа жаахан өөрчилье. Hello World чинь байгаа бол Closebutton дээр товшин хаах хэрэгтэй. Form Designer дахин гарч ирэх ба form-ийг өөрчлөх боломжтой. Программыг илүү сайжруулахын тулд цонхны төвдтекст нэмэх хэрэгтэй. Үүнийг хийснээр form -доо text label -ийг та нэмж өгнө.1. Эхлээд Component palette -ийн Standard хэсэгт товш.2. Label button -ийг товшоод form -ийн хаа нэгтээ товш. Labelcomponent нь form -ийн дотор байна.3. Object Inspector дээр буцаад оч. Label1 -ийн properties -ууд гарчирсэн байгаа. Caption property нь бас идэвхжсэн байгаа.4. Object Inspector эсвэл Caption property -ийн titlebar дээр товштэгээд Hello World! гэж бич. Form -дээрх label нь Hello World!. гэжгаргана.5. Үүнийг хийсэн бол label -ийн text -ийн хэмжээг өөрчилж чадна.Font property дээр 2 товш. Property нэмэлт font attribute -ийгхаруулахын тулд өргөн болно.6. Font -ийн Size property -ийг 24 болгоод form -дээрээ товш. Labelшинэ хэмжээтэй болно.
  5. 5. Програмаа хаахDelphi -д жаахан дурласан бол энэ нь бүхнээс илүү таны сонирхлыг татна.Дараа нь юу хийх вэ гэвэл одоогийн прожектийг хаах хэрэгтэй. File цэснийClose All -ыг сонго. Project1 -ийн өөрчлөлтийг хадгалах бол No -ийг сонго.Таны 2 дахь программ: Hello World, II хэсэгPascal -ийг судлахаасаа өмнө Delphi хэрхэн ажиллдаг талаар мэдэххэрэгтэй. Танд Pascal –ийн олон төрөл дээр ажиллахад энэ нь хэрэг болно.Энэ хэсэг нь Delphi -ийн үнэн хүчийг хальт агуулна.Санамж: Компонентийн properties -ийг өөрчилсөн бол design-time өөрчлөлтхийсэн гэсэн үг. Харин кодоор property -ийг нь өөрчилсөн бол runtimeөөрчлөлт гэж нэрлэгддэг.Ажиллах үед нь Caption property -ийг өөрчлөхийн тулд:1. Form дээрх button –ийг 2 товш. Ингэхэд Delphi нь event handler -ийг
  6. 6. button -ийн OnClick event дээр үүсгэнэ. Үүсгэсэн код нь дараахбайдалтай байнаprocedure TForm1.Button1Click(Sender: TObject);beginend;2. Засварлагч курсор нь begin ба end гэсэн зарлагааны хоорондбайдаг ба таныг код бичихийг хүлээж байдаг.procedure TForm1.Button1Click(Sender: TObject);beginLabel1.Caption := `Hello World, Part II;end;Энэ код маш энгийн юм. Энэ нь Hello World, Part II гэсэн өгүүлбэрийгCaption property -руу шилжүүлдэг.3. Одоо toolbar -т байгаа Run товчин дээр дарж программыг ажиллуул.Программыг ажиллуулахад label -ийн caption нь Label1 гэж хэвээрбайгааг анхаарна уу. Form -ийн button дээр дарж label -ийн гарчгийгөөрчил. Гайхамшигтай байгаа биз. Зүгээр л Delphi ажиллаж байгааюм. Иймэрхүүгээр олон дасгалыг ойрын хэд хоногт хийж form -ийнбусад компонент labels, button –уудын талаар их туршлагатай болно.Би үйл явдлын ард нь юу болдгийг бүхэлд нь тайлбарлах гээгүйхарин дараа нь бүх тайлбар хийхийг л хүсэхггүй байна.Object Pascal хэлийг нягтлан харах ньDelphi -ийн RAD онцлогийг суралцахаасаа өмнө обьект Паскал хэлнийүндсийг судлах хэрэгтэй. Энэ ном магадгүй хамгийн сайн нь биш юм шигтанд санагдаж болох юм гэхдээ та юуны өмнө обьект Паскалийг судал.Обьект Паскалийг дараалаар нь судалбал сайн хэрэг. III бүлгийнхичээлийн дараа та обьект Паскалийн бүрэн дүр зурагтай болсон байна.Хоромхон зуурын ухвар ойлголтонд бүү хуурт.Зарим нь обьект Паскалийг бүрэн ойлгохыг шаарддаг ба энэ нь бодиттуршлага юм. Ойрын хэдэн өдрийн турш та зарим кодын хэсгийг харах баэнэ нь обьект Паскалийн зарим онцлогийг дүрслэн үзүүлдэг. Та заримдасгал хийх ба таны олсон шинэ мэдлэгийг бататгана .Эхний хэдэн өдөр тазөвхөн Delphi application -ийг жаахан хэсэгт харна.Юун түрүүнд би Delphi IDE болон Visual Component Library (VCL) -ийгсудалмааргүй байна. Та бүрэн ойлголттой болсныхоо дараа эхлэх хүртлээбага багаар ахих хэрэгтэй.Түүхийн шар хуудас1994 онд Borland пүүс нь RAD хэрэгсэл дээр ажиллаж эхэлсэн ба энэ коднь Delphi гэж нэрлэгдсэн байна. RAD -ийг хэрэгжүүлэх хамгийн шилдэг замнь компонентийн загвар архитектур байна гэж шийдэгдсэн байсан. Энэ ньсистемийн гол цөм байх програмын хэлний асуудлыг шийдсэн байв.Тэр үед Borland пүүс нь Pascal –ийн зах зээл дэх ганц борлуулагч байв.Borland нь Pascal -ийн хэрэгсэлийг үйлдвэрлэдэг хамгийн сайн компанибайв. Та Pascal -ийн програмист байсан бол Borland -ийн TurboPascal -ийгхэрэглэн амтанд нь орох байсан биз. Borland пүүс Pascal хэлийг хуулийнхүрээнд бүрэн эзэмшдэггүй боловч Pascal -ийн ертөнцөд том байр эзэлдэггэдэгт эргэлзээ байдаггүй.Энэ нь Pascal хэлний онцлогийг нэмэгдүүлэх тал дээр том байр эзэлдэг.Энд хэлэхэд Pascal -ийн стандарт хороо байдаггүй ба Pascal хэлийгтодорхойлон бичигдсэн стандарт байдаггүй. Borland пүүс Delphi -ийг Pascal-ийн үндсэн дээр бичсэн юм. (Borland -ийн нэр нь програмын хэлний нэрболсон) Delphi хэрэглээнд гарахаас өмнө Borland пүүс Pascal хэлийгөөрчилсөн. Жишээлбэл : Pascal -ийг обьект Pascal болгон өөрчилсөн байв.Энэ нь обьект Pascal нь Pascal -ийн хувьд C++ нь C -ээс ямар ялгаатайбайдаг шиг обьект Pascal нь классийг Pascal -д нэмсэн ба үүгээр обьектхандлагат програмчлалд Pascal орж ирсэн. Delphi хөгжихийн хирээр шинэхэлний онцлог ба түлхүүр үг нэмэгдэн орж ирэн компонент загвартайзохицож эхэлсэн. Түлхүүр үгүүд ба property өөр бусад нэмэгдэн орж ирсэн.
  7. 7. Энэ нь Borland -д компонент загварын бүрэн хүчийг хэрэгжүүлэх боломжийголгосон.Компонентод тохируулан Паскал хэлийг өөрчилснөөрөө Borland нь RAD -ийг хэрэгжүүлэх боломжтой болсон. Гол нь обьект Паскал хэл ньөөрчлөгдсөнөөрөө Delphi -ийн боломжуудыг нээж өгсөн. Үр дүнд нькомпонент загвар ажиллаж эхэлсэн. Хэдийгээр Паскалийг өөрчилсөнөөрөөBorland нь том алхам хийсэн боловч урьдах зүйлтэй холбоотой. Microsoftкомпани BASIC хэлийг авч өөрчлөн Visual Basic хэлийг гаргасан байдаг.Энэ шинэ хэл нь баазад ажилладаг эх Basic хэлнээсээ ялгагдахгүй шахамбайсан. Borland пүүс Паскал өөрчилснөөрөө эрсдэлтэй алхам хийсэн. Бүхюмны дараа хэрэглэгчид таатай бус хүлээн авсан. Одоог хүртэл Borland ньПаскалийн зах зээл дээр хатуу байр суурьтай байгаа ба энэ хэвээрээбайгаа билээ. Үүнд алдаа хийхгүй бол обьект Паскал хүчирхэг хэл ба бизарлалтыг нь тэгж хөнгөн хийхгүй байхсан.Обьект Паскал нь сургалтанд бол хамгийн хүчирхэг байгаа билээ. БиОбьект Паскалийг бүх онцлогийг агуулсан гэж хэлэхгүй. Паскал болпрограмчлалд түгээмэл хэрэглэгддэг.Санамж: Юу хийхийг тодорхойлохдоо Delphi нь хэд хэдэн нэр томъёогхуулан авсан. Delphi -ийн үндсэн хэл бол мэдээж обьект Паскал ба заримхүмүүс үүнийг Паскал гэж хэлдэг. Зарим Паскал дээр хийж байна хэлдэг.Эцэст нь юу гэж хэлэхээ та шийд. Обьект Паскал нь обьект хандлагатпрограмчлалд бүрэн зохицсон болно.Шинэ нэр томъёо: Обьект - урьд нь компонентыг тодорхойлж байсан шигтусгай програмчлалын хоёр тал юм. (Компонент бол обьект юм, харин бүхобьект нь компонент биш)Pascal Unit -уудПрограмчлал бол код бичихээс илүү ажил юм. Эцсийн эцэст энэ болпрограмын цогц бөгөөд код бичих нь програмчлах зорилгыг нь биелүүлжбайгаа болно. Таны бичсэн код бол зөвхөн текст файл руу ордог.Компьютер тэр текст файлыг аван машины кодод хөрвүүлэлт хийнойлгодог. Delphi -ийн код агуулдаг текст файлыг unit гэдэг.Шинэ нэр томъёо: unit бол кодын модульд хөрвүүлэгдэх боломжтой текстфайл юм.Unit -ийн төрлүүдDelphi GUI application нь багадаа хоёр unit -ийг агуулдаг. Project source unitнь project source кодыг агуулдаг. Project source код нь DPR өргөтгөл байдаг.Та project source unit -ийг Project | View Source -ийг үндсэн цэсээс сонгонүзэж болно. Project source unit -ийг өөрчлөх хэрэгцээ нэг их байдаггүй.Үнэндээ project source unit -ийг юу хийхээ мэдэхгүйгээр хийх хэрэггүй. Тахэрэв project source unit -ийг санамсаргүй өөрчилсөн бол application таньажиллахгүй болно.Delphi GUI application -ийн хоёр дахь төрөл нь үндсэн form -ийн unit байдаг.Form unit гэдэг бол тухайн form -тай хамтардаг source code unit байдаг. Unit-ийн энэ төрөл нь PAS өргөтгөлтэй файл байдаг. Delphi -д та энэ төрлийгнь голлон хэрэглэнэ. Delphi GUI application нь голдуу нэг form unit -тэйбайдаг. (Үндсэн form -ийн хувьд) Харин энэ нь нэгээс илүү form unit -тэйбайж болно. Жишээ нь: About box -ийг гаргадаг application нь үндсэн formunit -тэй байх ба About box -ийн unit байна.Тэмдэглэл: "Delphi GUI application." нь console mode application -ийн GUIapplication -ээс ялгаатай байдаг. Console mode application бол consolewindow (DOS box) -ийг ажиллуулдаг 32-bit Windows application юм.Console application -д үндсэн form байдаггүй ба өөр form -уудыг агуулж чболно, агуулахгүй ч байж болно. Хэдий ийм боловч console application ньнэг эсвэл түүнээс илүү unit -тэй байж болно.Delphi application -д та 3 дахь unit -ийг хэрэглэж болно. Энэ төрлийн unit ньsource кодыг агуулдаг. Зөвхөн unit -ийг агуулдаг код нь project -ийн бусадunit гэж дуудагддаг.Delphi Unit –ийн бүтэц
  8. 8. Delphi unit нь урьд тодорхойлогдсон форматыг дагах ёстой. Unit урьдтодорхойлогдсон форматанд байх ба энэ нь хөрвүүлэгч unit -ийг уншижчадах ба unit -ийн кодыг компиляц хийж чадна. Delphi project unit нь unit -ийн нэртэй програмын түлхүүр үгийг агуулдаг ба кодын хэсэг нь begin баend гэсэн түлхүүр үгээр тэмдэглэгддэг. Та үндсэн unit -ийг Delphi -ийнүндсэн цэсээс View | Project Source -ийг сонгон харж болох ба default Delphiproject -ийн project source unit -нь дараах байдалтай байна.Тэмдэглэгээ: Доорх мөрийн дугаарууд нь unit -ийн өөрийнх нь хэсэг бишболно. Үүнийг зөвхөн дарааллыг заахад ашигласан. Заримд нь ийм дугаарбайгаа ба заримд нь байхгүй болно. Аль алинд нь Паскал хэл нь бусадхэлүүд шиг мөрийн дугаар авдаггүй гэдгийг ойлгох хэрэгтэй. (онцолбол,BASIC).Cтандарт DELPHI PROJECT –ийн PROJECT SOURCE01: program Project1;02:03: uses04: Forms,05: Unit1 in ‘Unit1.pas’ {Form1};06:07: {$R *.RES}08:09: begin10: Application.Initialize;11: Application.CreateForm(TForm1, Form1);12: Application.Run;13: end./1 мөрөнд програмын түлхүүр үг програмын үндсэн source unit -ээр энэ unit-ийг тодорхойлсон. Үүнийг та unit -ийн нэр Project1 нь програмын түлхүүрүгээ даган яваагаас харж болно. (Delphi таныг нэр өгөх хүртэл өөрөөнэрийг нь автоматаар өгдөг)3 мөрөөс эхлэн түлхүүр үгээр тодорхойлогдсон хэсгийг харж байна. Ямар чunit -ийн нэр нь цэгтэй таслалтай түлхүүр үгийг дагадаг ба компиляци энэдарааллаар хийгдэнэ.7 мөрөнд компиляцийн директив нь Delphi нь project -ийн resource file -ийгагуулдгийг харна. Resource файлууд нь VIII бүлгээр яригдана. “CreatingApplications in Delphi."9 мөрөнд begin түлхүүр үг ба 13 мөрөнд end түлхүүр үгийг агуулсан.Сүүлийн түлхүүр үг цэгээр төгссөн байгааг ажигла. (unit нь олон түлхүүрүгтэй байж болох ба харин ганц төгсгөлийн end –тэй байна.)10, 11, 12 -р мөрүүдэд код нь application -ийг үүсгэж байгаа ба application -ийн үндсэн form -ийг үүсгэх ба application -ийн биелэлтийг эхлүүлнэ. Та энэкодын нарийн хэсэгт анхаарах хэрэггүй.Тэмдэглэгээ: begin ба end нь кодыг блоклоно. Кодын блок нь кодын хэдэнмөрийг агуулж болох ба мөн хэдэн зуун мөрийн кодыг ч агуулж болно.Номонд ч бас ийм байгааг та харж болно. Та ном хэрэглэдэг бол яаж, хэзээхэрэглэхийг мэдэх болно.Паскал unit -ийн өөр хэсэгт харцгаая. Үндсэн цэсээс File | New -ийг сонгоно.New Items гарч ирэхэд icon -ийг байрлуулан 2 товшилт хий. Delphi шинэ unit-ийг нээх ба харуулахдаа Code Editor -д unit код нь үүснэ.Хоосон UNIT01: unit Unit2;02:03: interface04:05: implementation06:07: end.
  9. 9. Цөөн байгаа биз? Энэ unit нь 2 зүйлтэй. Эхнийх нь unit нь нэр нь түлхүүрүгтэйгээ байгаа. Түлхүүр үгтэй программ эхэлж байгаа ба код нь unitтүлхүүр үгтэй ба харин хэдхэн ерөнхий элементтэй байна. Pascal unit ньunit нэртэйгээ байгаа түлхүүр үгээр эхлэх ба end нь хоёулангийнх нь сүүлдбайдаг. Энд end түлхүүр үг нь бас сүүлдээ цэгтэй байгаа.Програмын main source unit -ийнх биш unit нь interface ба implementation -уудыг агуулдаг. Энэ хоёр түлхүүр үг нь The interface Section" and"Implementation Section," зэрэг хэсгүүдэд нарийн тодорхойлогдсон байгааболно. Программын үндсэн unit нь begin and end -ийг хоёуланг нь авч явахба харин source unit -нь төгсгөлдөө л end -тэй байна. Дараагийн хэсэг ньPascal unit дотор хэрэглэгддэг түлхүүр үгийг тодорхойлно.Uses жагсаалтШинэ нэр томъёо: uses жагсаалт бол гаднах unit -уудын жагсаалт.3 мөрөнд uses түлхүүр үгийг хэрэглэсэн байгаа. Uses нь бусад unit -уудынжагсаалтыг агуулсан хэсгийн эхлэлтийг тодорхойлж байгаа бөгөөд энэ unitнь түлхүүр үгээсээ хамаарна.Application.CreateForm(TForm1, Form1);Кодын энэ мөр нь бусад unit -уудад байрлах мэдээллийг агуулах ба энэunit -д олдохгүй. Application.CreateForm гэж тодорхойлогдсон процедур ньForms.pas гэгдэх Delphi unit -д байх ба TForm1 ба Form1 идентификаторууднь прожектийн main form unit-д байрлах ба Unit1.pas гэж хэлэгдэнэ. Тахолболтыг нь харав уу? Uses жагсаалт нь unit -ийг компиляци хийхэдхэрэгтэй нэмэлт мэдээллийг агуулдаг гэж үзнэ. Энд uses жагсаалтийгхаруулав.usesForms,Unit1 in ‘Unit1.pas’ {Form1};Uses жасгаалт нь 2 unit нэртэй байна. Forms ба Unit1. Заримдаа энэ ньсайн жишээ биш байдаг. Яагаад гэвэл 2 -р unit жагсаалт нь нэмэлт текстийгагуулсан байдаг. (Unit1 in ‘Unit1.pas {Form1}).Энэ текст нь form -ийг онцлоход хэрэглэгдэх ба unit -дээ байдаг бөгөөдпрожектийн main source unit -ээр л хэрэглэгддэг. (Угалзан хаалтанд байхтекст нь кодын бусад хэсэгт байх тайлбар)Uses жагсаалтыг байгуулахад мэдвэл зохих 2 зарчим байдаг:• Эхлээд жагсаалт дахь unit бүр дараах unit -ээсээ таслалаартусгаарлагдах ёстой.• Дараа нь сүүлийн unit-ийн жагсаалт нь цэг таслалтай байх. Цэг таслалнь uses жагсаалтыг төгссөнийг заана.Ерөнхийдөө жагсаалт нь идэвхтэй unit -ийн нэрсийг агуулах ёстой. Usesжагсаалт нь uses түлхүүр үг, цэг таслалтай end -ээр тодорхойлогдох ёстой.Тэрнээс гадна uses жагсаалт нь яаж зохион байгуулагдсанаасаахамаарахгүй. Жишээ: Дараах 2 uses жагсаалтууд ижил:usesWindows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls;usesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;Unit нь uses жагсаалт нь ямар ч тоотой байж болно.Тэмдэглэгээ: Зарим тохиолдолд Delphi нь танд uses жагсаалтанд unit -ийгнэмж өгдөг. Энэ нь File | Use Unit цэсээр хийгддэг. Энэ онцлог нь IV бүлгээрнарийвчлан яригдана.Интерфейс хэсэг
  10. 10. Өмнөх кодонд интерфейс түлхүүр үг байгааг анзаарсан болов уу.Интерфейс хэсэг бол идентификатор нь unit -ээсээ авч ирэн зарлагдсанunit –ийн хэсэг юм. Ихэнх unit -ууд нь өөр unit –уудад хэрэглэгдэх кодыгагуулсан байдаг. Энэ код нь класс, процедур, функц, хувьсагчаархангагдсан байж болно.Аль ч обьект нь интерфейс хэсгээрээ нэг unit -ээс нөгөө unit -руу зарлагдахболомжтой. Та интерфейс хэсэг нь жагсаалтыг агуулдаг гэдгийг хэлжчадна. Интерфейс хэсэг нь интерфейс түлхүүр үгээр эхэлдэг баimplementation түлхүүр үгээр дуусдаг.Implementation хэсэгШинэ нэр томъёо: implementation хэсэг бол тухайн unit -ийн кодыгагуулдаг хэсэг юм.Implementation хэсэг implementation түлхүүр үгээр эхэлдэг ба дараагийн unit-ийн түлхүүр үгээр дуусдаг. Дараагийн unit -ийн түлхүүр үг нь голдуу unit -ийн төгсгөл end түлхүүр үг байдаг. Паскалийн тал байгаа учир илүү юмярих боломжгүй байна. Хэдий ийм боловч интерфейс ба implementation -ийн жишээ нь танд ойлголтыг жаахан төрүүлэх болно.DoSomething гэж нэрлэгдэх процедур нь unit -ийг үүсгэнэ. Та бусад unit -уудад DoSomething –ийг дуудагдахыг хүсч байна уу? Энэ тохиолдолдDoSomething процедурыг интерфейс хэсэгт зарлах ба implementation хэсэгттодорхойлох хэрэгтэй. Доорх хэлбэртэй байна.PUBLIC функцтэй unitunit Unit2;interfaceprocedure DoSomething;implementationprocedure DoSomething;begin{ Code for DoSomething goes here. }end;end.DoSomething процедур нь interface section -д зарлагдсан байгааг анзаар.Тэгээд implementation section -д тодорхойлогдсон байгаа.Initialization ба finalization хэсэгInitialization ба finalization хэсэг нь unit -ийн шаардлагатай кодыг цэвэрлэх,эхлэл хийх, гүйцэтгэх боломжтой. Initialization section -д ямар ч код unitсанах ойд ачаалагдах үед биелэгддэг. Finalization section -д unit санахойгоос ачаалагдаагүй байхаас өмнө биелэгддэг. Initialization section -гүйгээр та finalization section -тай байх боломжгүй. Энэ хоёр нь хоёулсонголт юм.Unit –д хэрэглэгддэг түлхүүр үгүүдPascal unit бусдыг агуулж болдог ба сонголтын түлхүүр үг нь өөр өөрзорилгоор нь хэсгүүдийг ангилдаг. Эдгээр түлхүүр үгүүдийн зарим нь олонхэрэглээтэй. Дараах хэсэг нь unit –д хамаарагдах түлхүүр үгийг лтодорхойлсон байгаа.Const түлхүүр үгЕр нь unit нь нэг түүнээс илүү const хэсгийн сонголттой байх боломжтой.Const хэсэг бол түлхүүр үгээр тодорхойлогдсон байдаг. Тогтмолоорзарлагдсан хувьсагчаар const хэсэг нь тодорхойлогдоно.Constant бол өөрчилж болохгүй идентификатор юм. Жишээ нь таныпрограмд олон хэмжигдэхүүн байдаг гэе. Үүндээ та тогтмол хувьсагчийгашиглах боломжтой. Const section -ийг доорх програмд нэмье гээдтөсөөлөөд үзье. Та const хэсэгт нэг тогтмолыг нэмэх ба өөр const хэсэг нь 2тогтмолыг нэмсэн.unit Unit2;interfaceconstAppCaption = ‘My Cool Program 1.0’;procedure DoSomething;implementation
  11. 11. constBaseX = 20;BaseY = 200;procedure DoSomething;begin{ Code for DoSomething goes here. }end;end.AppCaption Тогтмол нь interface section -д зарлагдсан учир unit -ийн аль чхэсэгт энэ нь хэрэглэгдэж болох ба uses жагсаалтанд байгаа аль ч unit -ийн хувьд мөн адил байна. BaseX and BaseY хувьсагчууд нь unit дотрооболомжтой яагаад гэвэл тэд implementation section -д зарлагдсан.Тогтмол түлхүүр үг нь нэгээс илүү хэрэглээтэй байж болно.Type түлхүүр үгШинэ нэр томъёо: Type түлхүүр үг нь таны програм хэрэглэх шинэтөрлийг зарлахад хэрэглэгддэг. Шинэ төрлийг зарлах нь esotericпрограмчлалын технологи бөгөөд энд тайлбарлах нь хэцүү болно. Доор 20байтын массив таны application -д хэрэгтэй байгаа ба энэ төрөл нь дахиндахин хэрэглэгдэнэ. Та доорх шиг зарлаж болно.TypeTMyArray = array [0..19] of Byte;Та одоо array [0..19] гэж бичихийн оронд TMyArray гэсэн төрлийг ашиглахболомжтой.“Var “Түлхүүр үгШинэ нэр томъёо: Энэ түлхүүр үг нь хувьсагчууд байдаг кодын хэсгийнзарлалтын үед хэрэглэгддэг.Энэ түлхүүр үгийг та элдэв хувьсагчуудыг зарлахад хэрэглэж болно. Var -ийг зарлах хэдэн байрлал байдаг. Unit -ийн түвшинд var -ийг та зарлажболно. Мөн процедур, функцийн түвшинд var -ийн хэсэг байж болно.unit Unit2;http://www.csms.edu.mn/cheri/interfacetypeTMyArray = array [0..19] of Byte;constAppCaption = ‘My Cool Program 1.0’;varX : Integer;MyArray : TMyArray;procedure DoSomething;implementationconstBaseX = 20;BaseY = 200;procedure DoSomething;begin{ Code for DoSomething goes here. }end;end.Const түлхүүр үг шиг, var -т бас олон хэрэглээ байдаг. Энэ нь бас функц,процедурын параметр, хувьсагч параметруудыг зарлахад хэрэглэгддэг.Тэмдэглэгээ: var -аар тодорхойлогдсон хэсэг нь түлхүүр үгээр эхэлж,дараагийн unit -ийн түлхүүр үгээр дуусна.Кодын тайлбарПаскал хэл рүү нарийвлан орохын өмнө кодын тайлбарын тухай товчтанилцуулъя. Тайлбар нь таны source кодод текст хэлбэрийн тайлбар өгөхзорилготой байна. Тайлбар нь код юу хийхийг тодорхойлоход хэрэглэгдэхба зохиогчийн эрхийн мэдээллийг хангах, өөртөө эсвэл бусдад тэмдэглэлхийхэд л ашиглагддаг.Тайлбар нь ялгаатай 3 аргаар тодорхойлогддог. Дараах зүйлүүд нь бүгд
  12. 12. шугмын хувьд хүчинтэй байна.{ Dont forget to free this memory! }{ADTAPI.PAS 2.50Copyright (c) TurboPower Software 1996-98}(* Оюутнуудаа энэ кодыг засах хэрэгтэй *)// Энэ үнэн зэрлэг код{ Энэ код дээр дараа тухтай ажиллана }Магадгүй Delphi –д ихэнх тайлбарын төрөл нь угалзан хаалтыг хэрэглэдэг.“{“ нь эхлэх үед тайлбарыг, ”}” –нь тайлбарын төгсгөлд хэрэглэгдэнэ.Тайлбарын өөр нэг нь (*тайлбар эхлэх,ба *) байдаг. Энд бас нэг тайлбарынтэмдэг байдаг: (*/*) тайлбарын тэмдэглэгээ нь том хэмжээний тайлбарыгхийхэд болно. Эдгээр тайлбарын төрлүүд нь нэг эсвэл олон мөрттайлбарыг хийхэд ашиглагдана.Тэмдэглэгээ: Угалзан хаалт нь Паскалд өөр хэрэглээтэй байдаг. $ -ийгхэрэглэх үед хаалт нь компиляторын директорыг заадаг. Компилятортcompiler hints үүсгэхгүй гэж зааж өгөн source коддоо {$HINTS OFF} гэжбичих хэрэгтэй. Компилятор энэ мөрийг хараад unit -д дохио өгөхөө{$HINTS ON} –тэй тулаад зогсооно.Тайлбарын 3 дахь хэлбэр нь давхар зураас байдаг. Энэ нь голдуу С -хэлбэрийн тайлбар гэгддэг яагаад гэвэл С ба С++ үүнийн хэрэглэдэг. Энэхэлбэр нь нэг мөрөнд хэрэглэгддэг. Delphi -д энэ хэлбэр ажилладаггүйгэдгийг хэлье.Тэмдэглэгээ: Энд угалзан хаалт хэрэглэсэн байгаа. ”//” -ийг богинотайлбарт болон тестийн зорилгоор ашигласан .Аль ч тайлбарлагдсан текст нь компиляторт хамааралгүй байдаг. Хэрэв таdefault Delphi IDE settings -ийг ашиглаж байгаа бол бүх тайлбар мөр ньбичмэл хөх текст байгаа. Энэ нь тайлбарыг хурдан ялгахад дөхөм байдаг.Тэмдэглэгээ: Хэрэв та багийн бүрэлдэхүүнтэй програмчлалын ажилхийдэг бол та хамтран ажиллагчдынхаа код, бичлэгийг уншдаг байх.Кодонд товч тайлбар хийх нь аль ч програмистад цагийг нь хэмнэнэ. Таганцаараа ажилладаг гэсэн ч тайлбар бичих нь чухал. Та бичсэн кодооямар амархан мартаж байгаагаа хараад л гайхна. Сайн кодын тайлбар ньтаны хамтрагчийн цагийг хэмнээд зогсохгүй таныг ч бас аварна. Кодынтайлбар бичихээ бүү март!ХувьсагчидХувьсагчид нь хэрэглэгдэхээсээ өмнө зарлагдсан байдаг. Та хувьсагчдыгкодын тусгай хэсэгт зарлах ба var түлхүүр үгээр тодорхойлох хэрэгтэй.Жишээ нь:varX : Integer; { X хувьсагч нь integer төрөлтэй }Y : Integer; { Байршлын y утга }Өмнө нь “var” түлхүүр үгийн тухай Паскалийн unit -ийн нэр томъёонддурдсан билээ. Тэр хэсэгт unit -д хувьсагчуудыг хэрэглэдэг ба unit -ийн varхэсэгт зарладаг гэж үзсэн билээ. Тэр нь үнэн ч та бас функц,процедуруудыг энэ хэсэгт зарлаж болно. Функц, процедурт хувьсагчуудыгзарлах боломжийг энэ нь танд олгож байгаа болно. Доорх жишээ ньпроцедурт var хэсэг байна.procedure TForm1.Test;varS : string;beginS := ‘Hello World!’;Label1.Caption := S;end;Та хувьсагчаа зарласны дараа үүнийгээ санах ойд өгөгдлийг зохицуулахадхэрэглэж болно. Энэ мэдээж танд нэг их сэтгэгдэл төрүүлэхгүй байх гэхдээхэдэн жишээг танд танилцуулъя. Дараах кодын хэсэг нь X, Y гэжзарлагдсан хувьсагчуудыг хэрэглэсэн. Мөр болгоны эцэст байгаа тайлбар
  13. 13. нь юу биелж байгааг тайлбарлана.X := 100; { ‘X’ нь одоогийн утга нь: 100 }X := X + 50; { ‘X’ нь одоогийн утга нь: 150 }Y := 150; { ‘Y’ нь одоогийн утга нь: 150 }X := X + Y; { ‘X’ нь одоогийн утга нь: 300 }Inc(X); { Нэмэгдүүлж байна. ‘X’ нь одоогийн утга нь: 301 }Хувьсагч бол компьютерийн санах ойд байрласан хэсэг утга юм. Эрхэмуншигч та энэ кодны тухай зарим зүйлсийг тэмдэглэж аваарай. Юунытүрүүнд Х хувьсагчийн өөрчлөлт (Бид дараа Object Pascal хэлнийхувьсагчийг удирдах оператор, функц, процедурын тухай үзэх болно.)Дараах хувьсагчууд нь нэмэлт, сонгогдсон утга юм.Програмын кодын мөр бүрийн төгсгөлд цэг таслал (;) тавидаг.САНАМЖ: Паскаль хэлийг эхлэн суралцагчид програмын кодуудынхоорондын ялгааг мэддэг байх хэрэгтэй. (зарлагдсан өгөгдөл, утга,хувьсагч, илэрхийлэл г.м)c := a + b;Дээрх жишээнд с хувьсагчид a болон b хувьсагчдийн нийлбэрийн утгыголгож байгаа үйлдэл болно. Энд a + b нь илэрхийлэл юм. Нэг мөрөндолон илэрхийлэл бичигдэж болох бөгөөд төгсгөлд нь цэг таслалтавигдана. Зарим тохиолдолд цэг таслал тавигдахгүй байж болдог. Үүнийгбид дараа нь үзнэ.Хувьсагчийн нэрийн ард хувьсагчийг тодорхойлсон төрөл бичигдэнэ. Функцболон процедурт хувьсагч, хувьсагчийг тодорхойлсон төрлийг зарлажөгдөг. Мөн хувьсагчийн нэрэнд том жижиг үсэг болон доод зураас, тоогхольж хэрэглэж болно. Ихэнхдээ том үсгээр эхэлдэг ба харин доодзураасаар эхлэхийг зөвшөөрдөггүй. Хэдийгээр хувьсагчийн нэр нь 255хүртлэх тэмдэгтээс тогтож болох боловч яг үнэндээ 20 тэмдэгт ч гэсэнашиглахад хэцүү байдаг.МашУртХувьсагчийнНэр : Integer; { урт хувьсагчийн нэр }Миний_хувьсагч : Integer; { доогуур зураас ашигласан }x : Integer; { нэг тэмдэгт ашигласан }X : Integer; { нэг тэмдэгт ашигласан}Тэмдэглэгээ2 : string; { үсэг болон тоо ашигласан }САНАМЖ: Паскал хэл нь тохиолдлыг нарийн мэдэрччаддаггүй. Жишээ нь:varXPos : Integer;{ ...later }XPos := 20;XPOS := 200;xpos := 110;XpoS := 40;Паскаль хэл нь С ба С++ хэлтэй харьцуулахад ойлгомжмуутай байж болох юм. Гэхдээ та удахгүй үүний ялгааг олж,ашиглаж сурах болно.САНАМЖ: Паскал хэл нь тохиолдлыг нарийн мэдэрч чаддаггүйболовч та програмдаа тэмдэгт мөртэй ажиллахдаа том үсэгашиглаж сурах хэрэгтэй.Обьект Паскал хэлний Өгөгдлийн төрөлШинээр: Объект Паскалийн өгөгдлийн төрөл нь санах ойд мэдээллийгхадгалдаг хөрвүүлэгч /compiler/ аргыг тодорхойлсон.Зарим програмчилалын хэлэнд хувьсагч олон төрлийн утгатай байжболдог. Жишээ нь доорх BASIC код юм.X = -1;X = 1000;X = 3.14;BASIC хэлэнд тооны төрөл хэмжээг тааруулахын тулд санах ойнзохицуулалтад анхаарах хэрэгтэй.Хувьсагчийг зарлахПаскал хэлэнд хувьсагчийг програмд ашиглахаасаа өмнө төрлийг нь
  14. 14. зарлаж өгөх ёстой.varX1 : Integer;X : Integer;Y : Double;Z : Byte;{ ...ө.х }X1 := -1;X := 1000;Y := 3.14;Z := 27;Өгөгдлийн төрлөө зөв сонгосноор програмын үр дүн зөв гарна гэсэн үг.Тиймээс програмаа ажиллуулахаас өмнө өгөгдлийн төрлөө сайн нягтлажшалгах хэрэгтэй.Зарим өгөгдлийг signed, unsigned –аар өргөтгөж болдог. Өгөгдлийн signedтөрөл нь эерэг ба сөрөг утгыг авдаг бол unsigned төрөл нь зөвхөн эерэгутгыг авдаг. Хүснэгт 1.1 д Паскалийн үндсэн өгөгдлийн төрлүүдийн санахойд эзлэх хэмжээ болон авч болох утгын хязгаарыг үзүүлэв. Хүснэгтэд"String" буюу тэмдэгт мөрийг оруулаагүй. Харин "Strings" гэсэн дараагийнбүлэгт авч үзнэ.ХҮСНЭГТ 1.1. ОБЪЕКТ ПАСКАЛД АШИГЛАДАГ ӨГӨГДЛИЙН ТӨРЛҮҮД (32-BIT).
  15. 15. Дээрх хүснэгтэд үзүүлснээр 32 битийн орчинд Integer, LongInt төрлүүд ньсанах ойд ижил 4 байт эзлэж байна. Энэ нь Delphi 4.0 -ийн орчинд нийцэжбайна. Харин 16 битийн орчинд Integer нь 2 байт эзлэж байхад Longint нь 4байт эзлэдэг.Ихэнх програмистууд LongInt –ээс илүү Integer –г өргөн хэрэглэдэг.Мөн Int64, Comp (computational) төрөлүүд нь авч болох утгын хэмжээ ижилбайна. Харин ялгаатай тал нь өөрсдийн дотоод хөрвүүлэлт хийдэг арга юм.Int64 нь integer төрөл, харин Comp нь real төрөл юм.Real ба Double төрлүүд нь ижил юм. Delphi програмын өмнөх хувилбартReal төрөл нь 6 байт байсан бол одоо 8 байт болсон. Энэ өөрчлөлт нь Realтөрлийг өнөөгийн хэв маягт ашиглах нөхцлийг бүрдүүлж өгсөн хэдий чDelphi програмд ашиглагдахдаа Double төрлөөс багаар ашиглагддаг буюухуучирсанд тооцогддог.САНАМЖ: Windows нь 2,147,483,647 (integer –н maximum утга)– аас илүү утга буцааж чадах GetDiskFreeSpaceEx функцыгагуулдаг.САНАМЖ: Single, Double, Extended, Currency өгөгдлийнтөрлүүд нь float төрөлд хамаарагдана.(10 -тийн тооллынсистем). Харин бусад төрөлтэй integer –ээр холбогддог. integerнь бутархай тоон утгыг илэрхийлдэггүй. Жишээ нь дараахькодод буруу зарласан байна.varX : Integer;{ Дараа нь... }X := 3.75;Энэ үед алдааг тань Паскал хэл тэр дор нь танд хэлж өгнө.Харин та үүнийг мэдсэнээр float төрөл нь Windows орчиндямар их ашиглагдахыг анзаарах болно.Өгөгдлийн төрлүүдийн хоорондох хөрвүүлэлтОбъект Паскаль нь өгөгдлийн төрлүүдийн хооронд хөрвүүлэлт хийжчаддаг. Жишээ нь:varRes : SmallInt;Num1 : Integer;Num2 : Integer;{ Дараа нь... }Num1 := 200;Num2 := 200;Res := Num1 * Num2;
  16. 16. SmallInt дэх Integer төрөлтэй хоёр өгөгдлийг хооронд нь үржүүлж үр дүнг ньгаргаж байна. Энэ томъёо нь хоёр өгөгдлийн төрлийг холисон хэдий чОбьъект Паскаль хөрвүүлэлт хийж чадаж байна. Хариу буюу үр дүн нь -25,536 гарна. Хүснэгт 1.1 -д үзүүлснээр SmallInt нь хамгийн ихдээ 32,767утга авдаг. Тэгвэл энэ 32,767 дээр нэгийг нэмбэл хариу нь -32,768 болно.Та үүнийг туршихын тулд доорхи зааврын дагуу ажилларай.1. Шинэ проект нээж form -д label ба button -г байрлуул.2. button дээр Double-click хийж OnClick event -ийг сонго.3. Дараахь байдлаар бичнэ.procedure TForm1.Button1Click(Sender: TObject);varX : SmallInt;beginX := 32767;X := X + 1;Label1.Caption := IntToStr(X);end;4. Run хийж button товчоо дар.Label -ийн caption дээр -32768 болж өөрчлөгдснийг та харах болно./IntToStr функц нь integer -ийн утгыг string болгон хөрвүүлнэ./ Дээрх дасгал32767 нэмэх 1 тэнцүү 32768.Дээрх жишээ нь overflow ба wrapping гэж юу болохыг харуулж байгаа юм.Хувсагчдын утгын хувьд overflow буюу орон халилт үүсэхээргүй /ө.хmaximum -аас бага/ байх ёстой. Integer төрөл нь ойролцоогоор –2 -оос +2тэрбумын алслалттай байдаг.Зарим тохиолдолд Object Pascal нь хөрвүүлэлт хийж чаддаггүй. Сompilererror нь Integer Real хоёр хоорондоо хамааралгүй төрлүүд гэж мэдээлнэ.Сompiler error нь тодорхой төрлүүдэд хадгалагддаггүй утгуудыг зааж өгнө.Жишээ болгон доорх кодыг авч үзье.varX : Byte;beginX := 1000;end;Тогтмолыг зарлах Сompiler error –г харуулж байна. Танд Х хувьсагчийнутгыг 1000 гэж сонгож болохгүйг Сompiler нь мэдээллэх бөгөөд учир нь Ххувьсагч нь Byte хэмжээтэй ба Byte нь 0 - 255 хүртэл хэмжээтэй байдаг.Зөвлөгөө: Сompilе хийхдээ санамж анхааруулга алдаанымэдээлэл зэргийг сайтар дагах хэрэгтэй. Тэдгээр ньпрограмын кодын алдаа хэрэгцээтэй зарим мэдээллүүдийгхэлж өгдөг.Обьект Паскалийн ОператорХүснэгт 1.2 Түгээмэл ашиглагддаг операторууд.
  17. 17. Операторуудын хувьд байнга хэрэглэгдэж байдаг хэсэг нь байхад басхааях ашиглагддаг операторууд ч байдаг.Аnd, or, not зэрэг түлхүүр үгс нь логикийн болон битийн гэсэн төрөлтэйбайдаг. Жишээ ньif (Started = True) and (X > 20) thenZ := X and Y;Дээрх жишээнд and үйлдэл нь хоёр янзаар хэрэглэгдэнэ.ТогтмолӨмнө хэлсэнчлэн тогтмол нь утгын хувьд өөрчлөгдлөггүй. Хувьсагчийнутгыг програм бичигч өөрчилж чаддаг бол тогтмолын утгыг чаддаггүй.Тогтмолыг зарлахдаа const түлхүүр үгийг ашигладаг.constDefaultWidth = 400;DefaultHeight = 200;Description = ‘Something really cool.’;Тогтмолыг зарлахдаа (:=) тэмдэг бус = тэмдэгийг ашигладаг. Мөн ямар чөгөгдлийн төрлийг онцолж заадаггүй.Массив
  18. 18. Массив буюу array нь бүлэг утгын цогц гэж хэлж тодорхойлж болно.Өөрөөр хэлбэл нэг төрөлтэй хэсэг элемент юм. Зарлах үед түүнийг санахойн тодорхой зайд байрлуулдаггүй ба зөвхөн заагчийн эхлэх утгатогтоогддог. Массивыг дараах хэлбэрээр зарладаг.varMyArray : array[0..4] of Integer;Integer нь 4 байтын санах ойтой учраас дээрх массивын хувьд 5 индекстэйтул санах ойд 20 байт эзлэж байна.MyArray массив 5 гишүүн буюу индекстэй. Индексээ дугаарлажтэмдэглэхдээ [ ] хаалтад бичиж өгнө. Массивийн гишүүн тус бүрд доорхжишээнд анхны утга олгов.MyArray[0] := -200;MyArray[1] := -100;MyArray[2] := 0;MyArray[3] := 100;MyArray[4] := 200;Дараагийн жишээнд 3 ба 4 –р индексуудын утгуудыг хооронд нь нэмж Ххувьсагчид олгож байна.X := MyArray[3] + MyArray[4]; { үр дүн 300 }Олон хэмжээст массивМассив нь олон хэмжээст байж болно. Өөрөөр хэлбэл санах ойд мөрмөрөөрөө дараалж ажилладаг. Хоёр хэмжээст integer төрөлтэй массивүүсгэхийн тулд кодыг дараахь хэлбэрээр бичнэ.varMdArray : array[0..2, 0..4] of Integer;Энэ массив санах ойг 60 байтаар ачаалж байна. Массивын утга нь урд ньсанах ойд байрлаж байсан санамсаргүй өгөгдөл юм. Мөн индекс нь тэгээсэхэлдэг. Массивийн элементүүдийг энгийн масив хэлбэрээр ашиглажболох ба [ ] хаалтын тусламжтай дараахь хоёр байдлаар ашиглаж болно.Үр дүн нь ижил гарна.X := MdArray[1][1] + MdArray[2][1];X := MdArray[1, 1] + MdArray[2, 1];САНАМЖ: Массивийн элементийн тооны хязгаарт байхгүйиндекс гарч ирвэл алдаа заана. Доорхи жишээнд үзүүлэв.varMyArray : array[0..4] of Integer;X : Integer;beginX := MyArray[3] + MyArray[5]; { 5 дугаартай индекс байхгүй. }end;Тэгэхээр массивийн элементийн хязгаарыг анх зарлаж өгөх хэрэгтэй.Жишээ нь 10*20 хэмжээтэй массив үүсгэе.varMyArray : array[10..20] of Integer;10 баганатай 20 мөртэй хүснэгт мэтээр төсөөлье.constmyArray : array[0..4] of Integer = ( -200, -100, 0, 100, 200 );Их ба бага функцЭдгээр функцуудыг массивт олон дахин ашиглаж болно. Хувьсагчийн утгындээд доод хязгаарыг массивт энгийн байдлаар зарлаж өгдөг. Бага /Low/функц нь доод хязгаараас буцах үйлдэл /return/ хийдэг. Харин Их /High/функц нь мөн адил массивын дээд хязгаараас буцдаг.varX, I, Lower, Upper : Integer;MyArray : array[10..20] of Integer;begin{ MyArray массивын эхний хэсэг }Lower := Low(MyArray); { Lower нь 10 }Upper := High(MyArray); { Upper now contains 20 }X := 0;
  19. 19. for I := Lower to Upper doX := X + MyArray[I];{ Х хувьсагч дээр ямар нэг зүйл хийнэ. }end;Массивийн хязгаарын гаднах утга нь ойртоход их ба бага функц тодорхойбиш хэрэглэгддэг.Динамик МассивDelphi 4 -т массивийг динамикаар оруулдаг. A динамикийн массивийнэхний хэмжээг гаднаас зарласан ба массивийг зарлах цагт хэмжээг ньтавьж агуулдаггүй. Дараа нь SetLength -ийн хэмжээг заан хэрэглэдэг.Жишээ нь:varBigArray : array of Integer; { хэмжээ олгоогүй байна }X : Integer;beginX := GetArraySize; { хэрэгтэй хэмжээг тодорхойлогч функц }SetLength(BigArray, X); { динамикаар хэмжээ тогтоож байна }{ одоо BigArray –г хэргэлнэ}end;Шинээр : A динамик массив нь массиваа санах ойд ачаалдаг. A динамикмассив нь програмд их бага хэмжээгээр хэрэглэгддэг.Массивийн индекс бүрд элемент харгалзуулан байрлуулах нь ачхолбогдолтой. Санах ойд 10 integer хангалттай байлгах хэрэгтэй гэвчбусад нь магадгүй 1000 integer хангалттай хэрэглэдэг.Массиваа Copy функцээр байрлуулан хэрэглэж чадна.Жишээ нь массив нь 100 ба 200 хэмжээтэй элемент хэрэглэдэг :Copy(BigArray, 200);Массивдаа утгыг нь хадгалсан ба массивийн хэмжээ нь 100 -с 200 элементболон өссөн.Олон хэмжээст dynamic массивыг үүсгэх нь нэг хэмжээст массивыгүүсгэхтэй бараг адилхан байдаг. Доор 2 хэмжээст массивыг үүсгэв. Код нь:varBigArray : array of array of Integer;beginSetLength(BigArray, 20, 20);BigArray[0][0] := 200;end;StringsПрограмд String -тэй ажиллахад хэцүү. Object Pascal нь 3 string төрөлтөй:long string, short string, ба wide string.Нэмэлт string төрөлтөй, энэ нь төгсгөлгүй string-briefly ба stringmanipulationфункцтэй.Short StringБогино string төрлийн урт нь тогтмол, тэмдэгтүүдийн хамгийн их хэмжээ нь255 тэмдэгт байдаг. Богино string нь 1 -ээс 2 замтай ба 1 зам нь 255 byteхэмжээтэй ShortString -д зарлагддаг.varS1 : ShortString; { 255 тэмдэгт }S2 : string[20]; { 20 тэмдэгт }String manipulation нь short төрөлтөй учир нь санах ой дахь string -ийнхэмжээг өөрчлөхгүй. Богино string хуучин төрлийг нь бодох ба урт stringоруулна. Богино strings нь урт byte -тай учир нь string -ийн анхны элементнь уртаа агуулдаг. (тоо болон тэмдэгт). Short string -ийн анхны элементийнутга нь string -ийнхээ уртыг тодорхойлдог. Жишээ нь :varS : ShortString; { 255 тэмдэгт }Len : Integer;beginS := ‘Hello’;Len := Ord(S[0]);
  20. 20. end;Дээрх жишээнд string -ийн уртыг S[0] утга тодорхойлж байна. Мөн функцынуртыг тодорхойлж чадна. Функцын урт нь bit байна.Санамж : Ord функцын утгыг Char төрөл, integer утгаархувиргаж хэрэглэнэ. (дараалсан утга) Мөн Ord функц ньжагсаалттай хамт хэрэглэгддэг.Хэрэв та short string -ийн эхний элементийг хэрэглэх бол түүний урт ньstring байна. Тэгэхлээр програмын орчинд түүнийг хэрэглэх шаардлагагарч ирж байна. Эхлэн суралцагч таны хувьд програм техникийн дэвшилтэттехнологид 0 байтын short string -ийг нэмж судлахыг санал болгож байна.Long Stringlong string төрөл нь string объектэд динамик байдлаар байрладаг.Хэмжээний хязгаар нь зөвхөн ачаалагдсан санах ойгоор тодорхойлогддог.Объект Паскал нь санах ойд string -ийг байршуулж бас устгаж хэрэглэдэг.Long strings нь харин маш их уян хатан чанартай бөгөөд заримдаа shortstring шиг удаан болхи мэт нарийн төвөгтэй тэмдэгтүүдээ ачаалдаг.Хэрэв үр дүн тань шүүмжлэлтэй санагдвал long string-ийг ашиглаарай.Динамикаар санах ойд байрлуулснаар long string нь тэмдэгт мөрийнгарчгийг өөрчлөх боломжтой болсон Доорх жишээнд string нь түлхүүр үг,параметрийн хэмжээгүй зарлагдсан байна.varS : string; { динамикаар байрласан long string }Учир нь string нь динамикаар байрласанд оршино. Харин танд одооүйлдлийн хэсэгт өөрчлөлт хийж чадах боломж үлдсэн шүү. Ер нь long stringнь хэрэглэхэд маш энгийн ба өөрөөр хэлбэл тэмдэгт мөрөө санах ойгоосачаалах үед зай завсар гэх мэтийн санаа зовоосон асуудал гарахгүй. Учирнь энэ бүгд илүүчгүй дутуучгүй бүгд автомат юм.Long string нь 0 элементийг зөвшөөрдөггүй бөгөөд хэрэв түүнд хандвал үрдүн тань compiler error буюу алдаатай гарна гэсэн үг. SetLength функцийгашиглавал зохистой.Wide StringUnicode төлөв байдалтай double-byte хэрэглэдэг. Windows API функцэдхэрэглэгддэг. long string -ийн адилаар авах утгын хэмжээний хязгаар ньзөвхөн ачаалагдсан санах ойгоор тодорхойлогддог. string объектэддинамик байдлаар байрладаг. Үүнээс илүү деталчилсан мэдээллийг таолж авч чадахгүй болов уу. Учир нь OLE function -той дуудуулах хязгаартайбайдаг.Null /хоосон/ - Төгсгөгч Strings: PChar ба Char -ын МассивОбъект Паскал нь С ба C++ хэлнүүдээс string өгөгдлийн төрлөөрөөялгаатай. C ба C++ -д string нь 0 нь төгсгөлийг заадаг. Мөн массивын уртнь байтаар биш байдаг. PChar төрлийг дүүргэж хэрэглэх хэрэгтэй бамассивын бүх төрлийг ашиглаж болдог. Жишээ нь Windows MessageBoxфункц юм. Энэ функц нь Windows -ийн стандарт message мэдээллүүдийгдэлгэц дээр гаргадаг.function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT):Integer;Хоёр дахь ба гурав дахь параметрүүд нь массивын элементийг заагчаархаруулж байна.(message box текст, message box caption). Эдгээрфункцуудыг та Delphi програмаас дуудан ажиллуулж болно. PChar type -ийн жишээ код:varText : string;Caption : string;beginText := ‘Шалгаж байна.’;Caption := ‘Текст мэдээлэл’;MessageBox(0, PChar(Text), PChar(Caption), 0);end;Дээрх жишээнд Pchar -ыг Pascal -ын long string, null-terminated stringашиглан үзүүллээ. Харин та өөрөө Pchar -ыг үргэлжүүлж судлаарай.
  21. 21. varText : PChar;beginText := ‘Шалгаж байна.’;MessageBox(0, Text, ‘Message’, 0);end;Pascal -ын string нь хүчирхэг төдийгүй хялбарханаар хэрэглэгдэж байна.Та үүнээс олон удаа хэрэглэх боломж байхгүй. Pchar -ыг long string, nullterminatedstring руу хөрвүүлж болдгийг дээрх жишээ харууллаа. Төгсгөлднь та массивт Char төрлийн өгөгдлийг Pchar ашиглан байршуулж үйлдэлхийж сурлаа.varText : array [0..20] of Char;beginText := ‘Шалгаж байна.’;MessageBox(0, Text, ‘Message’, 0);end;Windows API функцийг дуудахдаа null-terminated string -ийг параметраарашиглавал илүү тохиромжтой.Үндсэн Тэмдэгт мөр /String Basics/Pascal нь нилээн хэдэн string төрлийн элементүүдтэй.+ OperatorvarS1 : string;S2 : string;beginS1 := ‘SW210 Kim’;S2 := ‘Reisdorph’;Label1.Caption := S1 + ‘ ‘ + S2;end;Дээрх кодод S1, S2 хувьсагчдийн үр дүнг label -ын Caption property –ээрдамжуулан харууллаа. Одоо арай өөр жишээ үзье:varX : Integer;beginX := 199;Label1.Caption := ‘The result is: ‘ + IntToStr(X);end;Энд IntToStr функц ашиглан 199 гэсэн тоог тэмдэгт мөр болгонхувиргалаа.Subscript OператорТэмдэгт мөрөөс subscript ([ ]) –г ашиглан элемент бүрийг нь салган авчболдог.varS1 : string;S2 : Char;beginS1 := ‘Hello World!’;S2 := S1[1];Label1.Caption := S2;end;Дээрх жишээнд S2 хувьсагч нь Char төрлийн байна. Үр дүнд Н гэжLabel1.Caption дээр гарна. S[0] -ийг эхний элемент гэж long string, widestring -үүд үздэггүй.String -ийн контрол буюу тохируулгаObject Pascal нь String -ийн контрол буюу тохируулгыг шинээр нэвтрүүлжөгсөн. Ихэвчлэн хэвлэдэггүй тэмдэгт мөрд ашигладаг.Та control character хийхдээ # тэмдэг ашиглах ёстой. Доорх жишээнд (ASCII27) гэж тэмдэглэжээ.
  22. 22. S := ‘This is a test. Escape follows.’#27’ Finished.’;S1 := ‘This is a test. Escape follows.’;S2 := ‘Finished.’;S3 := S1 + #27 + S2;Эндээс та хялбархан онол гаргаж болно. Form дээрээ button, label үүсгэ.button дээрээ Double-click /хулганаа товших/ хийж event -ийг нь OnClickболго:Label1.Caption := ‘Line 1’ + #10 + ‘Line 2’;Run хийж button товч дээрээ дар. Label 2 шугамаар мэдээллээ гаргадаггэдгийг та одоо мэдэж авлаа. Дээрх кодын хувьд (ASCII 10) -ыг 2 шугамаарүзүүлхэд ашиглаж байна.Том хэмжээний текстэн мэдээлэлийг нэг шугамаар авч болно.(ойролцоогоор 200 орчим тэмдэгт орсон үед) Delphi Code Editor нь хамгийнихдээ буюу 1,024 тэмдэгтээс тогтож болдог. Ийм хэмжээний мэдээллийнунших бүрэн бололцоотой гэж үздэг. Тэмдэгт мөрийн олон шугаманхэлбэрийг + operator -той жишээг доор үзүүлэв.MessageBox(0, ‘Энд маш урт message ‘ +‘that seems to go on and on forever. In order ‘ +‘to make the code more readable the message has ‘ +‘been split across several lines of code.’, ‘Message’, 0);Тэмдэгт мөрийн харьцуулах үйлдэлString нь харьцуулах операторын тусламжтай харьцуулалт хийж чаддаг.Хүснэгт 1.3 их ашиглагддаг операторуудыг жагсаан бичив.ХҮСНЭГТ 1.3. ТЭМДЭГТ МӨРИЙН ХАРЬЦУУЛАХ ОПЕРАТОР. Эдгээр операторууд нь ASCII кодоорхарьцдаг. Мөн үйлдэлд биелэгдэхдарааллаараа ялгагдана. Тэнцүү үйлдлийн буруу ашигласан жишээ:if FileName = ‘TEST.TXT’ thenOpenFile(FileName)elseReportError;String-Manipulation ФУНКЦИхэвчлэн ашиглагддаг функцуудын тайлбарыг доорх 1.4 хүснэгтэд үзүүлэв.ХҮСНЭГТ 1.4. ТЭМДЭГТ МӨРИЙН ФУНКЦ БА ПРОЦЕДУРУУД
  23. 23. САНАМЖ: Нэмэлт функцуудын талаар мэдээллийг Delphiпрограмын help руу орж additional дотроос олж аварай.Одоо жишээн дээр StrToInt function туршиж үзье.Value := StrToInt(Edit1.Text);Өөр StrToXXX функц (StrToFloat, StrToDate гэх мэт) дээрх замын дагууажиллана.Format function нь тэмдэгт мөр ба нэмэлт аргументэд хэвшүүлэлт хийдэг.Доорх жишээн дээр үр дүнг нь үзье.varS : string;X : Integer;beginX := 10 * 20;S := Format(‘Үр дүн: %d’, [X]);Label1.Caption := S;
  24. 24. end;Үр дүн: 200Энэ жишээнд %d тэмдэгт нь integer утгыг илэрхийлж байна. Мөн бусадтэмдэгтэй хувьсагчаар дамжуулан ажиллана. Жишээ нь:varX : Integer;Y : Integer;beginX := 20;Y := 5;Label1.Caption := Format(‘%d + %d = %d’, [X, Y, X + Y]);end;Дэлгэцэнд үр дүн нь гарахдаа дараах байдалтай байна.20 + 5 = 25Энэ жишээнд label -ын Caption property –г ашиглалаа. Өмнөх болон дараадараагийн жишээнд ашиглаж бас болно."Format Strings" –н талаар илүү их мэдээлэл үзье гэвэл Delphi help -ээсаварай. Windows үйлдлийн системийн ерөнхий зохион байгуулалтын талаартовчхонWindows-н өмнөх хувилбарууд MS-DOS үйлдлийн системтэй сайн зохицонажилладаг боловч үйлдлийн систем гэсэн утгандаа бүрэн хүрч чадахгүйбайсанбол өнөөгийн Windows95 өөрөө 1 цогц үйлдлийн системийг илэрхийлжчадахболжээ.Windows95 үйлдлийн систем нь ерөнхийдөө 3 дэд системд хуваагддаг.1. Win KERNEL2. Win GDI3. Win USERWindows95 нь 16 болон 32 битийн программуудыг ажиллуулахдаасистемийнвиртуаль машин болон дээрхи 3 дэд системийн тусламжтайгаар зохионбайгуулдаг. Системийн виртуаль машин гэдэг нь Windows-н бүх ажлыгдэмжижбайдаг Windows95-н бүрэлдхүүнд ордог үйлдлийн орчин юм. Мөн дээрхи 3дэдсистемийн ажлыг дэмжиж байдаг.32 битийн win гэдэг нь санах ойн 32 битийн моделийг ашиглаж байдагwindows-ншинэ хэрэглээ юм. Харин 16 битийн win гэдэг нь бидний урьд өмнөхэрэглэжбайсан windows-н хуучин хувилбарууд юм. Тэдгээр нь санах ойнсегментийнхаяглалтийг буюу чухамдаа 80286 процессорын санах ойн моделийгашигладаг.Тэдгээр нь Windows 3.x –нх шиг ажиллахдаа Windows95 нх шиг нэгдмэл нэгорон зайг хуваан эзэмшдэг бөгөөд олон бодлогын зарчимтайзохицодоггүй.Windows95-н хэрэглээний программийн төвшинд Windows 3.x –н API бүрэнтохирч ажилладаг.Win32 API нь Microsoft –н WinNT, Win32S, Win3.1-н өргөтгөл win32 битийн
  25. 25. интерфейс юм. Windows95 үйлдлийн систем нь олон бодлогын аргадүндэслэндээрх application-уудыг жолооддог. Бүрхүүл гэдэг нь хэрэглэгчийгсистемтэйхарилцах үйлдлийг хангаж байдаг 32 битийн Windows application юм.Windows95-н бүрхүүл нь windows3.x-н программ менежер, файл менежерзэргийг нэгтгэсэн application юм.KERNELKERNEL нь windows-н доод түвшиний динамик санах ойн функцүүдээрхангажөгч байдаг үйлдлийн системийн цөм юм. Энэ нь 16 ба 32 битийн windows-нүйлдлүүд тохирохүйлчилгээг хангадаг.GDIGDI нь graphic device interface гэсэн товчилсон үг. Энэ нь Windows95-нграфикболомж болон дэлгэцэнд харуулах өнгө, хэлбэр дүрс, resolution-г хангажбайдаг.Win32 –т байдаг бүх шинэ боломжуудыг агуулна.USERUSER нь дэлгэцийн диспетчер юм. Windows-н интерфейсийг үүсгэх,удирдахфункцүүдийн цргц юм. Жишээ нь Хэрэглэгч хэд хэдэн MS-DOS –н Promptгарганашиглаж болно.Хэрэглэгч арай илүү виртуалчилах боломжийг хангадаг хэд хэдэн давуутал гарчирлээ.Системийн виртуаль машинWindows-н API функцийн төвшинДээр харлуулсан орон зайг хамтарч эзэмшинэ. Энэдээс Windows95 нь 16битийнпрограммуудад тусад нь орон зай гарган өгч орчинийг нь бүрдүүлж өгдөгньхарагдаж байна.Windows32 bitWindows32 bit16 bit16 bitБүрхүүлWindows-н дэд системWin KERNELKERNELWin USER Win GDIФайл удирдах дэд систем
  26. 26. Сүлжээ удирдах дэд системҮйлдлийн системийн үйлчилгээВиртуал машин удирдах дэдсистемХөтлөгч хэрэгслүүдБүрхүүлЭнэ нь хэд хэдэн системийн удирдлагыг хэрэглэх нөөцүүдийнболомжуудаархангах программ юм. Windows95-үйлдлийн системийн бүрхүүл нь дэлгэцсистемийн нөөцүүдтэй харилцан ажиллахыг удирдан зохион байгуулдаг.APIХэд хэдэн зуун API функцүүд windows-н бүх системийн хийх үйлдчилгээгхангажөгдөг. Windows-н орчин бол интерфейс баазын дуудалтаар ханддаг.Үүнийг APIгэдэг.Системийн виртуаль машинWindows-н бүх application ситемийн виртуаль машины тухайн хил хязгаартүйлдлээ гүйцэтгэдэг. 16 битын application –ууд өөрийн нэгдмэл хаяглалыноронзайд ажилладаг.Энэ нь application бүрийн өөрийн орон зайн хаяглалтыг 32 битынхаяглалтаархангаж дэмжиж өгдөг.MS-DOS-н виртуаль машинWindows95 олон тооны MS-DOS-н программыг хамгаалалтын горим эсвэл8086виртуаль үйл ажиллагаа ажиллуулж дэмжиж байдаг. MS-DOS-н виртуальмашинхэд хэдийг үүсгэж болно.Виртуаль машины диспетчерВиртуаль машины диспетчер нь үнэндээ үйлдлийн системийн зүрх юм.Энэ ньдоод түвшиний санах ойн удирдлага болон драйверуудын виртуальзохионбайгуулалтын үйлчилгээг хянаж ажилллаж байдаг.| Windows95 –н диспетчерүүдWindows95 –н виртуаль машины диспетчер дотор хоёр диспетчеражиллажбайдаг.Үүнд: Үндсэн диспетчер. (primary scheduler)Энэ нь thread-дын приоретитүүдийг тооцоолж хариу өгнө.Квантын диспетчер (timeslice scheduler)Энэ нь хугацааны квантуудад хувааж хэсэгчлэн ажилуулана.Үнэн хэрэгтээ квантын диспитчер аль thread-н ямар хувийг нь ямархугацаандпроцессороор үйлчлүүлэхийг тооцоолно.Процесс 0-31 хүртэл приоритеттой байдаг ба үүнийг үндсэн диспетчербодоод
  27. 27. квантын диспетчер лүү гаргана. Хэрвээ процессийн хугацааны квант 100хувьболсон бол VMStat_Background эсвэл VMStat_High_Pri_Background гэдэгтөлвийг үлдээдэг.DELPHI ДЭЭР АНХНЫ АЛХАМ ХИЙЦГЭЭЕТа мэдэж байгаа Delphi бол Borland пүүсийн Windows-ийн орчныпрограмыгбичдэг дээд түвшний програм юм. Delphi -ээр та Windows -ийн орчныпрограммыг урьд байгаагүйгээр хялбар бөгөөд хурдан бичих боломжтой.Win32 эсвэл Win32 graphical user interface (GUI) -ийг та нээж ажиллуулжболно. Win32 GUI -ийг ажиллуулснаар та дээд түвшний програмчлалынхэлний үнэн хүч чадлыг мэдрэх болно. Мөн та Web browsers –ийгминутийндотор үүсгэдэг шигээ form дээрх ActiveX control -оор тусгай програмуудыгүүсгэж болно. Энэ мэт олон зүйлийн давуу талууд Delphi -д байдаг баDelphi нь өөрөө кодоо үүсгэдэг тул програмын биелэлт хурдан байдаг.Танд л гэж хэлэхэд Pascal -ын программчлалыг жаахан судлах хэрэгтэй.Delphi нь Windows програмчлалын доод түвшний нарийн зүйлүүдийгнуудагба энэ нь танд чухал биш. Эцэст нь та програмист л болохыг хүсч байгаабол энэ нь бүгдийг судлах хэрэгтэй. Delphi нь танд урьд байгаагүй хөгжилтаашаалыг авчрах болно. Ингээд ханцуйгаа шамлан бүх ажилдааорогтун.Delphi сэтгэлийн таашаалыг авчрах агуу программ юм.Delphi IDE -ийг өнгөц харъяЭнэ хэсэг нь Delphi integrated development environment (IDE) -ийг агуулна.Windows програмчлалыг судлах бүхэнд энэ нь хэрэгтэй юм. Та одооDelphi-ийг эхлэх урам зоригтой байгаа гэж бодож байна. Программыгэхлүүлэхэдта хоосон form ба IDE -ийг харах болно.
  28. 28. Delphi IDE нь 3 хэсэгт хуваагдана. Дээд хэсгийг нь үндсэн цонх гэдэг. Энэнь toolbars болон Component palette -ийг агуулдаг. Delphi toolbars ньcompiling project, хадгалах, нээх үйлдлүүдийг нэг товшилтоор гүйцэтгэхболомжийг танд олгоно.Component palette нь wide array of components агуулдаг ба түүнийг formдээр чирч тавьж болно. Component -ууд нь text labels, edit controls, listboxes, buttons ба бусад болно. . Componentууд нь бүлгүүдэд хуваагдсанбайна. Component palette -ийн дээд талын tab -ыг харав уу?Дээр нь очоод click хийвэл өөр өөр component гарч ирнэ. Form дээрээcomponent -оо байрлуулахын тулд Component palette -ийн компонентынbutton дээр click хийж component -оо харагдах хэсэгт нь очоод click хийххэрэгтэй. Яаж хэрэглэх үр дүнд юу болох бол гэж санаа зовох хэрэггүй.Эдгээр нь хормын дотор болно.Шинэ нэр томъёо: Component гэдэг бол software -ийн 2 хэсгийг агуулсанба тусгай урьдчилан тодорхойлогдсон функц үйлдлийг нь гүйцэтгэжбайдаг. Жишээ нь: text label, edit control, list box.Обьектийн инспекторҮндсэн цонхны доор дэлгэцийн зүүн талд Object Inspector байна. Энэ ньcomponent -ийн properties ба events -үүдийг өөрчлөхөд ашиглагддаг.Delphi-тэй ажиллах явцдаа үргэлж Object Inspector -ийг та хэрэглэх болно.ObjectInspector нь 2 хэсэгтэй. Properties tab ба Events. Component -ийнpropertiesнь component -ийг яаж ажиллуулахыг удирдана. Жишээ нь : Color property-ийг өөрчлөхөд background color -нь өөрчлөгддөг.Шинэ нэр томъёо: property –нь component -ийн үйл ажиллагаагтодорхойлдог.Events хэсэг нь component -ын event -уудын жагсаалтуудаас бүрдэнэ.Component дотор үйлдэл хийхэд event -ийг ашигладаг. Жишээ ньcomponent дарагдахад event нь component дарагдсан байна шүү гэж тандхэлнэ.Та component -д хамаарах код бичиж болох ба тусгай үйлдлийггүйцэтгэхэд хэрэглэж болно.Шинэ нэр томъёо: event бол цонх ба хэрэглэгчтэй ажиллах component -ийн харилцан ажиллагааны үр дүн юм.Delphi –ийн ажлын талбарDelphi IDE -ийн үндсэн хэсэг нь ажлын талбар юм. Ажлын талбар нь FormDesigner -ийг үүсгэнэ. Энэ нь гайхмаар юм биш Form Designer нь өөрөөform үүсгэдэг. Delphi -д form гэдэг нь программын цонхыг хэлнэ. Form ньпрограммын үндсэн цонх байж болно, dialog box эсвэл цонхны янзбүрийнхэлбэртэй байж болно.Form Designer -ийг, form -ийг үүсгэх процессийн хэсэгт component -уудыгнь байрлуулах, зөөх зэргээр ашиглаж болно. Form Designer -ийн ардCodeEditor байдаг. Программын кодыг Code Editor дээр бичдэг. Application -ийгүүсгэн ажиллах явцад Object Inspector, Form Designer, Code Editor, баComponent palette -ууд нь харилцан уялдаатай байдаг. Та Delphi IDE-ийгмэддэг боллоо одоо ямар нэг зүйлийг хийж үзье.
  29. 29. Таны эхний програм: Hello WorldДэлгэцэнд Hello World гэж хэвлэх нь бүх програмчлалын хэлний сурахбичигт байдаг уламжлалт програм юм. Заавал ийм байх албагүй гэж бибоддог. Pascal хэлийг өмнө нь судалсан бол сайн юм. Та гайхаж магадгүйюм, Delphi танд одоогийн Windows program -ийн Hello World -д хүрэххамгийн хялбар замыг зааж өгнө.Програм бичихТа яг одоо Delphi -ийг ажиллуулж байгаа бол blank form -ийг харсан байхёстой. Form нь Form1 гэж нэрлэгдсэн байдаг. Form -ийн зүүн хэсэгт ObjectInspector form -ийн properties -үүдийг харуулна. Object Inspector -ийн titlebarдээр товш. Caption property нь идэвхжих ба cursor нь тэнд юу хийхийгхүлээнэ. Hello World! гэж бичин form -ийн caption -ийг өөрчил.Санамж: Properties -ийг өөрчлөх бол Delphi шууд өөрчлөлтийг ньгаргадаг.Caption -ийг өөрчлөх үед form -ийн window caption нь өөрчлөгдөж байгаагажигла.Toolbar дахь Run товчийг товш. Form нь гарахдаа caption нь Hello World!. -ийг гаргана. Энэ тохиолдолд ажиллаж байгаа программ нь бараг л blankform шиг харагдана.Програмыг өөрчлөхОдоо программаа жаахан өөрчилье. Hello World чинь байгаа бол Closebutton дээр товшин хаах хэрэгтэй. Form Designer дахин гарч ирэх ба form-ийг өөрчлөх боломжтой. Программыг илүү сайжруулахын тулд цонхнытөвдтекст нэмэх хэрэгтэй. Үүнийг хийснээр form -доо text label -ийг та нэмжөгнө.1. Эхлээд Component palette -ийн Standard хэсэгт товш.2. Label button -ийг товшоод form -ийн хаа нэгтээ товш. Labelcomponent нь form -ийн дотор байна.3. Object Inspector дээр буцаад оч. Label1 -ийн properties -ууд гарчирсэн байгаа. Caption property нь бас идэвхжсэн байгаа.4. Object Inspector эсвэл Caption property -ийн titlebar дээр товштэгээд Hello World! гэж бич. Form -дээрх label нь Hello World!. гэжгаргана.5. Үүнийг хийсэн бол label -ийн text -ийн хэмжээг өөрчилж чадна.Font property дээр 2 товш. Property нэмэлт font attribute -ийгхаруулахын тулд өргөн болно.6. Font -ийн Size property -ийг 24 болгоод form -дээрээ товш. Labelшинэ хэмжээтэй болно.
  30. 30. Програмаа хаахDelphi -д жаахан дурласан бол энэ нь бүхнээс илүү таны сонирхлыгтатна.Дараа нь юу хийх вэ гэвэл одоогийн прожектийг хаах хэрэгтэй. FileцэснийClose All -ыг сонго. Project1 -ийн өөрчлөлтийг хадгалах бол No -ийг сонго.Таны 2 дахь программ: Hello World, II хэсэгPascal -ийг судлахаасаа өмнө Delphi хэрхэн ажиллдаг талаар мэдэххэрэгтэй. Танд Pascal –ийн олон төрөл дээр ажиллахад энэ нь хэрэгболно.Энэ хэсэг нь Delphi -ийн үнэн хүчийг хальт агуулна.

×