Giao trinh lap trinh can ban b tn035

998 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
998
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
54
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Giao trinh lap trinh can ban b tn035

  1. 1. TRƯ NG ð I H C C N THƠ KHOA KHOA H C T NHIÊN Giáo trình lý thuy tLẬP TRÌNH CĂN BẢN B MSMH: TN035 (Áp d ng cho chương trình tín ch ) Biên so n: ThS. VŨ DUY LINH ThS. NGUY N NH GIA VINH ThS. LÊ TH DI M Năm 2010
  2. 2. M CL C CHƯƠNG 1: D LI U VÀ THU T TOÁN................................................................1 I. D li u và thông tin: .............................................................................................1 I.1. Khái ni m.......................................................................................................1 I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin.........................................1 II. T bài toán t i chương trình ................................................................................1 II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t ..................................1 II.2. Thu t toán (Algorithm).................................................................................2 CHƯƠNG 2: BORLAND DELPHI .............................................................................5 I. T ng quan v Delphi.............................................................................................5 I.1. Delphi là gì.....................................................................................................5 I.2. Các phiên b n c a Delphi ..............................................................................5 II. Môi trư ng phát tri n tích h p (IDE) c a Delphi................................................5 II.1. C a s chính c a Delphi...............................................................................6 II.2. Thanh th c ñơn chính và thanh công c .......................................................6 II.3. B ng ch a các thành ph n c a Delphi (Component Palette) .......................7 II.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh (Code Editor) .................................................................................................8 II.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector) ...................9 II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView).........................10 III. C u trúc m t d án Delphi ...............................................................................10 III.1. T p tin d án: (Delphi project file) ...........................................................10 III.2. Các t p tin ch a mã l nh (Unit file) ..........................................................11 III.3. Các t p tin ñ c t bi u m u (Form file).....................................................11 III.4. Các t p tin tài nguyên (Windows Resource File)......................................13 IV. Các thao tác cơ b n trên Delphi .......................................................................14 IV.1. M m t d án m i.....................................................................................14 IV.2. Lưu d án ..................................................................................................14 IV.3. Lưu Form (t p tin unit) v i tên khác.........................................................18 IV.4. Lưu d án v i tên khác..............................................................................18 IV.5. ðóng d án ................................................................................................18 IV.6. Thoát kh i Delphi .....................................................................................18 CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG DELPHI (OBJECT PASCAL).............................................................................................19 I. B ch vi t .........................................................................................................19 II. T khóa ..............................................................................................................19 III. Tên danh hi u t ñ t .........................................................................................20 IV. H ng .................................................................................................................20 IV.1. Khái ni m ..................................................................................................20 IV.2. H ng tr ......................................................................................................20B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang i
  3. 3. IV.3. H ng ñ nh ki u: .........................................................................................21 V. Ki u (Type)........................................................................................................21 V.1. Ð nh nghĩa ..................................................................................................21 V.2. Cách khai báo .............................................................................................21 VI. Bi n ..................................................................................................................22 VII. Bi u th c .........................................................................................................22 VII.1. ð nh nghĩa................................................................................................22 VII.2. Th t ưu tiên...........................................................................................22 VIII. Chuy n ki u (Typecast).................................................................................23 IX. L i chú thích và các ch d n biên d ch .............................................................24 X. C u trúc m t d án ch ñ Form (Form Application)....................................25 CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN .......................26 I. Các ki u d li u sơ c p (Simple type) ................................................................26 I.1. Ki u s nguyên (Integer)..............................................................................26 I.2. Ki u ký t (Char) .........................................................................................26 I.3. Ki u s th c (Real type)...............................................................................30 I.4. Ki u logic (Boolean) ....................................................................................34 II. Câu l nh (statement) ..........................................................................................34 III. L nh ñơn (Simple statement) ...........................................................................35 IV. L nh gán (Assignment statement)....................................................................35 V. L nh g i th t c và hàm ....................................................................................35 VI. L nh Goto.........................................................................................................37 CHƯƠNG 5: L P TRÌNH X LÝ S KI N – CÁC THÀNH PH N TRONG GIAO DI N DELPHI ....................................................................................38 I. L p trình x lý s ki n ........................................................................................38 I.1. L p (Class) và ñ i tư ng (Object) ...............................................................38 I.2. Thu c tính ....................................................................................................43 I.3. Phương th c (Method) .................................................................................44 I.4. S ki n (Event).............................................................................................44 I.5. X lý s ki n (Event Handlers)....................................................................45 I.6. Trình h tr mã l nh (Code Completion /IntelliSense)................................46 II. Sinh mã t ñ ng và m t s cách s a l i ............................................................46 II.1. Cách t ñ ng sinh mã (generate code) trong Delphi .................................46 II.2. Cách s a l i sinh mã trong Delphi.............................................................49 II.3. Thêm t p tin unit vào d án ........................................................................54 II.4. Vi t l nh sau khi thêm unit form vào d án................................................58 II.5. G b t p tin unit form ra kh i d án .........................................................62 III. Bi u m u (TForm) ............................................................................................62 IV. Các thành ph n (Component) giao di n ph bi n ............................................68 IV.1. Nhãn (TLabel) ...........................................................................................68 IV.2. H p văn b n (TEdit)..................................................................................71Trang ii B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  4. 4. IV.3. Nút l nh (TButton)....................................................................................78 IV.4. Nhãn và H p nh p (TLabeledEdit) ...........................................................80 IV.5. H p ñánh d u hay h p ki m (TCheckbox) ...............................................81 IV.6. Nút tùy ch n (TRadioButton) ...................................................................87 IV.7. Nhóm tùy ch n (TRadioGroup) ................................................................88 IV.8. Vùng văn b n (TMemo)............................................................................91 IV.9. H p danh sách (TListBox) ........................................................................96 IV.10. TSpinEdit ..............................................................................................100 IV.11. H p danh sách ñánh d u (TCheckListBox) ..........................................101 IV.12. H p danh sách các khoá (TValueListEditor) ........................................107 IV.13. H p li t kê th (TComboBox)...............................................................113 IV.14. Lư i chu i (TStringGrid)......................................................................118 IV.15. B ng ch a các thành ph n (TPanel)......................................................124 IV.16. Thanh th c ñơn chính (TMainMenu)....................................................125 IV.17. Th c ñơn (TMenuItem) ........................................................................126 IV.18. Menu ñ i tư ng (TPopupMenu) ...........................................................134 CHƯƠNG 6: CÁC L NH CÓ C U TRÚC.............................................................138 I. L nh ghép (Compound statement)....................................................................138 II. L nh c u trúc r nhánh ....................................................................................138 II.1. L nh if ... then ... và l nh if ... then ... else................................................138 II.2. L nh Case ... of .........................................................................................146 III. C u trúc l nh l p.............................................................................................149 III.1. L nh l p có s l n xác ñ nh trư c ...........................................................149 III.2. L nh l p có s l n không xác ñ nh trư c ................................................155 CHƯƠNG 7: CHƯƠNG TRÌNH CON....................................................................164 I. Khái ni m..........................................................................................................164 II. Hàm..................................................................................................................165 III. Th t c............................................................................................................172 IV. Truy n tham s ...............................................................................................175 IV.1. ð nh ki u và không ñ nh ki u cho tham s hình th c.............................175 IV.2. Truy n b ng tham tr (Value parameter).................................................177 IV.3. Truy n b ng tham bi n (Variable parameter) .........................................179 IV.4. Truy n b ng tham s h ng (Constant parameter) ...................................181 IV.5. Truy n b ng tham s xu t (Out parameter) ............................................184 V. Chương trình con ñ quy .................................................................................190 CHƯƠNG 8: KI U LI T KÊ, MI N CON, T P H P ..........................................194 I. Ki u vô hư ng li t kê (Enumerated scalar type) ..............................................194 I.1. Khái ni m...................................................................................................194 I.2. Cách khai báo: Có hai cách khai báo là gián ti p và tr c ti p ...................194 I.3. M t s hàm chu n áp d ng cho ki u vô hư ng .........................................195B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang iii
  5. 5. II. Ki u mi n con (Subrange types)......................................................................196 II.1. Khái ni m..................................................................................................196 II.2. Cách khai báo............................................................................................196 III. Ki u t p h p (Set)...........................................................................................197 III.1. Khái ni m ................................................................................................197 III.2. Cách khai báo ..........................................................................................197 III.3. Mô t t p h p...........................................................................................198 III.4. M t s phép toán trên ki u t p h p .........................................................198 CHƯƠNG 9: KI U M NG.....................................................................................208 I. Khái ni m v m ng (Array-type data) ..............................................................208 II. M ng tĩnh (Static array) ...................................................................................208 II.1. M ng m t chi u (One-Dimensional array) ...............................................208 II.2. M ng nhi u chi u (Multi-Dimensional array) ..........................................213 II.3. M ng hai chi u..........................................................................................215 III. M ng ñ ng (Dynamic array) ..........................................................................222 III.1. M ng ñ ng m t chi u .............................................................................222 III.2. M ng ñ ng nhi u chi u ...........................................................................227 III.3. H ng m ng...............................................................................................228 CHƯƠNG 10: KI U CHU I KÝ T ......................................................................229 I. Các lo i chu i ký t trong Object Pascal ..........................................................229 I.1. Chu i ng n (ShortString) ...........................................................................229 I.2. Chu i dài 1 byte (AnsiString) ....................................................................230 I.3. Chu i dài 2 byte (WideString) ...................................................................232 II. Các thao tác trên chu i.....................................................................................232 II.1. Phép toán c ng chu i................................................................................232 II.2. Phép toán so sánh......................................................................................232 II.3. Các th t c và hàm chu n x lý chu i ký t .............................................234 PH L C........ .........................................................................................................246 TÀI LI U THAM KH O ..........................................................................................252 B N QUY N TÁC GI ............................................................................................252Trang iv B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  6. 6. Chương 1: D li u và Thu t toán CHƯƠNG 1: D LI U VÀ THU T TOÁNI. D li u và thông tin:I.1. Khái ni m D li u (Data) là các s ki n không có c u trúc, không có ý nghĩa rõ ràng t i th iñi m xét. Thông tin (Information) là m t khái ni m tr u tư ng ñư c th hi n qua các thôngbáo, các bi u hi n,... ñem l i m t nh n th c ch quan cho m t ñ i tư ng nh n tin. Thôngtin là d li u ñã ñư c x lý xong, mang ý nghĩa rõ ràng t i th i ñi m xét. M t h th ng thông tin (Information system) là m t ti n trình ghi nh n d li u, x lýnó và cung c p t o nên d li u m i có ý nghĩa thông tin, liên quan m t ph n ñ n m t tch c, ñ tr giúp các ho t ñ ng liên quan ñ n t ch c.I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin M i quá trình x lý thông tin b ng máy tính hay b ng con ngư i ñ u ñư c th c hi ntheo m t quy trình sau: D li u ñư c nh p ñ u vào (Input). Máy tính hay con ngư i s th c hi n quá trìnhx lý nào ñó ñ nh n ñư c thông tin ñ u ra (Output). NH P D LI U X LÝ XU T D LI U (INPUT) (PROCESSING) (OUTPUT) LƯU TR (STORAGE) Hình 1: Mô hình t ng quát quá trình x lý thông tinII. T bài toán t i chương trình Trong cu c s ng, chúng ta có r t nhi u bài toán c n ph i gi i quy t. S d ng máytính ñi n t ñ gi i các bài toán là ñi u r t hi u qu do kh năng tính toán c a máy tính. ðmáy tính có th hi u ñư c, chúng ta c n ph i có nh ng bư c gi i c th c a bài toán m tcách ñúng logic, t ñó s d ng m t ngôn ng chương trình hay ph n m m l p trình ñhư ng d n máy tính th c hi n các thao tác c n thi t ñ tìm ra k t qu c a bài toán.II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t Ð gi i quy t m t bài toán trên máy tính ñi n t , c n qua các giai ño n sau: - Tìm hi u m c tiêu chính c a bài toán: d li u nh p vào và k t qu xu t. - Xây d ng m t chu i thao tác tính toán theo m t th t logic, g i là thu t gi i. - L p chương trình di n t chi ti t các bư c tính theo thu t gi i. - Nh p chương trình vào máy tính, thông d ch và ch y th ñ s a ch a l i. - Th c hi n gi i bài toán v i s li u thu th p ñư c và ghi nh n k t qu .B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 1
  7. 7. Chương 1: D li u và Thu t toán - Th nghi m v i nhi u trư ng h p d li u nh p khác nhau c a bài toán ñ chương trình ki m tra ñúng trong m i trư ng h p t ng quát. - Phân tích k t qu và hoàn ch nh chương trình. Trong các bư c trên, vi c thi t k thu t toán là giai ño n quan tr ng nh t.II.2. Thu t toán (Algorithm)II.2.1. Ð nh nghĩa Thu t toán là m t phương pháp trình bày các bư c gi i quy t m t hay nhi u bài toántheo m t ti n trình xác ñ nh.II.2.2. ð c tính c a thu t toán - Tính xác ñ nh: Các thao tác c a thu t toán là rõ ràng và ch c ch n th c hi n ñư c ñ d n ñ n k t qu nào ñó. - Tính h u h n và d ng: thu t toán ph i có m t s bư c gi i nh t ñ nh và cu i cùng ph i có k t thúc ñi m d ng. - Tính k t qu : V i d li u h p lý, thu t toán ph i cho k t qu th a yêu c u. - Tính ph d ng: Thu t toán ph i gi i ñư c nhi u bài toán có cùng c u trúc v i các d li u khác nhau và ñ u d n ñ n m t k t qu mong mu n. - Tính hi u qu : Thu t gi i ph i ñơn gi n, d hi u trong các bư c gi i, t i thi u hoá b nh và th i gian th c hi n. - Tính hình th c: Các bư c trong thu t toán là máy móc, nghĩa là nó ph i th c hi n ñúng như quy ñ nh mà không c n bi t ñ n m c tiêu cu i cùng.II.2.3. Các phương pháp bi u di n thu t toán Thu t toán có th ñư c di n gi i thông qua 3 phương pháp ph bi n, ñó là s d ngngôn ng t nhiên, ngôn ng gi và ngôn ng sơ ñ (lưu ñ ).II.2.3.1 Ngôn ng t nhiên Là cách di n ñ t t nhiên c a con ngư i b ng ngôn ng c a mình ñ mô t các bư cgi i bài toán. Ví d 1: Mô t thu t toán theo ngôn ng t nhiên c a phương trình ax + b = 0 - Bư c 1: Nh p vào 2 h s a và b. - Bư c 2: Xét ñi u ki n a = 0? N u ñúng là a = 0, thì ñi ñ n bư c 3, n u không (nghĩa là a ≠ 0) thì ñi ñ n bư c 4. - Bư c 3: Xét ñi u ki n b = 0? N u b = 0, thì báo phương trình có vô s nghi m. Ði ñ n bư c 5. N u b ≠ 0, thông báo phương trình vô nghi m. Ði ñ n bư c 5. - Bư c 4: Thông báo phương trình có m t nghi m duy nh t là x = - b/a. - Bư c 5: K t thúc thu t toán. Trang 2 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  8. 8. Chương 1: D li u và Thu t toánII.2.3.2 Ngôn ng gi Là cách di n ñ t các bư c gi i c a bài toán thông qua m t s câu l nh có c u trúc(như câu l nh if..then..else, for..to..do, while..do, repeat..until) Ví d 2: Mô t thu t toán theo ngôn ng gi c a phương trình b c nh t ax + b = 0 - Bư c 1: Nh p vào 2 h s a và b. - Bư c 2: if (a=0) then if (b=0) then phương trình vô s nghi m else phương trình vô nghi m else phương trình có m t nghi m duy nh t x = -b/a - Bư c 3: K t thúc thu t toán.II.2.3.3 Ngôn ng lưu ñ (Flowchart) Là cách di n ñ t các bư c gi i c a bài toán thông qua các ký hi u c a lưu ñ . M t squi ư c ký hi u lưu ñ : Ký hi u Mô t ði m b t ñ u ho c k t thúc thu t toán Thao tác nh p hay xu t Kh i x lý công vi c Kh i quy t ñ nh ch n l a ði m n i Chu n b T p h p các t p tin d li u Kh i chương trình con Các ghi chú, gi i thích Dòng tính toán, thao tác c a chương trình Hình 2: Các ký hi u lưu ñB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 3
  9. 9. Chương 1: D li u và Thu t toán Ví d 3: Mô t thu t toán theo ngôn ng lưu ñ c a phương trình ax + b = 0 B tñ u Nh p a,b Sai x := -b/a a=0 ðúng Sai Phương trình Xu t nghi m x b=0 vô nghi m ðúng Phương trình vô s nghi m K t thúc Hình 3: Lưu ñ thu t toán PTB1Trang 4 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  10. 10. Chương 2: Borland Delphi CHƯƠNG 2: BORLAND DELPHII. T ng quan v DelphiI.1. Delphi là gì Delphi là m t ngôn ng l p trình c p cao, có trình biên d ch hoàn h o, h tr m nhv các ki u d li u có c u trúc và thi t k hư ng ñ i tư ng d a trên n n t ng ngôn ng l ptrình hư ng ñ i tư ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngàynay, Delphi ñã ñư c phát tri n thành môi trư ng xây d ng ng d ng t c th i RAD (RapidApplication Development). T nh ng công c c a RAD, b n có th gi i quy t nh ng v nñ ph c t p trong qua trình phát tri n ph n m m như: l p trình ng d ng v cơ s d li u(Database), l p trình m ng và Internet (Internet/Networking), l p trình Multimedia(Animation, sound), l p trình trò chơi (Game) cũng như ñ h a (Graphic) ho c l p trình hth ng, v.v… không nh ng trên n n Windows mà còn cho c Linux và .NET. Trong giáotrình này, chúng tôi ch gi i thi u các khái ni m c a Delphi trong ph m vi h ñi u hànhWindows. V i kh năng m nh như v y c a Delphi, b n an tâm khi dùng nó ñ tri n khaicác ng d ng c a b n quy mô nh hay l n. ði u c n quan tâm Delphi là m t ngôn ngr t thân thi n v i ngư i dùng, phù h p cho nh ng ngư i b t ñ u làm quen v i nó cũng nhưnh ng nhà l p trình chuyên nghi p. Vì ñây là giáo trình ñư c so n dành cho ñ i tư ng là các sinh viên b t ñ u h c Tinh c ð i cương thông qua ngôn ng Delphi. Do v y, giáo trình này ch gi i thi u nh ngkhái ni m căn b n nh m giúp cho ngư i h c có m t s ki n th c nh t ñ nh ñ ñ v n d ngvào gi i các bài toán ho c vi t nh ng chương trình ng d ng nh . Các chương trong giáotrình này s trình bày các ph n t cơ b n c a Delphi ñ t o m t chương trình ch y trênn n Windows, ñó chính là môi trư ng phát tri n tích h p IDE (Integrated DevelopmentEnvironment) và ngôn ng hư ng ñ i tư ng Borland Pascal. Các b n s ñư c h c cáchthi t k (Design), phát tri n (Develop) hay vi t mã l nh (Code), và ki m tra l i (Test)chương trình ng d ng b i vi c s d ng Delphi.I.2. Các phiên b n c a Delphi Ti n thân c a Delphi chính là ngôn ng ñ i tư ng Borland Pascal, và ñ n ngày nayDelphi ñã có m t quá trình phát tri n v ng m nh t phiên b n 1 (Delphi1) vào năm 1995,ñ n phiên b n 8 (Delphi for .NET) năm 2005. Trong giáo trình này, chúng tôi th ng nh ttrình bày v i các b n Delphi 7. ðây là phiên b n phù h p nh t và d dùng nh t hi n naycho các b n, ñ i tư ng là các sinh viên h c Tin h c ð i cương.II. Môi trư ng phát tri n tích h p (IDE) c a Delphi Môi trư ng so n th o và thi t k ng d ng c a Delphi 7 chia ra làm 5 ph n: C a schính c a chương trình Delphi, c a s thi t k bi u m u (Form designer), c a s li t kê cácthành ph n, ñ i tư ng d ng cây (Object TreeView), c a s thi t l p thu c tính ñ i tư ng(Object Inspector), và c a s so n th o mã l nh (Code Editor). V i môi trư ng IDE này,b n s có m t giao di n (Interface) ñ thi t k (Design), biên d ch (Compile) và g l i(Debug) d án mà b n ñang phát tri n.B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 5
  11. 11. Chương 2: Borland Delphi Hình 1: Giao di n c a d án m i t o trong Delphi 7 C a s chính c a Delphi 7 C a s thi t k bi u m u C a s li t kê các ñ i tư ng d ng cây C a s thi t l p các thu c tính và s ki n c a ñ i tư ng C a s so n th o mã l nhII.1. C a s chính c a Delphi C a s chính c a Delphi chính là c a s có thành tiêu ñ ch a tên d án (Projectname) mà b n ñang phát tri n, nó bao g m th c ñơn chính (Main menu), thanh công c(Toolbar), và b ng thành ph n (Component palette).II.2. Thanh th c ñơn chính và thanh công cII.2.1. Thanh th c ñơn chính Bao g m các th c ñơn th xu ng (Drop-down menu) như: File, Edit, Search,View,… và Help. Trong m i menu th xu ng có nhi u ch c năng khác nhau như: m m td án m i, lưu d án, biên d ch, g l i, ch y chương trình,… mà giáo trình s trình bày chiti t ph n sau. Trang 6 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  12. 12. Chương 2: Borland Delphi Hình 2: Thanh th c ñơn chínhII.2.2. Thanh công c (Toolbars) Trong Delphi có nhi u thanh công c , như: thanh công c chu n (Standard), thanh gl i (Debug), thanh hi n th (View),… M i nút (Button) trên thanh công c thư ng là m tthao tác hay m t l nh mà khi ta Click vào nó s thi hành, ví d như: Biên d ch (Compile),ch y (Run) ho c k t thúc ch y chương trình (Program Reset), … Hình 3: Các thanh công cII.3. B ng ch a các thành ph n c a Delphi (Component Palette) Thành ph n (Component), hay còn ñư c g i là ñi u khi n, chính là ñ i tư ng có s ntrong Delphi mà b n có th thao tác trên nó trong th i ñi m thi t k form. Có 2 lo i thànhph n, ñó là thành ph n tr c quan (visual component): nhìn th y khi ch y chương trình, vàthành ph n không tr c quan (nonvisual component): không nhìn th y khi ch y chươngtrình. M i thành ph n có m t s tính ch t riêng, và ñư c qu n lý thông qua các thu c tính(Properties), s ki n (Events) và các phương th c (Methods). Các thu c tính này giúp b ncó th qu n lý và ñi u khi n chương trình c a b n. Khi b n ñ t m t thành ph n lên form,thì nó s xu t hi n trong c a s Object TreeView và Object Inspector – s ñư c trình bày ph n sau. Trong b ng ch a các thành ph n có nhi u th (tab) khác nhau, như th Standard,Addition, Win32, System, Data Access, ADO, Internet, Rave, Server,… Trên m i th ch acác bi u tư ng (icon) ñ i di n cho các thành ph n. Hình 4: B ng ch a các thành ph n trong th StandardB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 7
  13. 13. Chương 2: Borland DelphiII.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh (Code Editor)II.4.1. C a s thi t k bi u m u Khi b n t o m t d án m i, môi trư ng phát tri n tích h p IDE c a Delphi s t t ora m t bi u m u m i (Form) ñ b n tùy nghi thi t l p các giá tr c a thu c tính d a trênProperties, và các th t c s ki n d a vào Events, ñư c xác ñ nh trong Object Inspector,cho vi c thi t k chương trình. Trong h u h t trư ng h p, m t d án thư ng có ít nh t m tform. Cùng v i các thành ph n trên b ng các thành ph n, b n s thi t k ñư c m t giaodi n cho chương trình mà b n ñang xây d ng là thân thi n nh t cho ngư i s d ng. TLabel (StdCtrls) TEdit (StdCtrls) TButton (StdCtrls) TMemo (StdCtrls) Hình 5: Form “Giai phuong trinh bac nhat” và các Components Các giá tr c a form và các giá tr c a các component ñ t trên form ñư c lưu trongt p tin form (form file) và có ph n m r ng .dfm, v i ph n tên ñư c xác ñ nh gi ng nhưph n tên c a ñơn v chương trình form. T p tin form này ch a ñ ng các giá tr c a formcũng như các giá tr c a các component mà ta ñ t trên form trong quá trình thi t k .II.4.2. C a s so n th o mã l nh M i m t form trong d án ñư c qu n lý trong m t t p tin ñơn v chương trình (Unitfile/ Form unit), tên t p tin c a form unit này ñư c ñ t tên trong qua trình lưu (Save) và cóph n m r ng là .pas, n i dung c a t p tin form unit này ch a ñ ng các khai báo thôngthư ng c a unit (s ñ c p chi ti t ph n sau) cũng như các hàm s ki n tương ng choform và các component trên nó. Trang 8 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  14. 14. Chương 2: Borland Delphi Hình 6: C a s so n th o mã l nh cho form unit untPtb1.Pas ð chuy n ñ i gi a c a s so n th o mã l nh v i c a s thi t k bi u m u, ta sd ng ch c năng View/Toggle Form/Unit t main menu ho c gõ phím ch c năng F12. Ví d 1: Trong project “Giai phuong trinh bac nhat” trên, ta lưu unit file v i tên untPtb1.Pas và form file s ñư c t ñ ng ñ t theo là untPtb1.dfmII.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector) Hình 7: th Properties c a Form và th Events c a Button C a s Object Inspector c a form hay component ñ u có 2 th : Properties và Events.Th Properties dùng ñ xác ñ nh các tính ch t c a ñ i tư ng nói chung (Form, component)hi n hành m t cách tr c quan, ch ng h n như Caption, Name, Position, Visible,… ThEvents dùng ñ l p trình s ki n: xác ñ nh nh ng ñáp ng c a ñ i tư ng khi nh n tác ñ ngB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 9
  15. 15. Chương 2: Borland Delphit chu t (Mouse) ho c bàn phím (Keyboard) như: nh p chu t (OnClick), ñóng c a s(OnClose), gõ phím Enter (OnEnter),… thông qua các th t c s ki n. Khi thay ñ i các giá tr trong th Properties trong quá trình thi t k , thì mã l nhtương ng c a ñ i tư ng s ñư c thay ñ i theo trong c a s so n th o mã l nh.II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView) Hình 8: C a s li t kê các ñ i tư ng d ng cây trên frmPTB1 Object TreeView li t kê các thành ph n tr c quan và không tr c quan mà b n ñ tchúng trên form hi n hành. M i th i ñi m ch có m t form duy nh t ñư c li t kê.III. C u trúc m t d án DelphiIII.1. T p tin d án: (Delphi project file) Hình 9: T p tin d án prjPtb1.dpr Trang 10 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  16. 16. Chương 2: Borland Delphi Khi b n b t ñ u m m i m t chương trình ng d ng b ng thao tác:File/New/Application, Delphi 7 s t ñ ng t o ra m t t p tin d án có tên m c nhiên banñ u là Project1. Khi b n lưu d án, Delphi s l n lư t nh c b n ñ t tên cho các form unitvà tên d án. ví d gi i phương trình b c nh t trên, form unit có tên là untPTB1.pasvà tên d án là prjPTB1.dpr. Ph n tên c a t p tin d án cũng chính là tên c a chươngtrình, ñư c khai báo sau t khóa program. B n chú ý: ti n t c a unit file là unt, còn project file là prj. Ví d như untPTB1.pasvà prjPTB1.dpr ð hi n th t p tin d án, ta vào ch c năng Project/View Source Mã l nh ngu n (Source code) ñư c Delphi t ñ ng sinh ra trong t p tin d án baog m: - Tên chương trình, ñư c khai báo b i t khóa program, ñây cũng chính là tên chương trình ng d ng (Application file). - Các câu l nh ch d n t i các form và các unit ñư c s d ng trong d án ñư c khái báo sau t khóa uses. - Ch th biên d ch {$R *.res}: s d ng các t p tin tài nguyên (Resources). - Kh i l nh thân chương trình chính, b t ñ u b i t khóa begin và k t thúc là end. + Initialize : Kh i ñ ng chương trình ng d ng. + CreateForm : T o form chính (Main form). + Run : Ch y chương trình ng d ng. T p tin d án là t p tin trung tâm c a m t d án ñư c tri n khai b i Delphi. T p tinnày ch a ñ ng các tham kh o (Reference) t i t t c các file khác trong d án và liên k tv i các form cũng như t p tin ñơn v (Unit file) kèm theo c a form. Khi chương trình ñư cthi hành (Run, execute), nó s b t ñ u t t p tin d án này. T p tin này ñư c t ñ ng sinh ra, và như v y, b n không nên thay ñ i n i dung c anó ngo i tr trong nh ng trư ng h p c n thi t. T p tin d án ñư c lưu v i ph n m r ng .dprIII.2. Các t p tin ch a mã l nh (Unit file)Trong m i ng d ng ñư c vi t b i Delphi thư ng g m có 1 t p tin d án (Project file) vànhi u t p tin ñơn v chương trình (Unit file) – xem l i ph n "C a s so n th o mã l nh"ph n trên. M i khi ta thêm vào m i m t form (ho c Data Module, Frame,…) thì m t t ptin unit s ñư c t o ra. Thông thư ng m t d án ñư c tri n khai trong th c t s có nhi ut p tin unit này. N i dung t p tin unit này ch a ñ ng mã l nh c a chương trình và c a cács ki n ñi u khi n (Event handles) trên form cũng trên các thành ph n (Component) màchúng ñư c ñ t trên nó. Unit file ñư c lưu v i ph n m r ng là .pasIII.3. Các t p tin ñ c t bi u m u (Form file) N i dung c a t p tin này xác ñ nh m t cách chi ti t các tính ch t hay thu c tính(Properties) c a form và t t c các ñ i tư ng (nói chung) l p trình viên ñã thi t k . T p tinnày luôn ñi kèm v i m t t p tin unit file. Form file ñư c lưu v i ph n m r ng là .dfm ð hi n th n i dung t p tin này, b n RClick trên form r i ch n View as Text.B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 11
  17. 17. Chương 2: Borland Delphi Ví d 2: Xem n i dung t p tin form file có tên untPTB1.dfm như sau: T ch ñ thi t k c a form có tên là frmPTB1, b n RClick trên form r i ch n Viewas Text như hình sau: Hình 10: Chuy n cách hi n th t d ng Form sang d ng Text N i dung c a t p tin untPTB1.dfm d ng văn b n s có như hình sau: Hình 11: Hi n th d ng text c a untPTB1.dfm ð chuy n ñ i t cách hi n th d ng Text sang d ng Form, ta s d ng ch c năngRClick ch n ch c năng View as Form hay t h p phím Alt+F12: Trang 12 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  18. 18. Chương 2: Borland Delphi Hình 12: Chuy n cách hi n th d ng Text sang d ng Form.III.4. Các t p tin tài nguyên (Windows Resource File) T p tin này cũng ñư c t ñ ng sinh ra. N i dung c a nó ch a ñ ng các thông tin vphiên b n (Version) cũng như bi u tư ng c a ng d ng (Application icon) d ng mã nhphân. T p tin này có ph n m r ng .res Ta có th m t p tin tài nguyên này ch ñ thi t k (Design) b ng chương trìnhImage Editor ñư c kèm theo b Delphi. Hình 13: Giao di n chương trình x lý nh – Image EditorB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 13
  19. 19. Chương 2: Borland DelphiIV. Các thao tác cơ b n trên DelphiIV.1. M m t d án m i ð t o m t d án m i, b n s d ng l nh File/New/Application. Hình nh m t d ánm i t o như hình sau: Hình 14: D án m i t oIV.2. Lưu d án M t d án trong Delphi s sinh ra khá nhi u t p tin. Do v y, khi lưu d án, b n c nph i t o ra 1 thư m c ñ ch a các t p tin trong d án ñó. Quá trình lưu d án như sau: ð lưu m t d án, b n s d ng l nh: File/Save All hay t h p phím Shift+Ctrl+S.Thông thư ng b n ph i lưu các form trư c (m i form là m t t p tin unit có ph n m r nglà pas), r i sau ñó m i lưu t p tin d án (ph n m r ng là dpr). Ví d 3: Lưu d án hi n th câu "Hello world!..." ch có m t form, vào thư m c S:HelloWorld như sau: Hình 15: C a s thi t k Form Trang 14 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  20. 20. Chương 2: Borland Delphi - T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "SaveUniti File" (v i i =1..n) như sau: Hình 16: H p tho i Save Uniti As Click ch n h p li t kê th "Save in" ñ ch n ñĩa S: như hình sau: Hình 17: H p tho i Save Uniti As: Ch n ñĩaB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 15
  21. 21. Chương 2: Borland Delphi Ti p ñ n, Click ch n bi u tư ng "Create New Folder" ñ t o thư m c m i ch a cáct p tin c a d án mà b n mu n lưu (thư m c HelloWorld). Hình 18: H p tho i Save Uniti As: T o thư m c Sau khi t o thư m c xong, b n Click nút l nh Open ñ m thư m c HelloWorld ra. Hình 19: H p tho i Save Uniti As: M thư m c Trang 16 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  22. 22. Chương 2: Borland Delphi Ti p ñ n, b n gõ tên t p tin unit mà b n mu n lưu vào trong h p li t kê th "Filename", ñây là tên untHelloWorld.pas, r i Click Save. Hình 20: H p tho i Save Uniti As: Nh p vào tên t p tin unit ð n ñây, Delphi s ti p t c xu t hi n h p tho i "Save Projecti As" ñ b n lưu t p tind án. B n gõ vào tên t p tin d án vào trong h p li t kê th "File name", ví d này là tênprjHelloWorld.dpr, và Click Save. Hình 21: H p tho i Save Projecti As: Nh p tên t p tin d ánB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 17
  23. 23. Chương 2: Borland Delphi D án ñã ñư c lưu và ñ t tên xong. Sau vi c này, n u b n có ch nh s a chương trình,ñ lưu l i nh ng s thay ñ i này, b n ch c n ra l nh File/Save All ñ Delphi t ñ ng lưutoàn b l i d án. Hình dư i ñây cho b n th y s lư ng các t p tin trong m t d án Hello World ñãñư c lưu, thông qua c a s Windows Explorer như sau: Hình 22: Các t p tin c a d án Hello Wolrd trong thư m c S:HelloWorldIV.3. Lưu Form (t p tin unit) v i tên khác B n ch n l nh File/Save As ñ lưu.IV.4. Lưu d án v i tên khác B n ch n l nh File/Save Project As ñ lưu d án.IV.5. ðóng d án B n ch n l nh File/Close All ñ ñóng l i toàn b d án.IV.6. Thoát kh i Delphi Sau khi lưu l i toàn b d án. ð thoát kh i Delphi, b n s d ng l nh: File/Exit Trang 18 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  24. 24. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG DELPHI (OBJECT PASCAL) Trong chương này và chương 4 ti p theo sau, ñ giúp cho vi c làm quen v i các kháini m cơ b n ñư c d dàng. Giáo trình s xây d ng các ví d theo d ng chương trình chñ văn b n (Text mode) hay không h tr ñ ho (Console Application). ð t o m tproject m i theo d ng Console Application, b n s d ng ch c năngFile/New/Other/Console Application.I. B ch vi t - B 26 ch Latin: o Ch in : A, B, C, ..., X, Y, Z o Ch thư ng : a, b, c, ..., x, y, z - B ch s th p phân : 0, 1, 2, 3, ..., 8, 9 - Ký t g ch n i : _ - Các ký hi u toán h c : +, -, *, /, =, <, >, (, ), [, }II. T khóa Là các t riêng c a Object Pascal, có ng nghĩa ñã ñư c xác ñ nh, không ñư c dùngnó vào các vi c khác ho c ñ t tên m i trùng v i các t khóa. T khóa chung: program, begin, end, procedure, function - T khóa ñ khai báo: const, var, type, array, string, record, set, file, label, class,... - T khóa c a l nh l a ch n: if ... then ... else, case ... of - T khóa c a l nh l p: for... to... do, for... downto... do, while... do, repeat... until - T khóa ñi u khi n: with, goto, exit, halt - T khóa toán t : and, or, not, in, div, mod Dư i ñây là danh sách m t s t khóa thông d ng: and for record array function repeat begin goto set case if to class implementation try const interface type div label unit do mod until downto object usesB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 19
  25. 25. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). else of var end procedure while finalization program with finally property B ng 1: Các t khoáIII. Tên danh hi u t ñ t Trong Delphi ñ ñ t tên cho các bi n, h ng, ki u, chương trình con ta dùng các danhhi u (Identifier). Quy t c ñ t tên c a danh hi u trong Delphi là: - Chi u dài t i ña: 256 ký t . - B t ñ u b ng ch cái ho c d u _ (g ch dư i); ti p theo có th k t h p s và các ký t khác. - Không ñ c ch a kho ng tr ng. - Không trùng v i các t khóa. - Không phân bi t ch hoa và ch thư ng. - Các ñ nh danh l ng nhau ñư c dùng d u . (d u ch m) ñ truy xu t. Ví d 1: - Danh hi u t ñ t h p l : x; s1; delta; pt_bac_2; - Danh hi u t ñ t không h p l : 1S (b t ñ u b ng s ), Del ta (tên có kho ng tr ng),...IV. H ngIV.1. Khái ni m H ng là m t ñ i lư ng có giá tr không ñ i trong quá trình ch y chương trình. Tadùng tên h ng ñ chương trình ñư c rõ ràng và d s a ñ i. Cú pháp khai báo: Const Tên_h ng = bi u_th c_xác_ñ nh_giá_tr _c a_h ng;IV.2. H ng tr Trong trư ng h p này thì bi u_th c_xác_ñ nh_giá_tr _c a_h ng là m t tr xác ñ nh.Giá tr c a bi u th c này s ñư c ñ nh tr m t l n và không thay ñ i. Ví d 2: Const MaxSize = 100; Const x = Abs(-100)+Length(Chao ban); // h ng x =108 Const St = Borland+ Delphi; // h ng St = Borland Delphi Trang 20 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  26. 26. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) Chú ý: Bi u th c h ng ñây có th là s , chu i ký t , các h ng true, false, nil,… k th p v i các toán t thích h p. Bi u th c h ng không th ch a các l i g i hàm, bi n haycon tr , ngo i tr m t s hàm ñơn gi n như: Abs, Chr, Length, Succ, Odd,…IV.3. H ng ñ nh ki u: Có th ch a các giá tr ki u m ng, b n ghi, ki u th t c và ki u con tr . Cú pháp khai báo h ng ñ nh ki u: Const Tên_h ng: ki u_d _li u = giá_tr _h ng; Ví d 3: Const MaxSize : Integer =100; Trong ví d trên chúng ta khai báo m t h ng có tên là MaxSize, có ki u Integer vàmang giá tr b ng 100. Chúng ta th y, cách khai báo h ng ki u này r t gi ng khai báo vàkh i t o bi n (chúng ta s xem trong ph n bi n). N u ngư i l p trình b t ch th biên d ch{$J+} thì h ng ñư c xem như bi n; t c là chúng ta có th thay ñ i giá tr c a h ng lúcchương trình th c thi. H ng m ng, h ng ki u b n ghi, h ng ki u th t c chúng ta s tìm hi u chi ti t trongcác ph n sau.V. Ki u (Type)V.1. Ð nh nghĩa Ngoài các ki u ñã ñ nh s n, Delphi còn cho phép ta ñ nh nghĩa các ki u d li u kháct các ki u căn b n theo qui t c xây d ng c a Delphi.V.2. Cách khai báo Type Tên_ki u = Mô_t _xây_d ng_ki u; Ví d 4: ð nh nghĩa các ki u d li u ngư i dùng (ki u d li u m i) và khai báo bi n theo ki u v a ñ nh nghĩa type //Khai báo ki u ngư i dùng SoNguyen = integer; Diem = single; Tuoi = 1 .. 100; Color = (Red, Blue, Green); Thu = (ChuNhat, Hai, Ba, Tu, Nam, Sau, Bay); Và khi ñã khai báo ki u thì ta có quy n s d ng ki u ñã ñ nh nghĩa ñ khai báo bi nnhư sau: var //Khai báo bi n theo ki u ngư i dùng ñ nh nghĩa i, j: SoNguyen; dtb: Diem; t: Tuoi;B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 21
  27. 27. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). mau: Color; ngay_hoc: Thu;VI. Bi n Bi n là m t c u trúc ghi nh có tên (ñó là tên bi n hay danh hi u c a bi n). Bi n ghinh m t d li u nào ñó g i là giá tr (value) c a bi n. Giá tr c a bi n có th ñư c bi n ñ itrong th i gian s d ng bi n. S truy xu t c a bi n nghĩa là ñ c giá tr hay thay ñ i giá tr c a bi n ñư c th c hi nthông qua tên bi n. Cú pháp khai báo bi n: Var tên_bi n [ho c danh_sách_tên_bi n] : Ki u_bi n; N u chúng ta khai báo m t danh sách các bi n có cùng ki u thì m i tên bi n cáchnhau m t d u ph y. Ki u bi n là m t ki u d li u chu n trong Delphi ho c ki u ñư c ñ nhnghĩa b i ngư i dùng. Ví d 5: var a : extended ; // khai báo a là m t bi n ki u s th c b, c : integer ; // khai báo 2 bi n b, c có ki u s nguyên hten : shortstring; m_Ok: boolean; // khai báo m_Ok là m t bi n ki u logic Chon : char; // khai báo Chon là m t bi n ki u ký t C n khai báo các bi n trư c khi s d ng chúng trong chương trình. Khai báo m tbi n là khai báo s t n t i c a bi n ñó và cho bi t nó thu c ki u gì.VII. Bi u th cVII.1. ð nh nghĩa M t bi u th c là m t công th c tính toán bao g m các phép toán (toán t ), h ng,bi n, hàm và các d u ngo c. Ví d 6: 5 + u * sqrt(t) / sin(pi/2) ; (a=5) and (b<>7) or (c >= 10); max(x,y); // g i hàm Trong ñó: a, b, c, x, y, u, t là các bi n ñã ñư c khai báo.VII.2. Th t ưu tiên Toán t : Trong Delphi g m có các toán t ñư c phân chia như sau: - Toán t s h c : +, -, *, /, div, mod Trang 22 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  28. 28. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) - Toán t logic : not, and, or, xor - Toán t quan h : =, >, <, <>, <=, >= - Toán t bitwise : not, and, or, xor, shl, shr - Toán t làm vi c trên t p h p : +, -, *, /, <=, >=, <>*, in - Toán t thao tác trên con tr : +, -, @ , ^, =, <> - Toán t x lý l p ñ i tư ng : as, is Khi tính giá tr c a m t bi u th c, ngôn ng Delphi qui ư c th t ưu tiên c a cácphép toán t cao ñ n th p như sau: Phép toán Th t ưu tiên @, not ưu tiên 1 *, /, div, mod, and, shl, shr, as ưu tiên 2 +, -, or, xor ưu tiên 3 =, <>, <, >, <=, >=, in, is ưu tiên 4 B ng 2: Th t ưu tiên toán t Qui ư c tính th t ưu tiên: Khi tính m t bi u th c có 3 qui t c v th t ưu tiên như sau: Qui t c 1. Các phép toán nào có ưu tiên cao hơn s ñư c tính trư c. Qui t c 2. Trong các phép toán có cùng th t ưu tiên thì s tính toán s ñư c th c hi n t trái sang ph i. Qui t c 3. Ph n trong ngo c t trong ra ngoài ñư c tính toán ñ tr thành m t giá tr ñơn.VIII. Chuy n ki u (Typecast) Chuy n ki u hay còn g i là ép ki u là m t k thu t ñư c dùng ñ chuy n giá tr c am t bi u th c sang m t ki u d li u khác. Cú pháp chuy n ñ i ki u d li u: Tên_Ki u(bi u_th c); V i bi u_th c là m t h ng, thì ta có cách chuy n ki u theo giá tr (value typecasts),còn v i bi u_th c là m t bi n, thì ta có cách chuy n ki u theo bi n (variable typecasts). Ví d 7: Chuy n ki u theo tr : t := integer(A); // chuy n ký t A sang s , t = 65 v := char(65); // chuy n s sang ký t , v = A b := boolean(0); // chuy n s sang ki u Booblean, b = False Ví d 8: Chuy n ki u theo bi n: var MyChar: char; Shortint(MyChar) := 122; // Gán ký t z vào bi n MyCharB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 23
  29. 29. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). Ví d 9: Vi t chương trình minh ho 2 cách chuy n ki u theo tr và theo bi n: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh pcác dòng l nh ñ hoàn ch nh như hình sau: Hình 1: Chương trình chuy n ki u Console mode Nh n t h p phím Ctrl+F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Consolenhư sau: Hình 2: K t qu ch y chương trình.IX. L i chú thích và các ch d n biên d ch Trong Delphi có 3 cú pháp ñ ghi chú thích như sau: { chú thích ghi trong c p d u ngo c móc } (* chú thích ñư c bao b i c p d u ngo c và d u sao*) // chú thích trên m t dòng Hai ki u chú thích khác nhau có th th c hi n chú thích l ng nhau nhưng cùng ki uthì không ñư c phép l ng nhau. Trang 24 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  30. 30. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)X. C u trúc m t d án ch ñ Form (Form Application) C u trúc c a m t d án (project) trong Delphi g m 2 ph n chính: Ph n 1: Là t p tin d án (Project file) Hình 3: Project file. Ph n 2: Là (các) t p tin ñơn v chương trình (Unit file) Hình 4: K t qu ch y chương trình.B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 25
  31. 31. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠNI. Các ki u d li u sơ c p (Simple type)I.1. Ki u s nguyên (Integer) Ki u s nguyên bi u di n m t t p h p con các s . Delphi phân làm hai lo i snguyên ñư c ñ nh nghĩa b i các t khóa như sau: T khóa Ph m vi Kích thư c Integer -2147483648..2147483647 s nguyên có d u 32 bit Cardinal 0..4294967295 s nguyên dương 32 bit B ng 1: Ki u nguyên Trong ñó, ki u Integer còn ñư c chia ra thành m t s t p con ñư c ñ nh nghĩa b icác t khóa sau: T khóa Ph m vi Kích thư c Shortint -128..127 S nguyên có d u 8 bit Smallint -32768..32767 S nguyên có d u 16 bit Longint -2147483648..2147483647 S nguyên có d u 32 bit Int64 -2^63..2^63-1 S nguyên có d u 64 bit Byte 0..255 S nguyên dương 8 bit Word 0..65535 S nguyên dương 16 bit Longword 0..4294967295 S nguyên dương 32 bit B ng 2: Các ki u nguyênI.2. Ki u ký t (Char) Ki u ký t cơ b n bao g m AnsiChar và WideChar. AnsiChar là ki u ký t thôngthư ng, chi m kích thư c m t byte (tương t b ký t ASCII mà giáo trình s ñ c pph n ti p theo). WideChar là ki u ký t hai byte, là ki u ký t dùng ñ bi u di n b mãUnicode cho t p h p ký t . Tuy nhiên, các b n v n có th khai báo s d ng ki u ký t v i t khóa Char. Và trênth c t thì ki u Char tương ñương v i ki u AnsiChar. Ngoài Char và AnsiChar, Delphi cònh tr t p ký t m t byte thông qua các ki u: PChar, PAnsiChar và AnsiString. Tương tthì Delphi cũng h tr t p ký t Unicode (ngoài ki u WideChar) thông qua các ki u:PWideChar, WideString. M t ký t ñư c vi t trong c p d u nháy ñơn (). Ð ti n trao ñ i thông tin c n ph is p x p, ñánh s các ký t , m i cách s p x p như v y g i là b ng mã. B ng mã thông d nghi n nay là b ng mã ASCII (American Standard Code for Information Interchange). H mãASCII dùng nhóm 7 bit ho c 8 bit ñ bi u di n t i ña 128 ho c 256 ký t khác nhau và mãhóa theo ký t liên t c theo cơ s 16. Trang 26 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  32. 32. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn H mã ASCII 7 bit, mã hoá 128 ký t liên t c như sau: 0 : NUL (ký t r ng) 1 – 31 : 31 ký t ñi u khi n 32 – 47 : các ký t kho ng tr ng SP (space) ! “ # $ % & ‘ ( ) * + , - . / 48 - 57 : ký s t 0 ñ n 9 58 - 64 : các d u : ; < = > ? @ 65 - 90 : các ch in hoa t A ñ n Z 91 – 96 : các d u [ ] _ ` 97 – 122 : các ch thư ng t a ñ n z 123 – 127 : các d u { | } ~ DEL (xóa) H mã ASCII 8 bit (ASCII m r ng) có thêm 128 ký t khác ngoài các ký t nêutrên, g m các ch cái có d u, các hình v , các ñư ng k khung ñơn và khung ñôi và m t ský hi u ñ c bi t. Ð th c hi n các phép toán s h c và so sánh, ta d a vào giá tr s th t mã ASCIIc a t ng ký t , ch ng h n: A < a vì s th t mã ASCII tương ng là 65 và 97. Hàm Chr(n): Tr v ký t tương ng v i s th t mã ASCII n. Hàm Ord(ch): Tr v s th t c a ký t ch trong b ng mã ASCII. Ví d 1: V i khai báo bi n var ch: char; stt:byte; thì các câu l nh sau s có giá tr như sau: ch := chr(65); //ch = A stt := ord(A); //stt = 65B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 27
  33. 33. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B NG MÃ ASCII v i 128 ký t chu n Hex 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 0 16 32 48 64 80 96 112 1 SOH DC1 ! 1 A Q a q 1 17 33 49 65 81 97 113 2 STX DC2 “ 2 B R b r 2 18 34 50 66 82 98 114 3 ♥ DC3 # 3 C S c s 3 19 35 51 67 83 99 115 4 ♦ DC4 $ 4 D T d t 4 20 36 52 68 84 100 116 5 ♣ NAK % 5 E U e u 5 21 37 53 69 85 101 117 6 ♠ SYN & 6 F V f v 6 22 38 54 70 86 102 118 7 BEL ETB ‘ 7 G W g w 7 23 39 55 71 87 103 119 8 BS CAN ( 8 H X h x 8 24 40 56 72 88 104 120 9 HT EM ) 9 I Y I y 9 25 41 57 73 89 105 121 A LF SUB * : J Z j z 10 26 42 58 74 90 106 122 B VT ESC + ; K [ k { 11 27 43 59 75 91 107 123 C FF FS , < L l | 12 28 44 60 76 92 108 124 D CR GS - = M ] m } 13 29 45 61 77 93 109 125 E SO RS . > N ^ n ~ 14 30 46 62 78 94 110 126 F SI US / ? O _ o DEL 15 31 47 63 79 95 111 127 Hình 1: B ng mã ASCII chu nTrang 28 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  34. 34. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B NG MÃ ASCII v i 128 m r ng Hex 8 9 A B C D E F 0 Ç É á ░ └ ╨ α ≡ 128 144 160 176 192 208 224 240 1 ü æ í ▒ ┴ ╤ ß ± 129 145 161 177 193 209 225 241 2 é Æ ó ▓ ┬ ╥ Γ ≥ 130 146 162 178 194 210 226 242 3 â ô ú │ ├ ╙ π ≤ 131 147 163 179 195 211 227 243 4 ä ö ñ ┤ ─ ╘ Σ ⌠ 132 148 164 180 196 212 228 244 5 à ò Ñ ╡ ┼ ╒ σ ⌡ 133 149 165 181 197 213 229 245 6 å û ª ╢ ╞ ╓ µ ÷ 134 150 166 182 198 214 230 246 7 ç ù º ╖ ╟ ╫ τ ≈ 135 151 167 183 199 215 231 247 8 ê ÿ ¿ ╕ ╚ ╪ Φ ° 136 152 168 184 200 216 232 248 9 ë Ö ⌐ ╣ ╔ ┘ Θ · 137 153 169 185 201 217 233 249 A è Ü ¬ ║ ╩ ┌ · 138 154 170 186 202 218 234 250 B ï ¢ ½ ╗ ╦ █ δ √ 139 155 171 187 203 219 235 251 C î £ ¼ ╝ ╠ ▄ ∞ ⁿ 140 156 172 188 204 220 236 252 D ì ¥ ¡ ╜ ═ ▌ φ ² 141 157 173 189 205 221 237 253 E Ä ₧ « ╛ ╬ ▐ ε ■ 142 158 174 190 206 222 238 254 F Å ƒ » ┐ ╧ ▀ ∩ 143 159 175 191 207 223 239 255 Hình 2: B ng ASCII m r ngB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 29
  35. 35. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Ví d 2: Vi t chương trình in ra 256 ký t c a b ng mã ASCII: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh pcác dòng l nh ñ hoàn ch nh như hình sau: Hình 3: Chương trình in b ng mã ASCII Nh n t h p phím Ctrl+F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Consolenhư sau: Hình 4: K t qu chương trình ch ñ ConsoleI.3. Ki u s th c (Real type)I.3.1. Khái ni m Delphi, ki u s th c bi u di n m t t p h p các s mang d u ch m ñ ng (float,real). Kích thư c c a nó tùy thu c vào t khóa mà chúng ta s d ng trong khai báo. Trang 30 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  36. 36. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn T khóa Ph m vi Kích thư c (byte) Real48 2.9 x 10^-39 .. 1.7 x 10^38 6 Single 1.5 x 10^-45 .. 3.4 x 10^38 4 Double 5.0 x 10^-324 .. 1.7 x 10^308 8 Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 10 Comp -2^63+1 .. 2^63 -1 8 Currency -922337203685477.5808.. 8 922337203685477.5807 B ng 3: Các t khoá c a ki u th c Tuy nhiên, ki u s th c chúng ta thư ng dùng ñư c khai báo b ng t khóa Real,trong Delphi ki u Real tương ñương v i ki u Double. T khóa Ph m vi Kích thư c (byte) Real 5.0 x 10^-324 .. 1.7 x 10^308 8 B ng 4: Ki u RealI.3.2. M t s phép toán và hàm trên ki u s (s nguyên và s th c) Các phép toán s h c hai ngôi: Phép toán Ý nghĩa Ki u toán h ng Ki u k t qu + C ng integer, real integer, real - Tr integer, real integer, real * Nhân integer, real integer, real / Chia th c integer, real real div Chia nguyên integer integer mod L y ph n dư integer integer B ng 5: Các phép toán 2 ngôi Ví d 3: V i các bi n x, y, z ki u integer x := 3*2; // x = 6 y := 15 div 6; // t = 2 z := 15.5 mod 5; // l i Tuy nhiên, phép toán + và toán - còn có th là phép toán m t ngôi: Phép toán Ý nghĩa Ki u toán h ng Ki u k t qu Ví d + (unary) d u dương integer, real integer, real +7 - (unary) d u âm (l y s ñ i) integer, real integer, real -7 B ng 6: Các phép toán 1 ngôiB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 31
  37. 37. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Khi th c hi n các phép toán chúng ta c n chú ý m t s ñi m ñ c bi t sau: - K t qu c a phép chia th c (/) luôn luôn có ki u Extented, không quan tâm ñ n ki u c a các toán h ng. - Phép toán mod là phép toán l y ph n dư. - Khi th c hi n phép chia x/y (hay là x mod y ho c x div y) thì y ph i khác 0, n u y có giá tr 0 thì chương trình s phát sinh l i. M t s hàm chuy n ñ i ki u d li u: function IntToStr ( Number : Integer ) : string; //Unit: SysUtils function IntToStr ( BigNumber : Int64 ) : string; //Unit: SysUtils Hàm IntToStr là hàm th c hi n vi c chuy n ñ i m t s nguyên (ho c s int64) thànhm t chu i s . function FloatToStr(Value: Extended): string; //Unit: SysUtils function FloatToStr(Value: Extended; const FormatSettings: TFormatSettings): string; Hàm FloatToStr chuy n ñ i m t s th c hay s d u ch m ñ ng (Value) thành m tchu i bi u di n tương ng cho s ñó. B ng dư i ñây là các hàm liên quan ñ n ki u s : Hàm Ý nghĩa abs(x); |x| : l y giá tr tuy t ñ i c a s x arctan(x:extended): extended; arctang(x) cos(x: extended): extended; cos(x) : l y cos c a x exp(x: real): real; ex frac(x:extended): extended; Tr v ph n th p phân c a bi n x inc(var x [ ; n: longint ] ); tăng bi n x lên 1 ho c n giá tr int(x: extended): extended; Tr v ph n nguyên c a bi n x ln(x); ln x : l y logarit nepe c a tr x (e ≅ 2.71828) max(a,b: numbertype): numbertype; Tr v s l n hơn trong hai s a và b. min(a,b: numbertype): numbertype; Tr v s nh thua trong hai s a và b. Ki m tra n có ph i là s l hay không: odd(n: integer|int64):boolean; True: N u n l False: N u n ch n. pi: extended; Tr v giá tr pi=3.1415926535897932385. Tr v m t s ng u nhiên x và 0 <= x < range, random[( range: integer)]; n u range không ch ra thì 0 <= x < 1. sqr(x); x2 : l y bình phương tr s x sqrt(x); : l y căn b c 2 c a x sin(x); sin (x) : l y sin c a x succ(x); Tr v giá tr sau c a x Trang 32 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  38. 38. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn trunc(x: extended): int64; L y ph n nguyên c a x round(x: extended): int64; Làm tròn giá tr c a x, l y s nguyên g n x nh t B ng 7: Các hàm x lý s Ví d 4: Vi t chương trình tính chu vi và di n tích c a hình ch nh t: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh pcác dòng l nh ñ hoàn ch nh như hình sau: Hình 5: Chương trình tính chu vi di n tích hình ch nh t Nh n t h p phím Ctrl + F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Consolenhư sau: Hình 6: K t qu chương trình ch ñ ConsoleB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 33
  39. 39. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơnI.4. Ki u logic (Boolean)I.4.1. Khái ni m M t d li u thu c ki u boolean là m t ñ i lư ng có th nh n ñư c m t trong hai giátr logic là true (ñúng) và false (sai). Delphi cung c p 4 ki u boolean sau: T khóa Kích thư c (byte) Boolean 1 ByteBool 1 WordBool 2 LongBool 4 B ng 8: Ki u logic Trong ñó, ki u Boolean là ki u tương thích v i ki u Boolean c a Pascal và ñư c ưathích hơn c . M t giá tr ki u ByteBool, LongBool ho c WordBool ñư c xem là true n unó có giá tr khác 0, ngư c l i là false.I.4.2. Phép toán Boolean T khóa Ý nghĩa Not Phép toán ph ñ nh And Phép toán và Or Phép toán ho c B ng 9: Các phép toán trên ki u logic Cú pháp: • Phép toán and: (x1) and (x2) and ... and (xn) tr v k t qu là true khi t t c các toán h ng là true, ngư c l i tr v false. • Phép or: (x1) or (x2) or ... or (xn) cho k t qu là false khi t t c các toán h ng là false, ngư c l i tr v true. Ví d 5: Ví d : v i x, y, z ki u boolean, ta có: x := (2<3) and (5<5) and (0<>1); // x = False y := (2>3) or (5>5) or (0<>1); // y = True z := not (y); // z = False ð hi n th giá tr boolean lên màn hình, b n s d ng hàm có s n trong Delphi: function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string; N u b n mu n hi n th giá tr c a B là chu i ký t True ho c False thì choUseBoolStrs = True; còn n u mu n hi n th giá tr c a B là -1 ho c 0 thì thì choUseBoolStrs = False.II. Câu l nh (statement) Trong m t chương trình Delphi, sau ph n mô t d li u là ph n mô t các câu l nh.Các câu l nh có nhi m v xác ñ nh các công vi c mà máy tính ph i th c hi n ñ x lý cácd li u ñã ñư c mô t và khai báo. Câu l nh ñư c chia thành câu l nh ñơn gi n và câu l nhcó c u trúc. Trang 34 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  40. 40. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Các câu l nh ph i ñư c ngăn cách v i nhau b i d u ch m ph y (;) và các câu l nhcó th vi t trên m t dòng hay nhi u dòng.III. L nh ñơn (Simple statement) L nh ñơn là l nh không ch a b t kỳ câu l nh nào khác. Các l nh ñơn bao g m: l nhgán, l nh g i hàm và th t c, l nh nh y (goto).IV. L nh gán (Assignment statement) M t trong các l nh ñơn gi n và cơ b n nh t c a Delphi là l nh gán. M c ñích c al nh này là gán cho m t bi n ñã khai báo m t giá tr nào ñó cùng ki u (hay tương thích)v i bi n. Cú pháp c a l nh gán là: Bi n := bi u_th c; L nh gán s ñ t l i giá tr hi n hành c a bi n b ng giá tr m i n m bên ph i toán tgán (d u hi u :=). Ví d 6: Khi ñã khai báo var c: char; i: integer; x: real; p, q: boolean; thì ta có th có các phép gán sau: c := A; c := chr(90); i := 35; i := i div 7; x := 0.5; x := i + 1; p:= (i >= 1) and (i < 100); q := not p; Ý nghĩa: Bi n và các phát bi u gán là các khái ni m quan tr ng c a m t h các ngôn ng l ptrình, chúng ph n ánh cách th c ho t ñ ng c a máy tính, ñó là: - Lưu tr các giá tr khác nhau vào m t ô nh t i nh ng th i ñi m khác nhau. - M t quá trình tính toán có th coi như là m t quá trình làm thay ñ i giá tr c a m t (hay m t s ) ô nh nào ñó, cho ñ n khi ñ t ñư c giá tr c n tìm.V. L nh g i th t c và hàm Trong l p trình OOP, thu t ng hàm (Function), th t c (Procedure) và phương th c(Method) là khái ni m quen thu c v i ngư i l p trình. ð các b n có th n m b t ñư cki n th c l p trình trong Delphi, Giáo trình ñưa ra trư c khái ni m này m t cách ng n g nnhư sau: Hàm và th t c ñư c g i chung là chương trình con. Hàm ñư c xây d ng thông quatên hàm và danh sách các tham s hình th c n u có, m i hàm thì luôn tr v duy nh t 1giá tr . Còn th t c thì có tên th t c và danh sách các tham s hình th c n u có. Khác v iB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 35
  41. 41. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơnhàm, th t c KHÔNG tr v m t giá tr nào c , nó thư ng bao g m m t dãy các câul nh c n ñư c th c hi n m t cách tu n t ñ gi i quy t m t công vi c nào ñó. B n c n phân ra 2 giai ño n rõ ràng: Xây d ng chương trình con, và s d ng chươngtrình con. Ví d 7: V hàm - Function - Xây d ng hàm: B n vi t hàm tính t ng 2 s a và b và k t qu tr v c a hàm chínhlà k t qu a + b. Nó có hình d ng như sau: function Cong(a, b: single) : single; begin Cong := a + b; end; - S d ng hàm (L i g i hàm): b n c n tính phép c ng c a 2 con s c th nào, ch ng h n b n mu n 5 c ng v i 7, thì như v y b n s truy n s 5 vào cho a và 7 vào cho b. C th b n s g i như sau: mTong := Cong(5,7); //v i bi n mTong ki u Single và mTong = 12Như v y bư c xây d ng: a và b ñư c g i là tham s hình th c. Còn bư c g i hàm thì 5và 7 ñư c g i là các tham s th c. Ví d 8: V th t c – Procedure - Xây d ng th t c: B n vi t th t c hi n th ra màn hình n câu chào “Welcome toDelphi!…”, v i n có th là 1 l n, 3, 10, … 100 l n ch ng h n: procedure Welcome(n: integer); var i: integer; begin for i:=1 to n do writeln (‘Welcome to Delphi!…’); end; - S d ng th t c (L i g i th t c): ñây mu n hi n th 5 câu chào, thì b n ra câul nh như sau: Welcome(5); //Hi n th 5 câu chào Khái ni m phương th c trong m t l p cũng ñư c xem là th t c ho c hàm (Membermethod). Ki n th c này các b n s ñư c h c chương 5. ñây, các b n c n chú ý ñi unày: Phương th c là chương trình con mà Delphi ñã xây d ng s n trong m i l p/thànhph n (Class/Component) cho b n (Th t kh e làm sao!…), b n ch c n l y trong “túi khôn”c a Delphi ñ s d ng vi t chương trình mà thôi. Tóm l i: Khi s d ng phương th c hay các chương trình con ñã ñư c xây d ng s nb i Deplhi, b n c n n m rõ m i phương th c, th t c ho c hàm có bao nhiêu tham s hìnhth c và ki u c a chúng là gì ñ truy n vào cho chúng các tham s th c tương ng choñúng yêu c u c a b n. Ví d v i cú pháp th t c có s n trong Delphi là: procedure ShowMessage(const Msg: string);thì b n ch c n l y ra s d ng v i câu l nh ñơn gi n như sau: ShowMessage(‘Toi dang hoc Delphi day nhe!…’); Các b n s ñư c h c chi ti t các khái ni m này trong chương “L p Trình X Lý SKi n” và “Chương Trình Con” các ph n sau. Trang 36 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  42. 42. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơnVI. L nh Goto T thân chương trình con, b n có th s d ng l nh goto ñ chuy n hư ng th c hi nchương trình t i m t v trí b t kỳ thông qua m t nhãn ñã ñư c khai báo trư c. Cú pháp l nh goto: Goto nhãn; V i nhãn ñư c khai báo v i cú pháp sau: Label Tên_nhãn; L nh goto là l nh nh y không ñi u ki n, nó chuy n hư ng th c thi c a chương trìnhñ n v trí mà nhãn ñang ñ ng. Trong phong cách l p trình OOP, l nh goto t ra b l i th i và r t ít khi ñư c dân l ptrình s d ng. Ví d 9: Minh h a l nh goto ñ tính bi u th c a/b. T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh pcác dòng l nh ñ hoàn ch nh như hình sau: Hình 7: Ví d minh h a l nh goto và khai báo nhãn - label Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Consolenhư sau: Hình 8: K t qu chương trình.B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 37
  43. 43. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi CHƯƠNG 5: L P TRÌNH X LÝ S KI N – CÁC THÀNH PH N TRONG GIAO DI N DELPHI I. L p trình x lý s ki n I.1. L p (Class) và ñ i tư ng (Object) Trong các chương trư c, các b n ñã ñư c bi t ñ n cách l p trình tu n t ch ñ Console Application và bi t ñư c m t s khái ni m cơ s . chương này, các b n s ñư c trình bày m t phương pháp l p trình chính c a giáo trình và r t ph bi n hi n nay ñó là l p trình s ki n d a trên n n t ng c a l p trình hư ng ñ i tư ng (OOP: Object-Oriented Programming). Trong cu c s ng, b n th y có nhi u ñ i tư ng ñư c x p chung vào m t lo i/l p, ch ng h n như nh ng ngư i còn ñi h c ta x p chung v i m t l p ñó là l p SINHVIÊN, nh ng ngư i ñi làm vi c thì x p vào l p CBCNV. Như v y ta có hình nh như sau: t t c m i ngư i ñ u ñư c x p chung vào m t l p trên cùng là l p NGƯ I. Ta cũng có th phân chia nh ng ngư i trong l p NGƯ I này thành hai nhóm là SINHVIÊN và CBCNV d a vào tính ch t ñ phân bi t là ñang ñi làm hay còn ñi h c. - H tên NGƯ I - Ngày sinh - Phái - v.v...- Mã s SV - Mã cán b- Ngành h c SINHVIÊN CBCNV - B c lương- v.v... - v.v... - v.v... Hình 1: Mô hình các l p C th : N u xét m t gia ñình công ch c g m 4 th c th ngư i là ngư i A – cha, B - m : ñi làm; anh C, ch D: ñang ñi h c ch ng h n, thì như th ta có 2 ñ i tư ng A, B ñư c t o ra t l p CBCNV và 2 ñ i tư ng C, D ñư c sinh ra t l p SINHVIÊN và c 4 ñ i tư ng này ñ u có nh ng tính ch t chung ñư c th a hư ng t l p NGƯ I, và như v y 2 l p SINHVIÊN và CBCNV là các l p d n xu t t l p NGƯ I. I.1.1. L p (Class) L p là m t khái ni m ñư c s d ng r t nhi u trong cách l p trình OOP. Vi c hi u rõ các ki n th c v l p thì n m ngoài ph m vi c a giáo trình này. Do v y, giáo trình ch ñưa ra các khái ni m r t cơ b n v l p, m c ñích ñ các b n d hi u hơn v ñ i tư ng (Object), là m t thành ph n r t ph bi n trong l p trình c a Delphi. Như v y, l p ñư c dùng ñ ñ nh nghĩa ra ki u d li u c u trúc mà nó bao g m 3 thành ph n cơ b n: - Các trư ng (Fields): là các bi n d li u c a l p. Trang 38 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  44. 44. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi - Các phương th c (Methods): là các hàm hay th t c ñ th c hi n thao tác nào ñó trên ñ i tư ng. Có 2 phương th c ñ c bi t trong l p mà b n c n lưu ý ñó là phương th c t o (Constructor) và phương th c h y (Destructor) s ñư c dùng khi m t ñ i tư ng (Object) ñư c t o nên ho c b h y. - Các thu c tính (Attributes) cu m t l p bao g m các bi n, các h ng, hay tham s n i t i c a l p ñó. Tính ch t quan tr ng nh t c a các thu c tính khi chúng là bi n là có th b thay ñ i trong quá trình ho t ñ ng c a m t ñ i tư ng. Thông thư ng ñ truy xu t các bi n trư ng, ta d a vào tr ng thái c a thu c tính là ñ c (read) hay ghi (write) ñ nh n hay là thi t l p giá tr cho chúng. L p ñư c khai báo theo cú pháp như sau: type className = class (ancestorClass) memberList end; Trong ñó: - ancestorClass là l p cha/t tiên c a l p d n xu t (descendant) là className, l p className s ñư c th a hư ng (inheritance) t l p cha. Trong Delphi l p th y t là l p TObject. - memberList là các thành ph n c a l p là trư ng, phương th c và thu c tính c a l p ñã ñư c trình bày trên. Trong ví d gi i phương trình b c nh t trên, ta có m t l p TfrmPTB1 ñư c d nxu t t l p cha là l p TForm, l p TForm l i ñư c d n xu t t l p TCustomForm,... và cth nó ñư c d n xu t t l p th y t trong Delphi là l p TObject như hình sau: Hình 2: L p TfrmPTB1 và các l p t tiên (Ancestor Classes) c a nóB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 39
  45. 45. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Ví d 1: Khai báo l p TfrmPTB1 cho form unit untPtb1.Pas ví d trên như sau: type TfrmPTB1 = class(TForm) lbl_a: TLabel; lbl_b: TLabel; edt_a: TEdit; edt_b: TEdit; lbl_KQua: TLabel; memKQua: TMemo; pnlLine: TPanel; btnXuLy: TButton; btnKetThuc: TButton; procedure btnXuLyClick(Sender: TObject); procedure btnKetThucClick(Sender: TObject); private { Private declarations } public { Public declarations } end;I.1.2. ð i tư ng (Object) ð i tư ng là th c th (Instance) ñư c sinh ra t m t l p (Class), hay nói cách kháckhi ta khai báo m t bi n thu c m t l p nào ñó, thì bi n ñó chính là m t ñ i tư ng m iñư c c p phát. ð i tư ng này ñư c t o ra b i phương th c constructor và s b gi i phóngb i phương th c destructor. * Quy cách ñ t tên ñ i tư ng: Trong phong cách l p trình chuyên nghi p, quy ư c ñ t tên cho ñ i tư ng thư ngñư c ghép 2 ph n: ti n t và tên g i nh c a ñ i tư ng ñó. Ti n t thư ng có 3 ký t ñxác ñ nh ñ i tư ng ñó thu c lo i thành ph n nào. Trong giáo trình này g i ý cho các b ncác ti n t (prefix) cho các ñ i tư ng c a các thành ph n như sau: ð i tư ng Ti n t Ví d Form frm frmWelcome, frmMain Label lbl lblHeSo, lblHoTen Edit edt edt_a, edtHoTen Button btn btnGiai, btnXuLy SpinEdit: spe speNhietDo, speGia1TC LabeledEdit lbe lbeDonGia, lbeThanhTien ListBox lbx lbxBaiHat, lbxFont CheckBox chk chkMatHang, chkDelphi ComboBox cbo cboToanTu, cboPhai GroupBox gbx gbxMonHoc, gbxMatHang Trang 40 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  46. 46. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi ð i tư ng Ti n t Ví d CheckListBox clb clbTenMH, clbDMVT ValueListEditor vle vleMatHang, vleBaoGia Memo mem memDanhSach, memKQ RadioButton rbt rbtNam, rbtNu RadioGroup rgp rgpGioiTinh, rgpCourses StringGird stg stgAlphabet, stgMaTranA Panel pnl pnlDieuKhien, pnlDrives PopupMenu pmu pmnMauSac, pmnGames MainMenu mmu mmuMainForm, mmuQLSV MenuItem mni mniCopy, mniPaste B ng 1: Quy cách ñ t tên các ñ i tư ng Ví d 2: Khai báo m t th c th (ñ i tư ng) frmPTB1 như sau: var frmPTB1: TfrmPTB1; // ñ i tư ng frmPTB1 c a l p TFrmPTB1 L p trình hư ng ñ i tư ng là s g n k t gi a d li u và các hàm x lý d li u t othành ñ i tư ng. M i ñ i tư ng bao g m: - Thu c tính (Properties): là d li u c a ñ i tư ng. - Phương th c (Methods): là nh ng hành ñ ng mà ñ i tư ng có th thi hành. - S ki n (Events): là nh ng hành ñ ng c a ñ i tư ng ñó ñáp ng l i thông qua th t c s ki n do ngư i l p trình cài ñ t, khi ngư i dùng tương tác v i chương trình. Ví d 3: Trong chương này, các b n s ñư c h c cách s d ng các thu c tính và các s ki n c a các ñ i tư ng thông qua m t chương trình ñ u tiên là “prjWelcome.dpr” - Bư c 1: B n vào ch c năng: File/New/Application ñ t o ra d án m i. Hình 3: Hình nh c a New Form. T c a s thu c tính và s ki n c a ñ i tư ng (Object Inspector), d a vào thu c tínhname, b n ñ t tên cho form là frmWelcome ñ Delphi ñ nh nghĩa ra 1 l p có tên làTfrmWelcome ñư c d n xu t t l p cha là TForm như sau:B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 41
  47. 47. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi type TfrmWelcome = class(TForm) // memberList end;Và khai báo m t ñ i tư ng có tên là frmWelcome thu c ki u l p TfrmWelcome như sau: var frmWelcome: TfrmWelcome; Hình 4: Hình nh l p TfrmWelcome và ñ i tư ng frmWelcome - Bư c 2: T b ng các thành ph n (Component Palette), click vào th Standard r i l n lư t ñ t các thành ph n TLabel, TEdit, và TButton lên Form: Hình 5: Các ñ i tư ng Label, Edit và Button ñ t trên Form. Trang 42 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  48. 48. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trong môi trư ng l p trình IDE, các l p trong Delphi thư ng ñư c cài ñ t thành cácthành ph n (TComponent) ñ ngư i l p trình d dàng th a hư ng khi thi t k và vi t mãl nh. Như v y: Tên l p cũng chính là tên thành ph n. T ñây v sau, thu t ng “ñ i tư ng A c a m t thành ph n TA” ñư c vi t ng ng n là “ñ i tư ng A”. Ví d 4: Câu l nh frmWelcome:TForm; ñ c ñ y ñ là “ñ i tư ng frmWelcome thu c l p (thành ph n) TForm”. Tuy nhiên, ta có th ñ c g n l i như: “ñ i tư ng frmWelcome”, ho c câu l nh btnGiai:TButton; ñư c ñ c là “nút l nh btnGiai” hay “ñ i tư ng btnGiai”.I.2. Thu c tính M i thành ph n ñ u có nh ng thu c tính ñ xác ñ nh nh ng ñ c tính c a thành ph nñó ch ng h n như màu s c (Color), v trí (Position), kích thư c và tr ng thái (State) c achúng. Trong các thu c tính này, b n c n quan tâm nh t ñ n thu c tính tên (Name) c a ñ itư ng. - Bư c 3: L n lư t thi t l p các thu c tính Name, Caption cho ñ i tư ng Label và các thu c tính Name, Text cho ñ i tư ng Edit: Tên l p Tên ñ i tư ng Hình 6: C a s thu c tính và s ki n c a ñ i tư ng lblHoTen và edtHoTen Tương t , ñ i tư ng thu c thành ph n TButton có thu c tính Name là btnChao vàCaption là “&Chao”, ñ i tư ng c a TForm có thu c tính Name là frmWelcome và Captionlà “Welcome to Delphi 7.0” Cách truy xu t thu c tính c a ñ i tư ng: Tên_ñ i_tư ng.Thu c_tínhB môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 43
  49. 49. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Ví d 5: Gán thu c tính Enabled c a lblHoTen b ng True là: lblHoten.Enabled := True;I.3. Phương th c (Method) Là th t c (Procedure) ho c hàm (Function) ñã ñư c xây d ng s n cho công vi c nàoñó c a ñ i tư ng. Ta có th g i phương th c này trong quá trình vi t mã (Coding) ñchúng thi hành khi chương trình ch y. Cách truy xu t phương th c ñ i tư ng: Tên_ñ i_tư ng.Phương_th c; Ví d 6: G i phương th c Hide và Show ñ th c hi n vi c n và hi n c a ñ i tư ng frmWelcome là: frmWelcome.Hide; và frmWelcome.Show;I.4. S ki n (Event) ðó chính là m t thao tác c a ngư i s d ng tác ñ ng lên ñ i tư ng và nó s ñáp ngl i b ng vi c th c hi n m t công vi c nào ñó. Các s ki n thông thư ng là trên mouse vàkeyboard như: Click, RightClick, DoubleClick, KeyPress, Drag and drop,… Tên s ki n Tên th t c s ki n s ki n. Hình 7: S ki n OnClick c a btnChao Như hình trên, ñ i tư ng btnChao có nhi u s ki n như: OnClick, OnContextPopup,OnDragDrop,... c a tab Event tương ng trên c t Action. M i s ki n này tương ng v im t th t c s ki n ñ x lý s ki n ñó (Event handers) n m c t bên ph i tương ng. Trang 44 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT

×