Enviar búsqueda
Cargar
Delphi
•
4 recomendaciones
•
3,236 vistas
Baasandorj Ch
Seguir
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 183
Recomendados
Sedev 1
Sedev 1
Onon Tuul
Vizual programchilal cu lekts
Vizual programchilal cu lekts
E-Gazarchin Online University
программын хэл гэж юу вэ
программын хэл гэж юу вэ
cer147740
шийдвэр гаргах номиналь бүлгийн арга
шийдвэр гаргах номиналь бүлгийн арга
renchinbat
C cons
C cons
Onon Tuul
бодлого C++
бодлого C++
Баярсайхан Л
Diplom ep
Diplom ep
Baasandorj Ch
4 дүрс боловсруулалт - р.оюун
4 дүрс боловсруулалт - р.оюун
GeoMedeelel
Recomendados
Sedev 1
Sedev 1
Onon Tuul
Vizual programchilal cu lekts
Vizual programchilal cu lekts
E-Gazarchin Online University
программын хэл гэж юу вэ
программын хэл гэж юу вэ
cer147740
шийдвэр гаргах номиналь бүлгийн арга
шийдвэр гаргах номиналь бүлгийн арга
renchinbat
C cons
C cons
Onon Tuul
бодлого C++
бодлого C++
Баярсайхан Л
Diplom ep
Diplom ep
Baasandorj Ch
4 дүрс боловсруулалт - р.оюун
4 дүрс боловсруулалт - р.оюун
GeoMedeelel
Лекц-1
Лекц-1
bsuren_bn
For давталт ашиглах
For давталт ашиглах
Onon Tuul
Lec1 pragraming language
Lec1 pragraming language
Turuu Tsogt
тест нараа
тест нараа
UUUKA
Lec2 c++helnii undeslel
Lec2 c++helnii undeslel
Turuu Tsogt
Java lecture3
Java lecture3
Onobold Odgerel
Лекц 2 (Блок схем)
Лекц 2 (Блок схем)
Мөнхбаярын Цэцэнцэнгэл
Лекц 3 (Давталт)
Лекц 3 (Давталт)
Мөнхбаярын Цэцэнцэнгэл
10r angiin jishig daalgawar
10r angiin jishig daalgawar
Баярсайхан Л
Програмчлалын хэл
Програмчлалын хэл
Баярсайхан Л
алгоритмчлалын үндэс
алгоритмчлалын үндэс
enhsaran_tsahim
цахим тест
цахим тест
gganchimeg
лекц-1
лекц-1
Chinzorig Undarmaa
лекц 2
лекц 2
Dulguun Murun
Lab3 it101
Lab3 it101
BPurev
Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)
Мөнхбаярын Цэцэнцэнгэл
тооллын сис 10т 2т
тооллын сис 10т 2т
Narantungaa
си хэл 10
си хэл 10
enhsaran_tsahim
Business idea evaluation
Business idea evaluation
Jatindra Malik
Dev c хичээл
Dev c хичээл
Batzaya Dashdondog
C++ суулгах
C++ суулгах
enhsaran_tsahim
лекц-2
лекц-2
Chinzorig Undarmaa
Más contenido relacionado
Destacado
Лекц-1
Лекц-1
bsuren_bn
For давталт ашиглах
For давталт ашиглах
Onon Tuul
Lec1 pragraming language
Lec1 pragraming language
Turuu Tsogt
тест нараа
тест нараа
UUUKA
Lec2 c++helnii undeslel
Lec2 c++helnii undeslel
Turuu Tsogt
Java lecture3
Java lecture3
Onobold Odgerel
Лекц 2 (Блок схем)
Лекц 2 (Блок схем)
Мөнхбаярын Цэцэнцэнгэл
Лекц 3 (Давталт)
Лекц 3 (Давталт)
Мөнхбаярын Цэцэнцэнгэл
10r angiin jishig daalgawar
10r angiin jishig daalgawar
Баярсайхан Л
Програмчлалын хэл
Програмчлалын хэл
Баярсайхан Л
алгоритмчлалын үндэс
алгоритмчлалын үндэс
enhsaran_tsahim
цахим тест
цахим тест
gganchimeg
лекц-1
лекц-1
Chinzorig Undarmaa
лекц 2
лекц 2
Dulguun Murun
Lab3 it101
Lab3 it101
BPurev
Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)
Мөнхбаярын Цэцэнцэнгэл
тооллын сис 10т 2т
тооллын сис 10т 2т
Narantungaa
си хэл 10
си хэл 10
enhsaran_tsahim
Business idea evaluation
Business idea evaluation
Jatindra Malik
Dev c хичээл
Dev c хичээл
Batzaya Dashdondog
Destacado
(20)
Лекц-1
Лекц-1
For давталт ашиглах
For давталт ашиглах
Lec1 pragraming language
Lec1 pragraming language
тест нараа
тест нараа
Lec2 c++helnii undeslel
Lec2 c++helnii undeslel
Java lecture3
Java lecture3
Лекц 2 (Блок схем)
Лекц 2 (Блок схем)
Лекц 3 (Давталт)
Лекц 3 (Давталт)
10r angiin jishig daalgawar
10r angiin jishig daalgawar
Програмчлалын хэл
Програмчлалын хэл
алгоритмчлалын үндэс
алгоритмчлалын үндэс
цахим тест
цахим тест
лекц-1
лекц-1
лекц 2
лекц 2
Lab3 it101
Lab3 it101
Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)
тооллын сис 10т 2т
тооллын сис 10т 2т
си хэл 10
си хэл 10
Business idea evaluation
Business idea evaluation
Dev c хичээл
Dev c хичээл
Similar a Delphi
C++ суулгах
C++ суулгах
enhsaran_tsahim
лекц-2
лекц-2
Chinzorig Undarmaa
Лекц 2
Лекц 2
Chinzorig Undarmaa
C# hicheelin lekts
C# hicheelin lekts
Алдарболд Э.
Lecture1
Lecture1
ganzorigb
Sw206 lec
Sw206 lec
Ganbaatar ch
Lecture13,14
Lecture13,14
orgil
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Batjargal Batbold
Windows1
Windows1
nyamka0928
Lekts1
Lekts1
daalt209
Lekts1
Lekts1
daalt209
Lekts1
Lekts1
daalt209
Lec1
Lec1
naranbaatare
Pdf
Pdf
unuzaya1
Lekts 3
Lekts 3
nyamka_09
Windows1
Windows1
nyamka0928
Windows1
Windows1
nyamka0928
004 компьютерын програм хангамж
004 компьютерын програм хангамж
Bobby Wang
203lab1
203lab1
BPurev
Lekts4
Lekts4
daalt209
Similar a Delphi
(20)
C++ суулгах
C++ суулгах
лекц-2
лекц-2
Лекц 2
Лекц 2
C# hicheelin lekts
C# hicheelin lekts
Lecture1
Lecture1
Sw206 lec
Sw206 lec
Lecture13,14
Lecture13,14
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Windows1
Windows1
Lekts1
Lekts1
Lekts1
Lekts1
Lekts1
Lekts1
Lec1
Lec1
Pdf
Pdf
Lekts 3
Lekts 3
Windows1
Windows1
Windows1
Windows1
004 компьютерын програм хангамж
004 компьютерын програм хангамж
203lab1
203lab1
Lekts4
Lekts4
Delphi
1.
Windows үйлдлийн системийн
ерөнхий зохион байгуулалтын талаар товчхон Windows-н өмнөх хувилбарууд MS-DOS үйлдлийн системтэй сайн зохицон ажилладаг боловч үйлдлийн систем гэсэн утгандаа бүрэн хүрч чадахгүй байсан бол өнөөгийн Windows95 өөрөө 1 цогц үйлдлийн системийг илэрхийлж чадах болжээ. Windows95 үйлдлийн систем нь ерөнхийдөө 3 дэд системд хуваагддаг. 1. Win KERNEL 2. Win GDI 3. Win USER Windows95 нь 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 юм. KERNEL KERNEL нь windows-н доод түвшиний динамик санах ойн функцүүдээр хангаж өгч байдаг үйлдлийн системийн цөм юм. Энэ нь 16 ба 32 битийн windows-н үйлдлүүд тохирох үйлчилгээг хангадаг. GDI GDI нь graphic device interface гэсэн товчилсон үг. Энэ нь Windows95-н график боломж болон дэлгэцэнд харуулах өнгө, хэлбэр дүрс, resolution-г хангаж байдаг. Win32 –т байдаг бүх шинэ боломжуудыг агуулна. USER USER нь дэлгэцийн диспетчер юм. Windows-н интерфейсийг үүсгэх, удирдах функцүүдийн цргц юм. Жишээ нь Хэрэглэгч хэд хэдэн MS-DOS –н Prompt гарган ашиглаж болно. Хэрэглэгч арай илүү виртуалчилах боломжийг хангадаг хэд хэдэн давуу тал гарч ирлээ. Системийн виртуаль машин Windows-н API функцийн төвшин Дээр харлуулсан орон зайг хамтарч эзэмшинэ. Энэдээс Windows95 нь 16 битийн программуудад тусад нь орон зай гарган өгч орчинийг нь бүрдүүлж өгдөг нь харагдаж байна. Windows 32 bit Windows 32 bit 16 bit 16 bit Бүрхүүл
2.
Windows-н дэд систем Win
KERNEL KERNEL Win 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.
бол энэ нь
бүгдийг судлах хэрэгтэй. 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, list boxes, 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 -ийг та хэрэглэх болно. Object Inspector нь 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.
ийн харилцан ажиллагааны
үр дүн юм. Delphi –ийн ажлын талбар Delphi IDE -ийн үндсэн хэсэг нь ажлын талбар юм. Ажлын талбар нь Form Designer -ийг үүсгэнэ. Энэ нь гайхмаар юм биш Form Designer нь өөрөө form үүсгэдэг. Delphi -д form гэдэг нь программын цонхыг хэлнэ. Form нь программын үндсэн цонх байж болно, dialog box эсвэл цонхны янз бүрийн хэлбэртэй байж болно. Form Designer -ийг, form -ийг үүсгэх процессийн хэсэгт component -уудыг нь байрлуулах, зөөх зэргээр ашиглаж болно. Form Designer -ийн ард Code Editor байдаг. Программын кодыг 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 -ийн зүүн хэсэгт Object Inspector 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!. - ийг гаргана. Энэ тохиолдолд ажиллаж байгаа программ нь бараг л blank form шиг харагдана. Програмыг өөрчлөх Одоо программаа жаахан өөрчилье. Hello World чинь байгаа бол Close button дээр товшин хаах хэрэгтэй. Form Designer дахин гарч ирэх ба form- ийг өөрчлөх боломжтой. Программыг илүү сайжруулахын тулд цонхны төвд текст нэмэх хэрэгтэй. Үүнийг хийснээр form -доо text label -ийг та нэмж өгнө. 1. Эхлээд Component palette -ийн Standard хэсэгт товш. 2. Label button -ийг товшоод form -ийн хаа нэгтээ товш. Label component нь 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.
Програмаа хаах 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.
button -ийн OnClick
event дээр үүсгэнэ. Үүсгэсэн код нь дараах байдалтай байна procedure TForm1.Button1Click(Sender: TObject); begin end; 2. Засварлагч курсор нь begin ба end гэсэн зарлагааны хооронд байдаг ба таныг код бичихийг хүлээж байдаг. procedure TForm1.Button1Click(Sender: TObject); begin Label1.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.
Энэ нь 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 нь үндсэн form unit -тэй байх ба About box -ийн unit байна. Тэмдэглэл: "Delphi GUI application." нь console mode application -ийн GUI application -ээс ялгаатай байдаг. Console mode application бол console window (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.
Delphi unit нь
урьд тодорхойлогдсон форматыг дагах ёстой. Unit урьд тодорхойлогдсон форматанд байх ба энэ нь хөрвүүлэгч unit -ийг уншиж чадах ба unit -ийн кодыг компиляц хийж чадна. Delphi project unit нь unit - ийн нэртэй програмын түлхүүр үгийг агуулдаг ба кодын хэсэг нь begin ба end гэсэн түлхүүр үгээр тэмдэглэгддэг. Та үндсэн unit -ийг Delphi -ийн үндсэн цэсээс View | Project Source -ийг сонгон харж болох ба default Delphi project -ийн project source unit -нь дараах байдалтай байна. Тэмдэглэгээ: Доорх мөрийн дугаарууд нь unit -ийн өөрийнх нь хэсэг биш болно. Үүнийг зөвхөн дарааллыг заахад ашигласан. Заримд нь ийм дугаар байгаа ба заримд нь байхгүй болно. Аль алинд нь Паскал хэл нь бусад хэлүүд шиг мөрийн дугаар авдаггүй гэдгийг ойлгох хэрэгтэй. (онцолбол, BASIC). Cтандарт DELPHI PROJECT –ийн PROJECT SOURCE 01: program Project1; 02: 03: uses 04: Forms, 05: Unit1 in ‘Unit1.pas’ {Form1}; 06: 07: {$R *.RES} 08: 09: begin 10: 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 бүлгээр яригдана. “Creating Applications 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 код нь үүснэ. Хоосон UNIT 01: unit Unit2; 02: 03: interface 04: 05: implementation 06: 07: end.
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 жагсаалтийг харуулав. uses Forms, 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 жагсаалтууд ижил: uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Unit нь uses жагсаалт нь ямар ч тоотой байж болно. Тэмдэглэгээ: Зарим тохиолдолд Delphi нь танд uses жагсаалтанд unit -ийг нэмж өгдөг. Энэ нь File | Use Unit цэсээр хийгддэг. Энэ онцлог нь IV бүлгээр нарийвчлан яригдана. Интерфейс хэсэг
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 функцтэй unit unit Unit2; interface procedure DoSomething; implementation procedure 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; interface const AppCaption = ‘My Cool Program 1.0’; procedure DoSomething; implementation
11.
const BaseX = 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 -д хэрэгтэй байгаа ба энэ төрөл нь дахин дахин хэрэглэгдэнэ. Та доорх шиг зарлаж болно. Type TMyArray = array [0..19] of Byte; Та одоо array [0..19] гэж бичихийн оронд TMyArray гэсэн төрлийг ашиглах боломжтой. “Var “Түлхүүр үг Шинэ нэр томъёо: Энэ түлхүүр үг нь хувьсагчууд байдаг кодын хэсгийн зарлалтын үед хэрэглэгддэг. Энэ түлхүүр үгийг та элдэв хувьсагчуудыг зарлахад хэрэглэж болно. Var - ийг зарлах хэдэн байрлал байдаг. Unit -ийн түвшинд var -ийг та зарлаж болно. Мөн процедур, функцийн түвшинд var -ийн хэсэг байж болно. unit Unit2; http://www.csms.edu.mn/cheri/ interface type TMyArray = array [0..19] of Byte; const AppCaption = ‘My Cool Program 1.0’; var X : Integer; MyArray : TMyArray; procedure DoSomething; implementation const BaseX = 20; BaseY = 200; procedure DoSomething; begin { Code for DoSomething goes here. } end; end. Const түлхүүр үг шиг, var -т бас олон хэрэглээ байдаг. Энэ нь бас функц, процедурын параметр, хувьсагч параметруудыг зарлахад хэрэглэгддэг. Тэмдэглэгээ: var -аар тодорхойлогдсон хэсэг нь түлхүүр үгээр эхэлж, дараагийн unit -ийн түлхүүр үгээр дуусна. Кодын тайлбар Паскал хэл рүү нарийвлан орохын өмнө кодын тайлбарын тухай товч танилцуулъя. Тайлбар нь таны source кодод текст хэлбэрийн тайлбар өгөх зорилготой байна. Тайлбар нь код юу хийхийг тодорхойлоход хэрэглэгдэх ба зохиогчийн эрхийн мэдээллийг хангах, өөртөө эсвэл бусдад тэмдэглэл хийхэд л ашиглагддаг. Тайлбар нь ялгаатай 3 аргаар тодорхойлогддог. Дараах зүйлүүд нь бүгд
12.
шугмын хувьд хүчинтэй
байна. { Don't forget to free this memory! } { ADTAPI.PAS 2.50 Copyright (c) TurboPower Software 1996-98 } (* Оюутнуудаа энэ кодыг засах хэрэгтэй *) // Энэ үнэн зэрлэг код { Энэ код дээр дараа тухтай ажиллана } Магадгүй Delphi –д ихэнх тайлбарын төрөл нь угалзан хаалтыг хэрэглэдэг. “{“ нь эхлэх үед тайлбарыг, ”}” –нь тайлбарын төгсгөлд хэрэглэгдэнэ. Тайлбарын өөр нэг нь (*тайлбар эхлэх,ба *) байдаг. Энд бас нэг тайлбарын тэмдэг байдаг: (*/*) тайлбарын тэмдэглэгээ нь том хэмжээний тайлбарыг хийхэд болно. Эдгээр тайлбарын төрлүүд нь нэг эсвэл олон мөрт тайлбарыг хийхэд ашиглагдана. Тэмдэглэгээ: Угалзан хаалт нь Паскалд өөр хэрэглээтэй байдаг. $ -ийг хэрэглэх үед хаалт нь компиляторын директорыг заадаг. Компиляторт compiler hints үүсгэхгүй гэж зааж өгөн source коддоо {$HINTS OFF} гэж бичих хэрэгтэй. Компилятор энэ мөрийг хараад unit -д дохио өгөхөө {$HINTS ON} –тэй тулаад зогсооно. Тайлбарын 3 дахь хэлбэр нь давхар зураас байдаг. Энэ нь голдуу С - хэлбэрийн тайлбар гэгддэг яагаад гэвэл С ба С++ үүнийн хэрэглэдэг. Энэ хэлбэр нь нэг мөрөнд хэрэглэгддэг. Delphi -д энэ хэлбэр ажилладаггүй гэдгийг хэлье. Тэмдэглэгээ: Энд угалзан хаалт хэрэглэсэн байгаа. ”//” -ийг богино тайлбарт болон тестийн зорилгоор ашигласан . Аль ч тайлбарлагдсан текст нь компиляторт хамааралгүй байдаг. Хэрэв та default Delphi IDE settings -ийг ашиглаж байгаа бол бүх тайлбар мөр нь бичмэл хөх текст байгаа. Энэ нь тайлбарыг хурдан ялгахад дөхөм байдаг. Тэмдэглэгээ: Хэрэв та багийн бүрэлдэхүүнтэй програмчлалын ажил хийдэг бол та хамтран ажиллагчдынхаа код, бичлэгийг уншдаг байх. Кодонд товч тайлбар хийх нь аль ч програмистад цагийг нь хэмнэнэ. Та ганцаараа ажилладаг гэсэн ч тайлбар бичих нь чухал. Та бичсэн кодоо ямар амархан мартаж байгаагаа хараад л гайхна. Сайн кодын тайлбар нь таны хамтрагчийн цагийг хэмнээд зогсохгүй таныг ч бас аварна. Кодын тайлбар бичихээ бүү март! Хувьсагчид Хувьсагчид нь хэрэглэгдэхээсээ өмнө зарлагдсан байдаг. Та хувьсагчдыг кодын тусгай хэсэгт зарлах ба var түлхүүр үгээр тодорхойлох хэрэгтэй. Жишээ нь: var X : Integer; { X хувьсагч нь integer төрөлтэй } Y : Integer; { Байршлын y утга } Өмнө нь “var” түлхүүр үгийн тухай Паскалийн unit -ийн нэр томъёонд дурдсан билээ. Тэр хэсэгт unit -д хувьсагчуудыг хэрэглэдэг ба unit -ийн var хэсэгт зарладаг гэж үзсэн билээ. Тэр нь үнэн ч та бас функц, процедуруудыг энэ хэсэгт зарлаж болно. Функц, процедурт хувьсагчуудыг зарлах боломжийг энэ нь танд олгож байгаа болно. Доорх жишээ нь процедурт var хэсэг байна. procedure TForm1.Test; var S : string; begin S := ‘Hello World!’; Label1.Caption := S; end; Та хувьсагчаа зарласны дараа үүнийгээ санах ойд өгөгдлийг зохицуулахад хэрэглэж болно. Энэ мэдээж танд нэг их сэтгэгдэл төрүүлэхгүй байх гэхдээ хэдэн жишээг танд танилцуулъя. Дараах кодын хэсэг нь X, Y гэж зарлагдсан хувьсагчуудыг хэрэглэсэн. Мөр болгоны эцэст байгаа тайлбар
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; { үсэг болон тоо ашигласан } САНАМЖ: Паскал хэл нь тохиолдлыг нарийн мэдэрч чаддаггүй. Жишээ нь: var XPos : Integer; { ...later } XPos := 20; XPOS := 200; xpos := 110; XpoS := 40; Паскаль хэл нь С ба С++ хэлтэй харьцуулахад ойлгомж муутай байж болох юм. Гэхдээ та удахгүй үүний ялгааг олж, ашиглаж сурах болно. САНАМЖ: Паскал хэл нь тохиолдлыг нарийн мэдэрч чаддаггүй боловч та програмдаа тэмдэгт мөртэй ажиллахдаа том үсэг ашиглаж сурах хэрэгтэй. Обьект Паскал хэлний Өгөгдлийн төрөл Шинээр: Объект Паскалийн өгөгдлийн төрөл нь санах ойд мэдээллийг хадгалдаг хөрвүүлэгч /compiler/ аргыг тодорхойлсон. Зарим програмчилалын хэлэнд хувьсагч олон төрлийн утгатай байж болдог. Жишээ нь доорх BASIC код юм. X = -1; X = 1000; X = 3.14; BASIC хэлэнд тооны төрөл хэмжээг тааруулахын тулд санах ойн зохицуулалтад анхаарах хэрэгтэй. Хувьсагчийг зарлах Паскал хэлэнд хувьсагчийг програмд ашиглахаасаа өмнө төрлийг нь
14.
зарлаж өгөх ёстой. var X1
: 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.
Дээрх хүснэгтэд үзүүлснээр
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 нь бутархай тоон утгыг илэрхийлдэггүй. Жишээ нь дараахь кодод буруу зарласан байна. var X : Integer; { Дараа нь... } X := 3.75; Энэ үед алдааг тань Паскал хэл тэр дор нь танд хэлж өгнө. Харин та үүнийг мэдсэнээр float төрөл нь Windows орчинд ямар их ашиглагдахыг анзаарах болно. Өгөгдлийн төрлүүдийн хоорондох хөрвүүлэлт Объект Паскаль нь өгөгдлийн төрлүүдийн хооронд хөрвүүлэлт хийж чаддаг. Жишээ нь: var Res : SmallInt; Num1 : Integer; Num2 : Integer; { Дараа нь... } Num1 := 200; Num2 := 200; Res := Num1 * Num2;
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); var X : SmallInt; begin X := 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 нь хөрвүүлэлт хийж чаддаггүй. Сompiler error нь Integer Real хоёр хоорондоо хамааралгүй төрлүүд гэж мэдээлнэ. Сompiler error нь тодорхой төрлүүдэд хадгалагддаггүй утгуудыг зааж өгнө. Жишээ болгон доорх кодыг авч үзье. var X : Byte; begin X := 1000; end; Тогтмолыг зарлах Сompiler error –г харуулж байна. Танд Х хувьсагчийн утгыг 1000 гэж сонгож болохгүйг Сompiler нь мэдээллэх бөгөөд учир нь Х хувьсагч нь Byte хэмжээтэй ба Byte нь 0 - 255 хүртэл хэмжээтэй байдаг. Зөвлөгөө: Сompilе хийхдээ санамж анхааруулга алдааны мэдээлэл зэргийг сайтар дагах хэрэгтэй. Тэдгээр нь програмын кодын алдаа хэрэгцээтэй зарим мэдээллүүдийг хэлж өгдөг. Обьект Паскалийн Оператор Хүснэгт 1.2 Түгээмэл ашиглагддаг операторууд.
17.
18.
Операторуудын хувьд байнга
хэрэглэгдэж байдаг хэсэг нь байхад бас хааях ашиглагддаг операторууд ч байдаг. Аnd, or, not зэрэг түлхүүр үгс нь логикийн болон битийн гэсэн төрөлтэй байдаг. Жишээ нь if (Started = True) and (X > 20) then Z := X and Y; Дээрх жишээнд and үйлдэл нь хоёр янзаар хэрэглэгдэнэ. Тогтмол Өмнө хэлсэнчлэн тогтмол нь утгын хувьд өөрчлөгдлөггүй. Хувьсагчийн утгыг програм бичигч өөрчилж чаддаг бол тогтмолын утгыг чаддаггүй. Тогтмолыг зарлахдаа const түлхүүр үгийг ашигладаг. const DefaultWidth = 400; DefaultHeight = 200; Description = ‘Something really cool.’; Тогтмолыг зарлахдаа (:=) тэмдэг бус = тэмдэгийг ашигладаг. Мөн ямар ч өгөгдлийн төрлийг онцолж заадаггүй. Массив
19.
Массив буюу array
нь бүлэг утгын цогц гэж хэлж тодорхойлж болно. Өөрөөр хэлбэл нэг төрөлтэй хэсэг элемент юм. Зарлах үед түүнийг санах ойн тодорхой зайд байрлуулдаггүй ба зөвхөн заагчийн эхлэх утга тогтоогддог. Массивыг дараах хэлбэрээр зарладаг. var MyArray : 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 төрөлтэй массив үүсгэхийн тулд кодыг дараахь хэлбэрээр бичнэ. var MdArray : array[0..2, 0..4] of Integer; Энэ массив санах ойг 60 байтаар ачаалж байна. Массивын утга нь урд нь санах ойд байрлаж байсан санамсаргүй өгөгдөл юм. Мөн индекс нь тэгээс эхэлдэг. Массивийн элементүүдийг энгийн масив хэлбэрээр ашиглаж болох ба [ ] хаалтын тусламжтай дараахь хоёр байдлаар ашиглаж болно. Үр дүн нь ижил гарна. X := MdArray[1][1] + MdArray[2][1]; X := MdArray[1, 1] + MdArray[2, 1]; САНАМЖ: Массивийн элементийн тооны хязгаарт байхгүй индекс гарч ирвэл алдаа заана. Доорхи жишээнд үзүүлэв. var MyArray : array[0..4] of Integer; X : Integer; begin X := MyArray[3] + MyArray[5]; { 5 дугаартай индекс байхгүй. } end; Тэгэхээр массивийн элементийн хязгаарыг анх зарлаж өгөх хэрэгтэй. Жишээ нь 10*20 хэмжээтэй массив үүсгэе. var MyArray : array[10..20] of Integer; 10 баганатай 20 мөртэй хүснэгт мэтээр төсөөлье. const myArray : array[0..4] of Integer = ( -200, -100, 0, 100, 200 ); Их ба бага функц Эдгээр функцуудыг массивт олон дахин ашиглаж болно. Хувьсагчийн утгын дээд доод хязгаарыг массивт энгийн байдлаар зарлаж өгдөг. Бага /Low/ функц нь доод хязгаараас буцах үйлдэл /return/ хийдэг. Харин Их /High/ функц нь мөн адил массивын дээд хязгаараас буцдаг. var X, 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;
20.
for I :=
Lower to Upper do X := X + MyArray[I]; { Х хувьсагч дээр ямар нэг зүйл хийнэ. } end; Массивийн хязгаарын гаднах утга нь ойртоход их ба бага функц тодорхой биш хэрэглэгддэг. Динамик Массив Delphi 4 -т массивийг динамикаар оруулдаг. A динамикийн массивийн эхний хэмжээг гаднаас зарласан ба массивийг зарлах цагт хэмжээг нь тавьж агуулдаггүй. Дараа нь SetLength -ийн хэмжээг заан хэрэглэдэг. Жишээ нь: var BigArray : array of Integer; { хэмжээ олгоогүй байна } X : Integer; begin X := GetArraySize; { хэрэгтэй хэмжээг тодорхойлогч функц } SetLength(BigArray, X); { динамикаар хэмжээ тогтоож байна } { одоо BigArray –г хэргэлнэ} end; Шинээр : A динамик массив нь массиваа санах ойд ачаалдаг. A динамик массив нь програмд их бага хэмжээгээр хэрэглэгддэг. Массивийн индекс бүрд элемент харгалзуулан байрлуулах нь ач холбогдолтой. Санах ойд 10 integer хангалттай байлгах хэрэгтэй гэвч бусад нь магадгүй 1000 integer хангалттай хэрэглэдэг. Массиваа Copy функцээр байрлуулан хэрэглэж чадна. Жишээ нь массив нь 100 ба 200 хэмжээтэй элемент хэрэглэдэг : Copy(BigArray, 200); Массивдаа утгыг нь хадгалсан ба массивийн хэмжээ нь 100 -с 200 элемент болон өссөн. Олон хэмжээст dynamic массивыг үүсгэх нь нэг хэмжээст массивыг үүсгэхтэй бараг адилхан байдаг. Доор 2 хэмжээст массивыг үүсгэв. Код нь: var BigArray : array of array of Integer; begin SetLength(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 -д зарлагддаг. var S1 : ShortString; { 255 тэмдэгт } S2 : string[20]; { 20 тэмдэгт } String manipulation нь short төрөлтөй учир нь санах ой дахь string -ийн хэмжээг өөрчлөхгүй. Богино string хуучин төрлийг нь бодох ба урт string оруулна. Богино strings нь урт byte -тай учир нь string -ийн анхны элемент нь уртаа агуулдаг. (тоо болон тэмдэгт). Short string -ийн анхны элементийн утга нь string -ийнхээ уртыг тодорхойлдог. Жишээ нь : var S : ShortString; { 255 тэмдэгт } Len : Integer; begin S := ‘Hello’; Len := Ord(S[0]);
21.
end; Дээрх жишээнд string
-ийн уртыг S[0] утга тодорхойлж байна. Мөн функцын уртыг тодорхойлж чадна. Функцын урт нь bit байна. Санамж : Ord функцын утгыг Char төрөл, integer утгаар хувиргаж хэрэглэнэ. (дараалсан утга) Мөн Ord функц нь жагсаалттай хамт хэрэглэгддэг. Хэрэв та short string -ийн эхний элементийг хэрэглэх бол түүний урт нь string байна. Тэгэхлээр програмын орчинд түүнийг хэрэглэх шаардлага гарч ирж байна. Эхлэн суралцагч таны хувьд програм техникийн дэвшилтэт технологид 0 байтын short string -ийг нэмж судлахыг санал болгож байна. Long String long string төрөл нь string объектэд динамик байдлаар байрладаг. Хэмжээний хязгаар нь зөвхөн ачаалагдсан санах ойгоор тодорхойлогддог. Объект Паскал нь санах ойд string -ийг байршуулж бас устгаж хэрэглэдэг. Long strings нь харин маш их уян хатан чанартай бөгөөд заримдаа short string шиг удаан болхи мэт нарийн төвөгтэй тэмдэгтүүдээ ачаалдаг. Хэрэв үр дүн тань шүүмжлэлтэй санагдвал long string-ийг ашиглаарай. Динамикаар санах ойд байрлуулснаар long string нь тэмдэгт мөрийн гарчгийг өөрчлөх боломжтой болсон Доорх жишээнд string нь түлхүүр үг, параметрийн хэмжээгүй зарлагдсан байна. var S : string; { динамикаар байрласан long string } Учир нь string нь динамикаар байрласанд оршино. Харин танд одоо үйлдлийн хэсэгт өөрчлөлт хийж чадах боломж үлдсэн шүү. Ер нь long string нь хэрэглэхэд маш энгийн ба өөрөөр хэлбэл тэмдэгт мөрөө санах ойгоос ачаалах үед зай завсар гэх мэтийн санаа зовоосон асуудал гарахгүй. Учир нь энэ бүгд илүүчгүй дутуучгүй бүгд автомат юм. Long string нь 0 элементийг зөвшөөрдөггүй бөгөөд хэрэв түүнд хандвал үр дүн тань compiler error буюу алдаатай гарна гэсэн үг. SetLength функцийг ашиглавал зохистой. Wide String Unicode төлөв байдалтай 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 - ийн жишээ код: var Text : string; Caption : string; begin Text := ‘Шалгаж байна.’; Caption := ‘Текст мэдээлэл’; MessageBox(0, PChar(Text), PChar(Caption), 0); end; Дээрх жишээнд Pchar -ыг Pascal -ын long string, null-terminated string ашиглан үзүүллээ. Харин та өөрөө Pchar -ыг үргэлжүүлж судлаарай.
22.
var Text : PChar; begin Text
:= ‘Шалгаж байна.’; MessageBox(0, Text, ‘Message’, 0); end; Pascal -ын string нь хүчирхэг төдийгүй хялбарханаар хэрэглэгдэж байна. Та үүнээс олон удаа хэрэглэх боломж байхгүй. Pchar -ыг long string, nullterminated string руу хөрвүүлж болдгийг дээрх жишээ харууллаа. Төгсгөлд нь та массивт Char төрлийн өгөгдлийг Pchar ашиглан байршуулж үйлдэл хийж сурлаа. var Text : array [0..20] of Char; begin Text := ‘Шалгаж байна.’; MessageBox(0, Text, ‘Message’, 0); end; Windows API функцийг дуудахдаа null-terminated string -ийг параметраар ашиглавал илүү тохиромжтой. Үндсэн Тэмдэгт мөр /String Basics/ Pascal нь нилээн хэдэн string төрлийн элементүүдтэй. + Operator var S1 : string; S2 : string; begin S1 := ‘SW210 Kim’; S2 := ‘Reisdorph’; Label1.Caption := S1 + ‘ ‘ + S2; end; Дээрх кодод S1, S2 хувьсагчдийн үр дүнг label -ын Caption property –ээр дамжуулан харууллаа. Одоо арай өөр жишээ үзье: var X : Integer; begin X := 199; Label1.Caption := ‘The result is: ‘ + IntToStr(X); end; Энд IntToStr функц ашиглан 199 гэсэн тоог тэмдэгт мөр болгон хувиргалаа. Subscript Oператор Тэмдэгт мөрөөс subscript ([ ]) –г ашиглан элемент бүрийг нь салган авч болдог. var S1 : string; S2 : Char; begin S1 := ‘Hello World!’; S2 := S1[1]; Label1.Caption := S2; end; Дээрх жишээнд S2 хувьсагч нь Char төрлийн байна. Үр дүнд Н гэж Label1.Caption дээр гарна. S[0] -ийг эхний элемент гэж long string, wide string -үүд үздэггүй. String -ийн контрол буюу тохируулга Object Pascal нь String -ийн контрол буюу тохируулгыг шинээр нэвтрүүлж өгсөн. Ихэвчлэн хэвлэдэггүй тэмдэгт мөрд ашигладаг. Та control character хийхдээ # тэмдэг ашиглах ёстой. Доорх жишээнд (ASCII 27) гэж тэмдэглэжээ.
23.
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’ then OpenFile(FileName) else ReportError; String-Manipulation ФУНКЦ Ихэвчлэн ашиглагддаг функцуудын тайлбарыг доорх 1.4 хүснэгтэд үзүүлэв. ХҮСНЭГТ 1.4. ТЭМДЭГТ МӨРИЙН ФУНКЦ БА ПРОЦЕДУРУУД
24.
САНАМЖ: Нэмэлт функцуудын
талаар мэдээллийг Delphi програмын help руу орж additional дотроос олж аварай. Одоо жишээн дээр StrToInt function туршиж үзье. Value := StrToInt(Edit1.Text); Өөр StrToXXX функц (StrToFloat, StrToDate гэх мэт) дээрх замын дагуу ажиллана. Format function нь тэмдэгт мөр ба нэмэлт аргументэд хэвшүүлэлт хийдэг. Доорх жишээн дээр үр дүнг нь үзье. var S : string; X : Integer; begin X := 10 * 20; S := Format(‘Үр дүн: %d’, [X]); Label1.Caption := S;
25.
end; Үр дүн: 200 Энэ
жишээнд %d тэмдэгт нь integer утгыг илэрхийлж байна. Мөн бусад тэмдэгтэй хувьсагчаар дамжуулан ажиллана. Жишээ нь: var X : Integer; Y : Integer; begin X := 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 KERNEL 2. Win GDI 3. Win USER Windows95 нь 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 битийн
26.
интерфейс юм. Windows95
үйлдлийн систем нь олон бодлогын аргад үндэслэн дээрх application-уудыг жолооддог. Бүрхүүл гэдэг нь хэрэглэгчийг системтэй харилцах үйлдлийг хангаж байдаг 32 битийн Windows application юм. Windows95-н бүрхүүл нь windows3.x-н программ менежер, файл менежер зэргийг нэгтгэсэн application юм. KERNEL KERNEL нь windows-н доод түвшиний динамик санах ойн функцүүдээр хангаж өгч байдаг үйлдлийн системийн цөм юм. Энэ нь 16 ба 32 битийн windows-н үйлдлүүд тохирох үйлчилгээг хангадаг. GDI GDI нь graphic device interface гэсэн товчилсон үг. Энэ нь Windows95-н график боломж болон дэлгэцэнд харуулах өнгө, хэлбэр дүрс, resolution-г хангаж байдаг. Win32 –т байдаг бүх шинэ боломжуудыг агуулна. USER USER нь дэлгэцийн диспетчер юм. Windows-н интерфейсийг үүсгэх, удирдах функцүүдийн цргц юм. Жишээ нь Хэрэглэгч хэд хэдэн MS-DOS –н Prompt гарган ашиглаж болно. Хэрэглэгч арай илүү виртуалчилах боломжийг хангадаг хэд хэдэн давуу тал гарч ирлээ. Системийн виртуаль машин Windows-н API функцийн төвшин Дээр харлуулсан орон зайг хамтарч эзэмшинэ. Энэдээс Windows95 нь 16 битийн программуудад тусад нь орон зай гарган өгч орчинийг нь бүрдүүлж өгдөг нь харагдаж байна. Windows 32 bit Windows 32 bit 16 bit 16 bit Бүрхүүл Windows-н дэд систем Win KERNEL KERNEL Win USER Win GDI Файл удирдах дэд систем
27.
Сүлжээ удирдах дэд
систем Үйлдлийн системийн үйлчилгээ Виртуал машин удирдах дэд систем Хөтлөгч хэрэгслүүд Бүрхүүл Энэ нь хэд хэдэн системийн удирдлагыг хэрэглэх нөөцүүдийн боломжуудаар хангах программ юм. 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 хүртэл приоритеттой байдаг ба үүнийг үндсэн диспетчер бодоод
28.
квантын диспетчер лүү
гаргана. Хэрвээ процессийн хугацааны квант 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 -ийг харах болно.
29.
Delphi IDE нь
3 хэсэгт хуваагдана. Дээд хэсгийг нь үндсэн цонх гэдэг. Энэ нь toolbars болон Component palette -ийг агуулдаг. Delphi toolbars нь compiling project, хадгалах, нээх үйлдлүүдийг нэг товшилтоор гүйцэтгэх боломжийг танд олгоно. Component palette нь wide array of components агуулдаг ба түүнийг form дээр чирч тавьж болно. Component -ууд нь text labels, edit controls, list boxes, 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 -ийг та хэрэглэх болно. Object Inspector нь 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 -ийн үндсэн хэсэг нь ажлын талбар юм. Ажлын талбар нь Form Designer -ийг үүсгэнэ. Энэ нь гайхмаар юм биш Form Designer нь өөрөө form үүсгэдэг. Delphi -д form гэдэг нь программын цонхыг хэлнэ. Form нь программын үндсэн цонх байж болно, dialog box эсвэл цонхны янз бүрийн хэлбэртэй байж болно. Form Designer -ийг, form -ийг үүсгэх процессийн хэсэгт component -уудыг нь байрлуулах, зөөх зэргээр ашиглаж болно. Form Designer -ийн ард Code Editor байдаг. Программын кодыг Code Editor дээр бичдэг. Application -ийг үүсгэн ажиллах явцад Object Inspector, Form Designer, Code Editor, ба Component palette -ууд нь харилцан уялдаатай байдаг. Та Delphi IDE-ийг мэддэг боллоо одоо ямар нэг зүйлийг хийж үзье.
30.
Таны эхний програм:
Hello World Дэлгэцэнд Hello World гэж хэвлэх нь бүх програмчлалын хэлний сурах бичигт байдаг уламжлалт програм юм. Заавал ийм байх албагүй гэж би боддог. Pascal хэлийг өмнө нь судалсан бол сайн юм. Та гайхаж магадгүй юм, Delphi танд одоогийн Windows program -ийн Hello World -д хүрэх хамгийн хялбар замыг зааж өгнө. Програм бичих Та яг одоо Delphi -ийг ажиллуулж байгаа бол blank form -ийг харсан байх ёстой. Form нь Form1 гэж нэрлэгдсэн байдаг. Form -ийн зүүн хэсэгт Object Inspector 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!. - ийг гаргана. Энэ тохиолдолд ажиллаж байгаа программ нь бараг л blank form шиг харагдана. Програмыг өөрчлөх Одоо программаа жаахан өөрчилье. Hello World чинь байгаа бол Close button дээр товшин хаах хэрэгтэй. Form Designer дахин гарч ирэх ба form- ийг өөрчлөх боломжтой. Программыг илүү сайжруулахын тулд цонхны төвд текст нэмэх хэрэгтэй. Үүнийг хийснээр form -доо text label -ийг та нэмж өгнө. 1. Эхлээд Component palette -ийн Standard хэсэгт товш. 2. Label button -ийг товшоод form -ийн хаа нэгтээ товш. Label component нь 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 шинэ хэмжээтэй болно.
31.
Програмаа хаах Delphi -д
жаахан дурласан бол энэ нь бүхнээс илүү таны сонирхлыг татна. Дараа нь юу хийх вэ гэвэл одоогийн прожектийг хаах хэрэгтэй. File цэсний Close All -ыг сонго. Project1 -ийн өөрчлөлтийг хадгалах бол No -ийг сонго. Таны 2 дахь программ: Hello World, II хэсэг Pascal -ийг судлахаасаа өмнө Delphi хэрхэн ажиллдаг талаар мэдэх хэрэгтэй. Танд Pascal –ийн олон төрөл дээр ажиллахад энэ нь хэрэг болно. Энэ хэсэг нь Delphi -ийн үнэн хүчийг хальт агуулна.