SlideShare uma empresa Scribd logo
1 de 258
Baixar para ler offline
TRƯ NG ð I H C C N THƠ
KHOA KHOA H C T NHIÊN
Giáo trình lý thuy t
LẬ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
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang i
M C L 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 ......................................................................................................20
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCTii
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)..................................................................................71
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang iii
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 .........................................195
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCTiv
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 ............................................................................................252
Chương 1: D li u và Thu t toán
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 1
CHƯƠNG 1: D LI U VÀ THU T TOÁN
I. 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ông
bá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ông
tin 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 t
ch 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 n
theo 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ình
x lý nào ñó ñ nh n ñư c thông tin ñ u ra (Output).
Hình 1: Mô hình t ng quát quá trình x lý thông tin
II. 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áy
tí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 t
cá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 .
NH P D LI U
(INPUT)
X LÝ
(PROCESSING)
XU T D LI U
(OUTPUT)
LƯU TR (STORAGE)
Chương 1: D li u và Thu t toán
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT2
- 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án
theo 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 ng
ngô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ư c
gi 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.
Chương 1: D li u và Thu t toán
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 3
II.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 s
qui ư 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 ñ
Chương 1: D li u và Thu t toán
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT4
Ví d 3: Mô t thu t toán theo ngôn ng lưu ñ c a phương trình ax + b = 0
Hình 3: Lưu ñ thu t toán PTB1
B t ñ u
Nh p a,b
a=0
b=0
Phương trình
vô s nghi m
Phương trình
vô nghi m
x := -b/a
K t thúc
ðúng
ðúng
Sai
Sai
Xu t nghi m x
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 5
CHƯƠNG 2: BORLAND DELPHI
I. T ng quan v Delphi
I.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 nh
v 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 p
trình hư ng ñ i tư ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngày
nay, Delphi ñã ñư c phát tri n thành môi trư ng xây d ng ng d ng t c th i RAD (Rapid
Application 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 h
th ng, v.v… không nh ng trên n n Windows mà còn cho c Linux và .NET. Trong giáo
trì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ành
Windows. V i kh năng m nh như v y c a Delphi, b n an tâm khi dùng nó ñ tri n khai
cá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 ng
r 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 Tin
h 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 ng
khá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 ng
và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áo
trì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ên
n n Windows, ñó chính là môi trư ng phát tri n tích h p IDE (Integrated Development
Environment) và ngôn ng hư ng ñ i tư ng Borland Pascal. Các b n s ñư c h c cách
thi 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 nay
Delphi ñã 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 t
trì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 nay
cho 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 s
chí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ác
thà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.
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT6
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 nh
II.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 (Project
name) 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 c
II.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 t
d á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 chi
ti t ph n sau.
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 7
Hình 2: Thanh th c ñơn chính
II.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 g
l i (Debug), thanh hi n th (View),… M i nút (Button) trên thanh công c thư ng là m t
thao 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 c
II.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 n
trong 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ành
ph 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ương
trì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 n
có 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 a
cá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 Standard
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT8
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)
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 o
ra 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ên
Properties, 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 t
form. 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 giao
di 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 trong
t 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 form
cũ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 (Unit
file/ 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ông
thư 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 cho
form và các component trên nó.
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 9
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 s
d 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.dfm
II.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,… Th
Events 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 ñ ng
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT10
t 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 nh
tươ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 ñ t
chú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 Delphi
III.1. T p tin d án: (Delphi project file)
Hình 9: T p tin d án prjPtb1.dpr
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 11
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 unit
và 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.pas
và 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ương
trì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.pas
và 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 bao
g 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 tin
nà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 t
v 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 ñư c
thi 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 a
nó 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 .dpr
III.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 p
tin 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 u
t 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ác
s 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à .pas
III.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 tin
nà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.
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT12
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 View
as 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ăng
RClick ch n ch c năng View as Form hay t h p phím Alt+F12:
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 13
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 v
phiên b n (Version) cũng như bi u tư ng c a ng d ng (Application icon) d ng mã nh
phâ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ình
Image Editor ñư c kèm theo b Delphi.
Hình 13: Giao di n chương trình x lý nh – Image Editor
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT14
IV. Các thao tác cơ b n trên Delphi
IV.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 án
m i t o như hình sau:
Hình 14: D án m i t o
IV.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 n
ph 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 ng
là 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
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 15
- T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "Save
Uniti 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 ñĩa
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT16
Ti p ñ n, Click ch n bi u tư ng "Create New Folder" ñ t o thư m c m i ch a các
t 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
Chương 2: Borland Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 17
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 "File
name", ñâ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 tin
d á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ên
prjHelloWorld.dpr, và Click Save.
Hình 21: H p tho i Save Projecti As: Nh p tên t p tin d án
Chương 2: Borland Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT18
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ưu
toà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:HelloWorld
IV.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
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 19
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ái
ni 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 t
project m i theo d ng Console Application, b n s d ng ch c năng
File/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ùng
nó 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
array
begin
case
class
const
div
do
downto
for
function
goto
if
implementation
interface
label
mod
object
record
repeat
set
to
try
type
unit
until
uses
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT20
else
end
finalization
finally
of
procedure
program
property
var
while
with
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 danh
hi 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 ng
IV.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. Ta
dù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'
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 21
Chú ý: Bi u th c h ng ñây có th là s , chu i ký t , các h ng true, false, nil,… k t
h 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 hay
con 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úc
chươ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 trong
cá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ác
t 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 n
như sau:
var //Khai báo bi n theo ki u ngư i dùng ñ nh nghĩa
i, j: SoNguyen;
dtb: Diem;
t: Tuoi;
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT22
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 ghi
nh 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 ñ i
trong 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 n
thô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ách
nhau 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 ñ nh
nghĩ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 t
bi 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 c
VII.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
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 23
- 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ác
phé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 a
m 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 MyChar
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT24
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 p
cá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 ñ Console
như 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 u
thì không ñư c phép l ng nhau.
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 25
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.
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT26
CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN
I. 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 s
nguyê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 i
cá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ên
I.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ông
thư ng, chi m kích thư c m t byte (tương t b ký t ASCII mà giáo trình s ñ c p
ph 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ên
th c t thì ki u Char tương ñương v i ki u AnsiChar. Ngoài Char và AnsiChar, Delphi còn
h tr t p ký t m t byte thông qua các ki u: PChar, PAnsiChar và AnsiString. Tương t
thì 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 i
s 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 ng
hi 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.
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 27
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êu
trê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 s
ký 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ã ASCII
c 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 = 65
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT28
B NG MÃ ASCII v i 128 ký t chu n
Hex 0 1 2 3 4 5 6 7
0 NUL
0
DLE
16
SP
32
0
48
@
64
P
80
`
96
p
112
1 SOH
1
DC1
17
!
33
1
49
A
65
Q
81
a
97
q
113
2 STX
2
DC2
18
“
34
2
50
B
66
R
82
b
98
r
114
3 ♥
3
DC3
19
#
35
3
51
C
67
S
83
c
99
s
115
4 ♦
4
DC4
20
$
36
4
52
D
68
T
84
d
100
t
116
5 ♣
5
NAK
21
%
37
5
53
E
69
U
85
e
101
u
117
6 ♠
6
SYN
22
&
38
6
54
F
70
V
86
f
102
v
118
7 BEL
7
ETB
23
‘
39
7
55
G
71
W
87
g
103
w
119
8 BS
8
CAN
24
(
40
8
56
H
72
X
88
h
104
x
120
9 HT
9
EM
25
)
41
9
57
I
73
Y
89
I
105
y
121
A LF
10
SUB
26
*
42
:
58
J
74
Z
90
j
106
z
122
B VT
11
ESC
27
+
43
;
59
K
75
[
91
k
107
{
123
C FF
12
FS
28
,
44
<
60
L
76

92
l
108
|
124
D CR
13
GS
29
-
45
=
61
M
77
]
93
m
109
}
125
E SO
14
RS
30
.
46
>
62
N
78
^
94
n
110
~
126
F SI
15
US
31
/
47
?
63
O
79
_
95
o
111
DEL
127
Hình 1: B ng mã ASCII chu n
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 29
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 ng
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT30
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 p
cá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 ñ Console
như sau:
Hình 4: K t qu chương trình ch ñ Console
I.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.
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 31
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..
922337203685477.5807
8
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 Real
I.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ôi
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT32
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ành
m 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 t
chu 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.
odd(n:integer|int64):boolean;
Ki m tra n có ph i là s l hay không:
True: N u n l
False: N u n ch n.
pi: extended; Tr v giá tr pi=3.1415926535897932385.
random[( range: integer)];
Tr v m t s ng u nhiên x và 0 <= x < range,
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
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 33
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 p
cá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 ñ Console
như sau:
Hình 6: K t qu chương trình ch ñ Console
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT34
I.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 ưa
thích hơn c . M t giá tr ki u ByteBool, LongBool ho c WordBool ñư c xem là true n u
nó 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ì cho
UseBoolStrs = True; còn n u mu n hi n th giá tr c a B là '-1' ho c '0' thì thì cho
UseBoolStrs = 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ác
d 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 nh
có c u trúc.
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 35
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 nh
có 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 nh
gá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 a
l 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 t
gá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 p
trì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 ñư c
ki 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 n
như 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 qua
tê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 1
giá 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 i
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT36
hà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âu
l 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ương
trì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ính
là 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 = 12
Như 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ì 5
và 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 to
Delphi!…”, 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âu
l 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 (Member
method). 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 u
nà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ành
ph 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 n
b 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ình
th 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ý S
Ki n” và “Chương Trình Con” các ph n sau.
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 37
VI. 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 n
chươ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 p
trì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 p
cá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 ñ Console
như sau:
Hình 8: K t qu chương trình.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT38
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ì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.
NGƯ I
- H tên
- Ngày sinh
- Phái
- v.v...
- Mã cán b
- B c lương
- v.v...
- v.v...
- Mã s SV
- Ngành h c
- v.v...
SINHVIÊN CBCNV
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 39
- 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 n
xu t t l p cha là l p TForm, l p TForm l i ñư c d n xu t t l p TCustomForm,... và c
th 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ó
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT40
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ác
khi 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óng
b 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 n
cá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
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 41
ð 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 o
thà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ính
name, 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:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT42
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.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 43
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ác
thà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 n
g 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 a
chú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 ñ i
tư 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:
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à Caption
là “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ính
Tên l p
Tên ñ i
tư ng
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT44
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 ng
l 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,…
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 i
m 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.
Tên s ki n
Tên th t c
s ki n s
ki n.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 45
I.5. X lý s ki n (Event Handlers)
ðó chính là th t c s ki n, thân th t c s ki n này bao g m các câu l nh mà ngư i
l p trình vi t trong nó ñ th c hi n m t công vi c, ch c năng nào ñó.
Cách hình thành th t c s ki n:
procedure Tên_Thành_Ph n_Form.Tên_ñ i_tư ngS _ki n([DanhSáchCácThamS ]);
Ví d 7: Th t c s ki n OnClick cho nút l nh btnChao c a frmWelcome (hay còn
g i là th t c s ki n btnChaoClick c a l p TfrmWelcome) ñư c hình
thành như sau:
procedure TfrmWelcome.btnChaoClick(Sender: TObject);
- Bư c 4: hình 5, nh p ñúp lên nút l nh Chao, ho c hình 7 b n nh p ñúp lên
c t bên ph i c a s ki n OnClick tương ng ñ m ra m t th t c s ki n có tên
là TfrmWelcome.btnChaoClick (Sender: TObject) như sau:
Hình 8: Th t c s ki n btnChaoClick m i t o c a s ki n OnClick
Ti p ñ n b n gõ m t s l nh vào trong thân c a th t c s ki n như hình sau:
tên thành ph n hay
tên l p form
tên nút l nh
btnChao
s ki n
OnClick
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT46
Hình 9: Vi t code cho th t c s ki n btnChaoClick
I.6. Trình h tr mã l nh (Code Completion /IntelliSense)
Trong cách l p trình hư ng ñ i tư ng (OOP) và nh t là khi ngôn ng l p trình có
h tr môi trư ng phát tri n IDE thì s thu c tính, phương th c, s ki n và các th t c s
ki n c a t ng ñ i tư ng là vô cùng phong phú (do tính th a hư ng). Vi c nh chính xác cú
pháp c a chúng là m t vi c làm không tư ng ñ i v i b t kỳ m t l p trình viên nào (vì
không ch có duy nh t m t ngôn ng l p trình Delphi!). ð giúp cho ngư i l p trình "d
th " hơn, Delphi có ñưa ra menu ng c nh r t h u ích ñ h tr cho vi c vi t code này và
ñư c g i là Trình h tr mã l nh (Code Completion).
Trong lúc b n vi t code, khi b n gõ tên ñ i tư ng r i ñ n d u ch m, thì Code
Completion s xu t hi n như hình sau:
Hình 10: Trình h tr mã l nh
II. Sinh mã t ñ ng và m t s cách s a l i
II.1. Cách t ñ ng sinh mã (generate code) trong Delphi
- Khi m i t o m i m t d án (Form Application) như hình nh sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 47
Hình 11: Mã l nh sinh t ñ ng trong d án m i.
thì b n th y tên ki u (Type) l p TForm1 ñư c xây d ng thông qua l p (Class) d n
xu t t l p cha là l p TForm. Trong ki u TForm1 (không k s th a hư ng t l p TForm)
chưa có thu c tính (Properties), Phương th c (Methods) ho c s ki n (Events) nào c a
chính nó, như b n th y trong ño n code sau ñây:
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
- Khi b n ñ t lên form (ho c g b ) m t ñ i tư ng (Object) c a ñ i tư ng b t kỳ như
Button, Edit,... thì tên (name) c a ñ i tư ng ñó s ñư c t ñ ng thêm vào (ho c xóa b ñi)
trong ph n thu c tính (Property) c a Form ph n ñ nh nghĩa ki u l p Form. Ch ng h n,
b n thêm vào ñ i tư ng Button1 thu c thành ph n TButton (ng n g n là Button1: TButton)
lên Form như hình sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT48
Hình 12: Thêm nút l nh Button1
thì ño n code s t ñ ng thêm vào bi n d li u là Button1: TButton như sau:
type
TForm1 = class(TForm)
Button1: TButton; //m i t ñ ng sinh mã thêm
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
- Khi b n t o ra 1 th t c s ki n d a trên s ki n nào ñó, thì Delphi s t ñ ng khai
báo (Declare) thêm ph n nguyên m u (Prototype) c a th t c s ki n trong ph n d li u
(thu c tính – Properties) c a l p. Ch ng h n, b n t o ra th t c (Procedure) c a s ki n
(Event) nh p chu t (OnClick) c a nút l nh có tên Button1, thì Delphi s t ñ ng thêm vào
ph n khai báo th t c s ki n trong l p TForm1 như ño n code sau:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject); //m i thêm vào
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
và s cài ñ t (Implementation) các câu l nh cho th t c s ki n mà ta m i t o sau
t khóa implementation, như ño n code sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 49
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//------------ ph n cài ñ t th t c m i ñư c t ñ ng thêm vào ----------------
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
// ---------------------------------------------------------------------------------------
end. // K t thúc Form Unit.
II.2. Cách s a l i sinh mã trong Delphi
Khi b n m i h c s d ng Delphi, nh t là khi m i làm quen v i l p trình, thì vi c phát
sinh ra các l i (errors, bugs) do thao tác không ñúng ho c chưa hi u ñ y ñ ki n th c v
OOP là d g p ph i. ñây, s ch ra nh ng sai sót thư ng g p và cách s a chúng.
a. Sai trong thao tác t o th t c s ki n: N u b n làm ñúng hư ng d n trong ph n
"X lý s ki n" (ph n I.5) thì không b sai. Tuy nhiên do chưa quen, b n thư ng t gõ vào
ph n cài ñ t th t c s ki n (TTSK) mà không bi t ho c quên ñưa vào ph n khai báo
nguyên m u (Prototype), g m t khóa procedure Tên_TTSK([các_tham_s ]); c a th t c
s ki n.
Ví d như ño n code sau:
type
TForm1 = class(TForm)
Button1: TButton;
{--------- thi u khai báo nguyên m u này -----
procedure Button1Click(Sender: TObject);
------------------------------------------------}
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT50
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// ------------ ph n b n t gõ vào --------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Welcome to Delphi 7.0!...');
end;
// ---------------------------------------------------------------------------------------
end. // K t thúc Form Unit.
thì khi b n bi n d ch, Delphi s thông báo l i như hình sau:
Hình 13: Báo l i do thi u ph n khai báo prototype
Khi xu t hi n h p thông báo l i này, b n có 3 ch n l a:
- Ch n nút l nh Yes, n u mu n g b tên th t c s ki n trong s ki n tương ng c a
ñ i tư ng. Trong ví d này, b n mu n g b TTSK Button1Click trong s ki n OnClick
c a nút l nh Button1.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 51
Chưa g b TTSK ðã g b TTSK
Hình 14: Minh h a tên TTSK Button1Click trong s ki n OnClick
- Ch n nút l nh No, n u không g b tên th t c s ki n trong s ki n tương ng c a
ñ i tư ng. Trong ví d này, b n v n mu n gi l i TTSK Button1Click trong s ki n
OnClick c a nút l nh Button1.
- Ch n nút l nh Cancel thì h y b b ng thông báo l i này. ði u này cũng như ch n
nút l nh No.
C 3 ch n l a trên v n không t ñ ng s a h t l i cho b n. N u b n nh n phím
Ctrl+F9 ho c F9, thì Delphi s nh y con tr (con nháy) ñ n ñúng ph n cài ñ t TTSK và
thông báo l i trong c a s Messages phía dư i c a s so n th o mã l nh như hình sau:
Hình 15: C a s Messages
Hình nh ph n c a s so n th o mã l nh cùng v i các c a s khác.
G b TTSK
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT52
Hình 16: Thông báo l i và con nháy nh y ñ n TTSK b l i.
ð s a l i này, b n chuy n lên ph n ñ nh nghĩa l p TForm1, và thêm vào ph n khai
báo (Prototype) c a th t c s ki n này như sau:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject); //gõ thêm vào
private
{ Private declarations }
public
{ Public declarations }
end;
C n chú ý: N u bư c trên b n ch n Yes, thì sau khi h t l i b n ph i g n tên TTSK
vào s ki n tương ng cho ñ i tư ng Button1; Còn n u ch n No thì tên TTSK v n còn gi
nguyên (ñã g n s n) cho b n.
- M t l i khác là b n m TTSK không ñư c như khi b n DClick lên nút l nh
Button1 thì có thông báo l i như sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 53
Hình 17: L i không th t o TTSK
trong tư ng h p này, b n ch n OK, sau ñó nh n phím ch c năng F12 ñ chuy n vào c a
s so n th o mã l nh ñ s a l i.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end. //Nguyên nhân phát sinh l i, b n xóa b l nh này ñi.
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Welcome to Delphi 7.0!');
end;
end.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT54
- M t l i khác thư ng x y ra là b n xóa ñi t khóa end.trong t p tin unit thì s nh n
ñư c thông báo:
Hình 18: L i thi u t khóa end. trong unit form
ð s a l i này, b n nh n phím ch c năng F12 ñ chuy n sang c a s mã l nh, r i
thêm t khóa end. vào cu i t p tin unit.
* Tóm l i: Có r t nhi u l i khác nhau phát sinh n u b n thao tác không chính xác. C n
ph i chú ý 2 ñi m:
- Thao tác ñúng theo s hư ng d n ñã trình bày trong giáo trình.
- M t TTSK ph i ñ y ñ 2 thành ph n:
+ Ph n khai báo tên th t c (Prototype) trong ph n ñ nh nghĩa l p c a Form.
+ Ph n cài ñ t ñ y ñ TTSK sau ph n cài ñ t (Implementation).
II.3. Thêm t p tin unit vào d án
Vi c này giúp cho b n, trư ng nhóm l p trình viên hay ch d án (group leader,
leader team) có th ghép nhi u form khác nhau nh ng project khác nhau c a nh ng l p
trình viên khác nhau vi t, thành m t d án (thành ph m) cu i cùng.
Ví d : B n th tư ng tư ng s phân công công vi c c a 1 s n ph m "Gi i Phương
Trình" có 2 phương trình b c nh t và b c hai. Trư ng nhóm, anh A, phân công cho l p
trình viên B vi t chương trình gi i phương trình b c nh t (tên form: frmPTB1, unit file:
untPTB1.pas, project file: prjPTB1.dpr) và l p trình viên C vi t chương trình b c hai (tên
form: frmPTB2, unit file: untPTB2.pas, project file: prjPTB2.dpr). Công vi c c a anh A là
vi t giao di n (Interface) cho gói s n ph m này (tên form: frmMain, unit file: untMain.pas,
project file: prjMain.dpr). Sau khi ph n chương trình vi t riêng bi t c a m i anh A, B, C ñã
xong, thì anh A s ghép thêm frmPTB1, frmPTB2 vào d án c a anh ta trong ñó frmMain
là giao di n c a chương trình.
T ch c c a s n ph m "Gi i Phương Trình" ñư c ñ t trong 3 thư m c con c a thư
m c S:GT Del-03.2007Add Form như hình sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 55
Hình 19: C u trúc thư m c c a s n ph m "Gi i Phương Trình"
ð làm ñư c ñi u này, t d án ñang m c a anh A, dùng l nh Project/ Add To
Project... Shift+F11 ñ thêm frmPTB1, untPTB1.pas vào d án prjMain.dpr như hình sau:
Hình 20: Thêm unit form untPTB1.pas vào d án c a anh A
ti p ñ n, b n ch n t p tin unit form untPTB1.pas trong thư m c PTB1 (d án c a anh
B) và nh n nút l nh Open ñ thêm vào.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT56
Hình 21: C a s thêm untPTB1.pas vào d án chính.
Hoàn toàn tương t , b n thêm vào unit form untPTB2.pas trong thư m c PTB2 (d
án c a anh C).
Và như v y trong s n ph m c a anh A bây gi là 1 d án có 3 form, như hình sau:
Hình 22: D án anh A ñã ch a ñ y ñ 3 form.
Trong t p tin d án (Project file: prjMain.dpr) có s tham chi u (Reference/link) t i
các t p tin unit form trong các folder c a anh B và anh C như hình sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 57
Hình 23: S tham chi u t i các unit form: untPTP1.pas và untPTP2.pas
T i ñây, câu h i ñư c ñ t ra là trong thư m c c a anh A ñã ch a ñ y ñ các t p tin
c a s n ph m chưa? Li u b n có th xóa b ñi 2 thư m c PTB1 và PTB2 không? Câu tr
l i là không. M t yêu c u ñư c ñ t ra là anh A (trư ng nhóm) mu n t t c các t p tin ch
n m trong 1 folder c a anh ta (thư m c S:GT Del-03.2007Add FormMain) thì làm như
th nào? Câu tr l i là anh A s lưu l i unit file: untPTB1.pas (tương t cho untPTB2.pas)
vào thư m c Main b ng l nh File/Save As như sau:
Hình 24: Lưu l i untPTB1.pas vào thư m c c a anh A
Xem l i t p tin d án, b n th y các tham chi u t i các unit file ñã n m trong thư m c
hi n hành (c a anh A):
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT58
Hình 25: Các t p tin unit form ñã trong cùng 1 thư m c anh A
II.4. Vi t l nh sau khi thêm unit form vào d án
Bây gi , t main form (frmMain), anh A mu n hi n th (Show) form c a anh B ho c
anh C thì sao? Ch ng h n khi Click vào m c Bac 1 trong th c ñơn Giai phuong trinh ñ
hi n th form PTB1 lên như hình sau:
Hình 26: Hi n th form "Phuong trinh bac nhat"
ð làm ñư c thì anh A s gõ thêm câu l nh frmPTB1.Show; ñ hi n th frmPTB1:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 59
Hình 27: Không xu t hi n trình Code Completion
Tuy nhiên, trình h tr mã l nh c a Delphi (Code Completion) không t ñ ng xu t
hi n ñ anh A ch n phương th c Show mà l i xu t hi n thông báo l i trong c a s
Messages như sau:
"[Pascal error] untMain.pas(1): Unable to invoke Code Completion due to
errors in source code".
Thông báo l i này phát sinh là do trong t p tin untMain.Pas, b n chưa khai báo s
d ng unit untPTB1 thông qua t khóa uses
Hình 28: Chưa có khai báo unit untPTB1 và untPTB2
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT60
Có 02 cách ñ b n s a l i này:
- Cách 1: N u b n bi t chính xác tên phương th c mà b n c n, thì b n c vi c gõ
ti p phương th c Show như sau: frmPTB1.Show; (b t ch p thông báo l i – không ñư c
h tr b i menu Code Completion). Sau ñó, b n biên d ch l i (nh n t h p phím Ctrl+F9),
s xu t hi n thông báo như sau:
Hình 29: Thông báo thi u khai báo unit untPTB1
B n Click nút l nh Yes ñ Delphi t ñ ng khai báo thêm untPTB1 vào t p tin unit
untMain. Tương t cho unit frmPTB2, ta cũng Click nút l nh Yes ñ thêm vào.
Hình 30: Thông báo thi u khai báo unit untPTB2
Sau 2 bư c trên, ño n khai báo các unit s như sau:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 61
Hình 31: ðã khai báo xong 2 unit: untPTB1, untPTB2
- Cách 2: Vì trong unit untMain, anh A s d ng frmPTB1 và frmPTB2. Do v y,
trư c khi anh A vi t code cho 2 TTSK trên, anh A ph i gõ thêm khai báo vi c s d ng 2
unit: untPTB1 và untPTB2, r i m i vi t l nh frmPTB1.Show; vào. Cách này t t và chính
xác hơn cách 1 vì có trình Code Completion h tr cho b n khi vi t l nh như hình sau:
Hình 32: Thêm khai báo unit trư c và có trình Code Completion
Chú ý: B n có th s d ng l nh File/Use Unit... ñ thêm unit vào d án hi n hành.
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT62
II.5. G b t p tin unit form ra kh i d án
Công vi c này giúp b n lo i b ra kh i d án (Project) nh ng form (unit file) không
c n thi t, ho c b sai. ð g b , b n ch n ch c năng Project/Remove from Project...
Ví d 8: Anh A, trư ng nhóm, th y ph n chương trình c a anh C – Phương trình b c
hai, vi t còn chưa t t (hay còn bugs). Anh A ñ ngh anh C hoàn ch nh và ki m tra (testing)
ph n chương trình l i, sau ñó g i l i ñ anh A ñóng gói thành ph m. Như v y, anh A t m
th i g b (remove) ph n chương trình c a anh C ra kh i d án hi n hành. ð làm vi c ñó,
anh A ra l nh Project/Remove from Project... thì Delphi s xu t hi n h p tho i "Remove
From Project", r i ch n unit untPTB2 và Click OK như hình sau:
Hình 33: C a s g b t p tin unit
Delphi yêu c u b n kh ng ñ nh l i công vi c g b này ra kh i d án, b n ch n Yes
ñ g b :
Hình 34: H p xác nh n vi c g b
III. Bi u m u (TForm)
Form là m t ñ i tư ng chuyên d ng trong môi trư ng l p trình Windows. Trong bi u
m u form này, b n có th ñ t các ñ i tư ng thu c thành ph n khác như TLabel, TEdit,
TButton,... lên nó ñ thi t k giao di n c a chương trình hay còn ñư c g i là Form chính
(Main form) ho c các bi u m u ph khác trong d án.
* Bi u tư ng:
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 63
* M t s thu c tính thư ng dùng:
Tên thu c tính Ý nghĩa
Name
Xác ñ nh tên cho ñ i tư ng form, tên này ph i có tính g i nh ñ giúp
b n d qu n lý và l p trình, nh t là khi b n tham gia vào nh ng d án
l n. (Xem l i B ng1: Quy cách ñ t tên các ñ i tư ng).
AutoSize
Có giá tr True ho c False: t ñ ng hay không t ñ ng thay ñ i kích
thư c c a form sao cho kích thư c c a nó v a ñ ñ ch a các thành
ph n (component) ñ t trong nó.
Caption Chu i ký t ñư c hi n th trên thanh tiêu ñ (Title bar) c a form.
BorderStyle
Các ki u dáng hi n th form:
- bsDialog: là h p h i tho i, không thay ñ i kích thư c ñư c.
- bsSingle: ðư ng vi n khung ñư c k ñư ng 1 nét và không thay
ñ i ñư c kích thư c c a form.
- bsNone: Không có ñư ng vi n khung và không thay ñ i ñư c
kích thư c c a form.
- bsSizeable: D ng chu n/ m c nhiên c a form. ðây là d ng m t c a
s r t ph bi n trên môi trư ng l p trình Windows.
- bsToolWindow: Gi ng bsSingle, nhưng thanh tiêu ñ nh h p hơn.
- bsSizeToolWin: Gi ng bsSizeable, nhưng thanh tiêu ñ nh h p
hơn.
BorderIcons
Xác ñ nh trên thanh tiêu ñ có h p ñi u khi n hay còn g i là h p
“Control box”, “Control menu” và “System menu” bên trái thanh
tiêu ñ và các nút ñi u khi n bên ph i thanh tiêu ñ :
- biSystemMenu: Form có h p ñi u khi n.
- biMinimize : Form có nút thu nh (Minimize)
- biMaximize: Form có nút phóng to (Maximize), ph c ch (Restore)
- biHelp : Form có nút tr giúp n u b n thi t l p giá tr c a
biMinimize = False và biMaximize = False.
Cursor Các ki u dáng hi n th con tr (Mouse) trên form.
Form style
Các ki u form: (MDI: Multi Document Interface)
- fsMDIForm: MDIForm (Multi Document Interface) là form
MDI cha c a t t c các form khác (n u có) trong chương trình. Khi
b n ñóng MDIForm, thì ñ ng nghĩa v i vi c ñóng t t c các form
khác và k t thúc chương trình.
- fsMDIChild: ðây là form MDI con. Trong chương trình, b n
có th m ra nhi u c a s MDIChild.
ð d hi u, b n có th xem MDIForm chính là c a s ng d ng ph n
m m Microsoft Word, còn MDIChild chính là các c a s t p tin như
Document1, Document2,... ñư c t o ra thông qua l nh File/New
- fsNormal: Là lo i form thư ng dùng nh t và ñây cũng là giá tr m c
ñ nh (Default) khi b n thêm 1 form m i. Lo i form này không có
tính ch t c a lo i form MDI.
- fsStayOnTop: giúp cho form luôn n i lên trên nh t, ngay c khi có
form khác ñang ho t ñ ng (Active).
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035

Mais conteúdo relacionado

Mais procurados

Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tinThanh Lee
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7vdlinh08
 
tài liệu Mã nguồn mở 17308 he dieu hanh ma nguon mo
tài liệu Mã nguồn mở  17308   he dieu hanh ma nguon motài liệu Mã nguồn mở  17308   he dieu hanh ma nguon mo
tài liệu Mã nguồn mở 17308 he dieu hanh ma nguon moThuyet Nguyen
 
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...nataliej4
 
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
 
39 giao trinh chuyen de ky thuat lap trinh
39 giao trinh chuyen de ky thuat lap trinh39 giao trinh chuyen de ky thuat lap trinh
39 giao trinh chuyen de ky thuat lap trinhLvcham Le van Cham
 
Giao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi TuongGiao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi Tuongtrieulongnhi
 
Thuyết minh kết cấu Chung cư cao tầng CT7
Thuyết minh kết cấu Chung cư cao tầng CT7 Thuyết minh kết cấu Chung cư cao tầng CT7
Thuyết minh kết cấu Chung cư cao tầng CT7 nataliej4
 
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...Man_Ebook
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttthlam04dt
 
Giao trinh
Giao trinhGiao trinh
Giao trinhPhi Phi
 

Mais procurados (16)

Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7
 
Bài giảng excel 2010
Bài giảng excel 2010Bài giảng excel 2010
Bài giảng excel 2010
 
tài liệu Mã nguồn mở 17308 he dieu hanh ma nguon mo
tài liệu Mã nguồn mở  17308   he dieu hanh ma nguon motài liệu Mã nguồn mở  17308   he dieu hanh ma nguon mo
tài liệu Mã nguồn mở 17308 he dieu hanh ma nguon mo
 
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...
KHẢO SÁT CHUẨN BỊ DỰ ÁN XÂY DỰNG BỆNH VIỆN CHỢ RẪY CƠ SỞ 2 TÓM TẮT BÁO CÁ...
 
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
Tin học hóa công tác quản lý bán hàng tại công ty cổ phần chè Hà Thái, Thái N...
 
39 giao trinh chuyen de ky thuat lap trinh
39 giao trinh chuyen de ky thuat lap trinh39 giao trinh chuyen de ky thuat lap trinh
39 giao trinh chuyen de ky thuat lap trinh
 
Giao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi TuongGiao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi Tuong
 
Thuyết minh kết cấu Chung cư cao tầng CT7
Thuyết minh kết cấu Chung cư cao tầng CT7 Thuyết minh kết cấu Chung cư cao tầng CT7
Thuyết minh kết cấu Chung cư cao tầng CT7
 
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...
Pháp luật quốc tế trong hợp tác đấu tranh, phòng chống tội phạm công nghệ cao...
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttth
 
Bao cao
Bao caoBao cao
Bao cao
 
Giao trinh c_can_ban
Giao trinh c_can_banGiao trinh c_can_ban
Giao trinh c_can_ban
 
Giao trinh
Giao trinhGiao trinh
Giao trinh
 
Du an san goft
Du an san goftDu an san goft
Du an san goft
 
Đề tài: Xây dựng cơ sở dữ liệu địa chính trong quản lý đất đai, 9đ
Đề tài: Xây dựng cơ sở dữ liệu địa chính trong quản lý đất đai, 9đĐề tài: Xây dựng cơ sở dữ liệu địa chính trong quản lý đất đai, 9đ
Đề tài: Xây dựng cơ sở dữ liệu địa chính trong quản lý đất đai, 9đ
 

Destaque

Các thao tác cơ bản trên photoshop cs3 (phần 2)
Các thao tác cơ bản trên photoshop cs3 (phần 2)Các thao tác cơ bản trên photoshop cs3 (phần 2)
Các thao tác cơ bản trên photoshop cs3 (phần 2)Học Huỳnh Bá
 
Giáo trình học corel draw
Giáo trình học corel drawGiáo trình học corel draw
Giáo trình học corel drawHọc Huỳnh Bá
 
4 hd lam viec lan dau don vi
4   hd lam viec lan dau don vi4   hd lam viec lan dau don vi
4 hd lam viec lan dau don viHọc Huỳnh Bá
 
Ms access ii (class 5) iff function
Ms access ii (class 5) iff functionMs access ii (class 5) iff function
Ms access ii (class 5) iff functionHọc Huỳnh Bá
 
100 cách diễn giải tiếng anh
100 cách diễn giải tiếng anh100 cách diễn giải tiếng anh
100 cách diễn giải tiếng anhHọc Huỳnh Bá
 
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011Học Huỳnh Bá
 
Bang chu viet_tat_ten_loai_van_ban
Bang chu viet_tat_ten_loai_van_banBang chu viet_tat_ten_loai_van_ban
Bang chu viet_tat_ten_loai_van_banHọc Huỳnh Bá
 
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết full version)
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết   full version)Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết   full version)
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết full version)Học Huỳnh Bá
 
Câu so sánh trong tiếng Trung
Câu so sánh trong tiếng TrungCâu so sánh trong tiếng Trung
Câu so sánh trong tiếng TrungNguyen Huyen Ngoc
 
Common english & chinese phrases for administrative personnel(third edition) ...
Common english & chinese phrases for administrative personnel(third edition) ...Common english & chinese phrases for administrative personnel(third edition) ...
Common english & chinese phrases for administrative personnel(third edition) ...Học Huỳnh Bá
 
6 qd phan cong huong dan tap su thu viec
6   qd phan cong huong dan tap su thu viec6   qd phan cong huong dan tap su thu viec
6 qd phan cong huong dan tap su thu viecHọc Huỳnh Bá
 
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)Học Huỳnh Bá
 
Các thao tác cơ bản trên adobe illustrator cs3
Các thao tác cơ bản trên adobe illustrator cs3Các thao tác cơ bản trên adobe illustrator cs3
Các thao tác cơ bản trên adobe illustrator cs3Học Huỳnh Bá
 
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...Học Huỳnh Bá
 
Những rắc rối ở khách sạn
Những rắc rối ở khách sạnNhững rắc rối ở khách sạn
Những rắc rối ở khách sạnNguyen Huyen Ngoc
 

Destaque (20)

Các thao tác cơ bản trên photoshop cs3 (phần 2)
Các thao tác cơ bản trên photoshop cs3 (phần 2)Các thao tác cơ bản trên photoshop cs3 (phần 2)
Các thao tác cơ bản trên photoshop cs3 (phần 2)
 
Giáo trình học corel draw
Giáo trình học corel drawGiáo trình học corel draw
Giáo trình học corel draw
 
4 hd lam viec lan dau don vi
4   hd lam viec lan dau don vi4   hd lam viec lan dau don vi
4 hd lam viec lan dau don vi
 
Vb6 16 (6)
Vb6 16 (6)Vb6 16 (6)
Vb6 16 (6)
 
H11220
H11220H11220
H11220
 
Ms access ii (class 5) iff function
Ms access ii (class 5) iff functionMs access ii (class 5) iff function
Ms access ii (class 5) iff function
 
100 cách diễn giải tiếng anh
100 cách diễn giải tiếng anh100 cách diễn giải tiếng anh
100 cách diễn giải tiếng anh
 
Vb6 16 (14)
Vb6 16 (14)Vb6 16 (14)
Vb6 16 (14)
 
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011
Quy tr nh tuy n d_ng s_a đ_i ngày 3-01-2011
 
Ngữ pháp tiếng anh
Ngữ pháp tiếng anhNgữ pháp tiếng anh
Ngữ pháp tiếng anh
 
Bang chu viet_tat_ten_loai_van_ban
Bang chu viet_tat_ten_loai_van_banBang chu viet_tat_ten_loai_van_ban
Bang chu viet_tat_ten_loai_van_ban
 
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết full version)
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết   full version)Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết   full version)
Các thao tác cơ bản trên photoshop cs3 (ghi chép lý thuyết full version)
 
Bảng chữ cái katakana
Bảng chữ cái katakanaBảng chữ cái katakana
Bảng chữ cái katakana
 
Câu so sánh trong tiếng Trung
Câu so sánh trong tiếng TrungCâu so sánh trong tiếng Trung
Câu so sánh trong tiếng Trung
 
Common english & chinese phrases for administrative personnel(third edition) ...
Common english & chinese phrases for administrative personnel(third edition) ...Common english & chinese phrases for administrative personnel(third edition) ...
Common english & chinese phrases for administrative personnel(third edition) ...
 
6 qd phan cong huong dan tap su thu viec
6   qd phan cong huong dan tap su thu viec6   qd phan cong huong dan tap su thu viec
6 qd phan cong huong dan tap su thu viec
 
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)
Cẩm nang du lịch nha trang (chơi gì?, xem gì?, ăn gì khi đi du lịch Nha Trang?)
 
Các thao tác cơ bản trên adobe illustrator cs3
Các thao tác cơ bản trên adobe illustrator cs3Các thao tác cơ bản trên adobe illustrator cs3
Các thao tác cơ bản trên adobe illustrator cs3
 
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...
办公室里常用到的英语和越南语口语 (第2版) common english & chinese phrases for administrative pe...
 
Những rắc rối ở khách sạn
Những rắc rối ở khách sạnNhững rắc rối ở khách sạn
Những rắc rối ở khách sạn
 

Semelhante a GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035

Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh Nghiệp
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh NghiệpCác Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh Nghiệp
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh NghiệpHỗ Trợ Viết Đề Tài luanvanpanda.com
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT NguynMinh294
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinxxxabcyyy
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tinTruong Tuyen
 
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...Nguyen Thanh Tu Collection
 
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyAi cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyGiang Nguyễn
 
Giao trinh thdc
Giao trinh thdcGiao trinh thdc
Giao trinh thdcPhi Phi
 
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfNghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfMan_Ebook
 
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdf
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdfỨng dụng các yếu tố con người vào trong tổ chức HCI.pdf
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdfHanaTiti
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]bookbooming1
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]bookbooming1
 
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...Viết thuê trọn gói ZALO 0934573149
 

Semelhante a GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035 (20)

Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
 
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh Nghiệp
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh NghiệpCác Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh Nghiệp
Các Nhân Tố Tác Động Đến Chất Lƣợng Thông Tin Báo Cáo Tài Chính Của Doanh Nghiệp
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tin
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin
 
Pttkhttt
PttkhtttPttkhttt
Pttkhttt
 
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
 
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyAi cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
 
Giao trinh word 2003
Giao trinh word 2003Giao trinh word 2003
Giao trinh word 2003
 
Giao trinh thdc
Giao trinh thdcGiao trinh thdc
Giao trinh thdc
 
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...
Luận văn: Đề xuất một số giải pháp xây dựng các hoạt động kiểm soát trong môi...
 
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdfNghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
Nghiên cứu mạng nơ ron nhân tạo và ứng dụng vào dự báo lạm phát.pdf
 
Xây dựng khung kiến trúc bảo đảm an toàn thông tin cho doanh nghiệp
Xây dựng khung kiến trúc bảo đảm an toàn thông tin cho doanh nghiệpXây dựng khung kiến trúc bảo đảm an toàn thông tin cho doanh nghiệp
Xây dựng khung kiến trúc bảo đảm an toàn thông tin cho doanh nghiệp
 
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdf
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdfỨng dụng các yếu tố con người vào trong tổ chức HCI.pdf
Ứng dụng các yếu tố con người vào trong tổ chức HCI.pdf
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
 
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...
Luận án: Nghiên cứu một số nhân tố ảnh hưởng đến phát triển du lịch cộng đồng...
 
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOTĐề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
 
Đề tài: chương trình quản lý lớp học của trung tâm ngoại ngữ, HAY
Đề tài: chương trình quản lý lớp học của trung tâm ngoại ngữ, HAYĐề tài: chương trình quản lý lớp học của trung tâm ngoại ngữ, HAY
Đề tài: chương trình quản lý lớp học của trung tâm ngoại ngữ, HAY
 
Đề tài: Quản lí các lớp học ngoại ngữ tại trung tâm đào tạo, HAY
Đề tài: Quản lí các lớp học ngoại ngữ tại trung tâm đào tạo, HAYĐề tài: Quản lí các lớp học ngoại ngữ tại trung tâm đào tạo, HAY
Đề tài: Quản lí các lớp học ngoại ngữ tại trung tâm đào tạo, HAY
 

Mais de Học Huỳnh Bá

BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTBÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTHọc Huỳnh Bá
 
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Học Huỳnh Bá
 
Tell about a girl boy that you interested in
Tell about a girl boy that you interested inTell about a girl boy that you interested in
Tell about a girl boy that you interested inHọc Huỳnh Bá
 
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...Học Huỳnh Bá
 
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)Học Huỳnh Bá
 
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Học Huỳnh Bá
 
Chinese email 高职高专院校英语能力测试a b级
Chinese email  高职高专院校英语能力测试a b级Chinese email  高职高专院校英语能力测试a b级
Chinese email 高职高专院校英语能力测试a b级Học Huỳnh Bá
 
English chinese business languages bec中级写作电子讲义
English   chinese business languages bec中级写作电子讲义English   chinese business languages bec中级写作电子讲义
English chinese business languages bec中级写作电子讲义Học Huỳnh Bá
 
Chinese english writing skill - 商务写作教程
Chinese english writing skill  - 商务写作教程Chinese english writing skill  - 商务写作教程
Chinese english writing skill - 商务写作教程Học Huỳnh Bá
 
Giấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuGiấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuHọc Huỳnh Bá
 
祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application formHọc Huỳnh Bá
 
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...Học Huỳnh Bá
 
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngGiáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngHọc Huỳnh Bá
 
Giáo trình ms power point 2003
Giáo trình ms power point 2003Giáo trình ms power point 2003
Giáo trình ms power point 2003Học Huỳnh Bá
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Học Huỳnh Bá
 
Giáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngGiáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngHọc Huỳnh Bá
 
Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Học Huỳnh Bá
 
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữBảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữHọc Huỳnh Bá
 
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Học Huỳnh Bá
 

Mais de Học Huỳnh Bá (20)

BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTBÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
 
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
 
Tell about a girl boy that you interested in
Tell about a girl boy that you interested inTell about a girl boy that you interested in
Tell about a girl boy that you interested in
 
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
 
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
 
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
 
Chinese email 高职高专院校英语能力测试a b级
Chinese email  高职高专院校英语能力测试a b级Chinese email  高职高专院校英语能力测试a b级
Chinese email 高职高专院校英语能力测试a b级
 
English chinese business languages bec中级写作电子讲义
English   chinese business languages bec中级写作电子讲义English   chinese business languages bec中级写作电子讲义
English chinese business languages bec中级写作电子讲义
 
Chinese english writing skill - 商务写作教程
Chinese english writing skill  - 商务写作教程Chinese english writing skill  - 商务写作教程
Chinese english writing skill - 商务写作教程
 
Giấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuGiấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩu
 
祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form
 
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
 
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngGiáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
 
Giáo trình ms power point 2003
Giáo trình ms power point 2003Giáo trình ms power point 2003
Giáo trình ms power point 2003
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003
 
Giáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngGiáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòng
 
Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)
 
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữBảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
 
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
 
Bảng chữ cái hiragana
Bảng chữ cái hiraganaBảng chữ cái hiragana
Bảng chữ cái hiragana
 

GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035

  • 1. TRƯ NG ð I H C C N THƠ KHOA KHOA H C T NHIÊN Giáo trình lý thuy t LẬ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.
  • 3. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang i M C L 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 ......................................................................................................20
  • 4. Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCTii 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)..................................................................................71
  • 5. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang iii 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 .........................................195
  • 6. Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCTiv 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 ............................................................................................252
  • 7. Chương 1: D li u và Thu t toán B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 1 CHƯƠNG 1: D LI U VÀ THU T TOÁN I. 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ông bá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ông tin 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 t ch 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 n theo 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ình x lý nào ñó ñ nh n ñư c thông tin ñ u ra (Output). Hình 1: Mô hình t ng quát quá trình x lý thông tin II. 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áy tí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 t cá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 . NH P D LI U (INPUT) X LÝ (PROCESSING) XU T D LI U (OUTPUT) LƯU TR (STORAGE)
  • 8. Chương 1: D li u và Thu t toán Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT2 - 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án theo 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 ng ngô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ư c gi 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.
  • 9. Chương 1: D li u và Thu t toán B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 3 II.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 s qui ư 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 ñ
  • 10. Chương 1: D li u và Thu t toán Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT4 Ví d 3: Mô t thu t toán theo ngôn ng lưu ñ c a phương trình ax + b = 0 Hình 3: Lưu ñ thu t toán PTB1 B t ñ u Nh p a,b a=0 b=0 Phương trình vô s nghi m Phương trình vô nghi m x := -b/a K t thúc ðúng ðúng Sai Sai Xu t nghi m x
  • 11. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 5 CHƯƠNG 2: BORLAND DELPHI I. T ng quan v Delphi I.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 nh v 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 p trình hư ng ñ i tư ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngày nay, Delphi ñã ñư c phát tri n thành môi trư ng xây d ng ng d ng t c th i RAD (Rapid Application 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 h th ng, v.v… không nh ng trên n n Windows mà còn cho c Linux và .NET. Trong giáo trì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ành Windows. V i kh năng m nh như v y c a Delphi, b n an tâm khi dùng nó ñ tri n khai cá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 ng r 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 Tin h 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 ng khá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 ng và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áo trì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ên n n Windows, ñó chính là môi trư ng phát tri n tích h p IDE (Integrated Development Environment) và ngôn ng hư ng ñ i tư ng Borland Pascal. Các b n s ñư c h c cách thi 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 nay Delphi ñã 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 t trì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 nay cho 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 s chí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ác thà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.
  • 12. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT6 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 nh II.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 (Project name) 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 c II.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 t d á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 chi ti t ph n sau.
  • 13. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 7 Hình 2: Thanh th c ñơn chính II.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 g l i (Debug), thanh hi n th (View),… M i nút (Button) trên thanh công c thư ng là m t thao 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 c II.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 n trong 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ành ph 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ương trì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 n có 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 a cá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 Standard
  • 14. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT8 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) 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 o ra 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ên Properties, 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 t form. 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 giao di 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 trong t 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 form cũ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 (Unit file/ 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ông thư 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 cho form và các component trên nó.
  • 15. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 9 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 s d 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.dfm II.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,… Th Events 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 ñ ng
  • 16. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT10 t 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 nh tươ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 ñ t chú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 Delphi III.1. T p tin d án: (Delphi project file) Hình 9: T p tin d án prjPtb1.dpr
  • 17. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 11 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 unit và 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.pas và 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ương trì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.pas và 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 bao g 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 tin nà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 t v 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 ñư c thi 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 a nó 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 .dpr III.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 p tin 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 u t 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ác s 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à .pas III.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 tin nà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.
  • 18. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT12 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 View as 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ăng RClick ch n ch c năng View as Form hay t h p phím Alt+F12:
  • 19. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 13 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 v phiên b n (Version) cũng như bi u tư ng c a ng d ng (Application icon) d ng mã nh phâ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ình Image Editor ñư c kèm theo b Delphi. Hình 13: Giao di n chương trình x lý nh – Image Editor
  • 20. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT14 IV. Các thao tác cơ b n trên Delphi IV.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 án m i t o như hình sau: Hình 14: D án m i t o IV.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 n ph 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 ng là 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
  • 21. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 15 - T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "Save Uniti 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 ñĩa
  • 22. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT16 Ti p ñ n, Click ch n bi u tư ng "Create New Folder" ñ t o thư m c m i ch a các t 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
  • 23. Chương 2: Borland Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 17 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 "File name", ñâ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 tin d á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ên prjHelloWorld.dpr, và Click Save. Hình 21: H p tho i Save Projecti As: Nh p tên t p tin d án
  • 24. Chương 2: Borland Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT18 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ưu toà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:HelloWorld IV.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
  • 25. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 19 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ái ni 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 t project m i theo d ng Console Application, b n s d ng ch c năng File/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ùng nó 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 array begin case class const div do downto for function goto if implementation interface label mod object record repeat set to try type unit until uses
  • 26. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT20 else end finalization finally of procedure program property var while with 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 danh hi 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 ng IV.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. Ta dù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'
  • 27. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 21 Chú ý: Bi u th c h ng ñây có th là s , chu i ký t , các h ng true, false, nil,… k t h 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 hay con 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úc chươ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 trong cá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ác t 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 n như sau: var //Khai báo bi n theo ki u ngư i dùng ñ nh nghĩa i, j: SoNguyen; dtb: Diem; t: Tuoi;
  • 28. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT22 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 ghi nh 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 ñ i trong 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 n thô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ách nhau 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 ñ nh nghĩ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 t bi 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 c VII.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
  • 29. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 23 - 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ác phé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 a m 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 MyChar
  • 30. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT24 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 p cá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 ñ Console như 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 u thì không ñư c phép l ng nhau.
  • 31. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 25 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.
  • 32. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT26 CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN I. 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 s nguyê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 i cá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ên I.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ông thư ng, chi m kích thư c m t byte (tương t b ký t ASCII mà giáo trình s ñ c p ph 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ên th c t thì ki u Char tương ñương v i ki u AnsiChar. Ngoài Char và AnsiChar, Delphi còn h tr t p ký t m t byte thông qua các ki u: PChar, PAnsiChar và AnsiString. Tương t thì 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 i s 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 ng hi 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.
  • 33. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 27 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êu trê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 s ký 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ã ASCII c 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 = 65
  • 34. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT28 B NG MÃ ASCII v i 128 ký t chu n Hex 0 1 2 3 4 5 6 7 0 NUL 0 DLE 16 SP 32 0 48 @ 64 P 80 ` 96 p 112 1 SOH 1 DC1 17 ! 33 1 49 A 65 Q 81 a 97 q 113 2 STX 2 DC2 18 “ 34 2 50 B 66 R 82 b 98 r 114 3 ♥ 3 DC3 19 # 35 3 51 C 67 S 83 c 99 s 115 4 ♦ 4 DC4 20 $ 36 4 52 D 68 T 84 d 100 t 116 5 ♣ 5 NAK 21 % 37 5 53 E 69 U 85 e 101 u 117 6 ♠ 6 SYN 22 & 38 6 54 F 70 V 86 f 102 v 118 7 BEL 7 ETB 23 ‘ 39 7 55 G 71 W 87 g 103 w 119 8 BS 8 CAN 24 ( 40 8 56 H 72 X 88 h 104 x 120 9 HT 9 EM 25 ) 41 9 57 I 73 Y 89 I 105 y 121 A LF 10 SUB 26 * 42 : 58 J 74 Z 90 j 106 z 122 B VT 11 ESC 27 + 43 ; 59 K 75 [ 91 k 107 { 123 C FF 12 FS 28 , 44 < 60 L 76 92 l 108 | 124 D CR 13 GS 29 - 45 = 61 M 77 ] 93 m 109 } 125 E SO 14 RS 30 . 46 > 62 N 78 ^ 94 n 110 ~ 126 F SI 15 US 31 / 47 ? 63 O 79 _ 95 o 111 DEL 127 Hình 1: B ng mã ASCII chu n
  • 35. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 29 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 ng
  • 36. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT30 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 p cá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 ñ Console như sau: Hình 4: K t qu chương trình ch ñ Console I.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.
  • 37. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 31 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.. 922337203685477.5807 8 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 Real I.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ôi
  • 38. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT32 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ành m 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 t chu 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. odd(n:integer|int64):boolean; Ki m tra n có ph i là s l hay không: True: N u n l False: N u n ch n. pi: extended; Tr v giá tr pi=3.1415926535897932385. random[( range: integer)]; Tr v m t s ng u nhiên x và 0 <= x < range, 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
  • 39. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 33 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 p cá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 ñ Console như sau: Hình 6: K t qu chương trình ch ñ Console
  • 40. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT34 I.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 ưa thích hơn c . M t giá tr ki u ByteBool, LongBool ho c WordBool ñư c xem là true n u nó 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ì cho UseBoolStrs = True; còn n u mu n hi n th giá tr c a B là '-1' ho c '0' thì thì cho UseBoolStrs = 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ác d 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 nh có c u trúc.
  • 41. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 35 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 nh có 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 nh gá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 a l 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 t gá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 p trì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 ñư c ki 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 n như 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 qua tê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 1 giá 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 i
  • 42. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT36 hà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âu l 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ương trì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ính là 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 = 12 Như 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ì 5 và 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 to Delphi!…”, 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âu l 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 (Member method). 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 u nà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ành ph 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 n b 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ình th 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ý S Ki n” và “Chương Trình Con” các ph n sau.
  • 43. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 37 VI. 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 n chươ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 p trì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 p cá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 ñ Console như sau: Hình 8: K t qu chương trình.
  • 44. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT38 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ì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. NGƯ I - H tên - Ngày sinh - Phái - v.v... - Mã cán b - B c lương - v.v... - v.v... - Mã s SV - Ngành h c - v.v... SINHVIÊN CBCNV
  • 45. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 39 - 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 n xu t t l p cha là l p TForm, l p TForm l i ñư c d n xu t t l p TCustomForm,... và c th 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ó
  • 46. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT40 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ác khi 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óng b 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 n cá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
  • 47. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 41 ð 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 o thà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ính name, 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:
  • 48. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT42 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.
  • 49. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 43 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ác thà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 n g 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 a chú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 ñ i tư 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: 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à Caption là “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ính Tên l p Tên ñ i tư ng
  • 50. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT44 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 ng l 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,… 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 i m 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. Tên s ki n Tên th t c s ki n s ki n.
  • 51. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 45 I.5. X lý s ki n (Event Handlers) ðó chính là th t c s ki n, thân th t c s ki n này bao g m các câu l nh mà ngư i l p trình vi t trong nó ñ th c hi n m t công vi c, ch c năng nào ñó. Cách hình thành th t c s ki n: procedure Tên_Thành_Ph n_Form.Tên_ñ i_tư ngS _ki n([DanhSáchCácThamS ]); Ví d 7: Th t c s ki n OnClick cho nút l nh btnChao c a frmWelcome (hay còn g i là th t c s ki n btnChaoClick c a l p TfrmWelcome) ñư c hình thành như sau: procedure TfrmWelcome.btnChaoClick(Sender: TObject); - Bư c 4: hình 5, nh p ñúp lên nút l nh Chao, ho c hình 7 b n nh p ñúp lên c t bên ph i c a s ki n OnClick tương ng ñ m ra m t th t c s ki n có tên là TfrmWelcome.btnChaoClick (Sender: TObject) như sau: Hình 8: Th t c s ki n btnChaoClick m i t o c a s ki n OnClick Ti p ñ n b n gõ m t s l nh vào trong thân c a th t c s ki n như hình sau: tên thành ph n hay tên l p form tên nút l nh btnChao s ki n OnClick
  • 52. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT46 Hình 9: Vi t code cho th t c s ki n btnChaoClick I.6. Trình h tr mã l nh (Code Completion /IntelliSense) Trong cách l p trình hư ng ñ i tư ng (OOP) và nh t là khi ngôn ng l p trình có h tr môi trư ng phát tri n IDE thì s thu c tính, phương th c, s ki n và các th t c s ki n c a t ng ñ i tư ng là vô cùng phong phú (do tính th a hư ng). Vi c nh chính xác cú pháp c a chúng là m t vi c làm không tư ng ñ i v i b t kỳ m t l p trình viên nào (vì không ch có duy nh t m t ngôn ng l p trình Delphi!). ð giúp cho ngư i l p trình "d th " hơn, Delphi có ñưa ra menu ng c nh r t h u ích ñ h tr cho vi c vi t code này và ñư c g i là Trình h tr mã l nh (Code Completion). Trong lúc b n vi t code, khi b n gõ tên ñ i tư ng r i ñ n d u ch m, thì Code Completion s xu t hi n như hình sau: Hình 10: Trình h tr mã l nh II. Sinh mã t ñ ng và m t s cách s a l i II.1. Cách t ñ ng sinh mã (generate code) trong Delphi - Khi m i t o m i m t d án (Form Application) như hình nh sau:
  • 53. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 47 Hình 11: Mã l nh sinh t ñ ng trong d án m i. thì b n th y tên ki u (Type) l p TForm1 ñư c xây d ng thông qua l p (Class) d n xu t t l p cha là l p TForm. Trong ki u TForm1 (không k s th a hư ng t l p TForm) chưa có thu c tính (Properties), Phương th c (Methods) ho c s ki n (Events) nào c a chính nó, như b n th y trong ño n code sau ñây: type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; - Khi b n ñ t lên form (ho c g b ) m t ñ i tư ng (Object) c a ñ i tư ng b t kỳ như Button, Edit,... thì tên (name) c a ñ i tư ng ñó s ñư c t ñ ng thêm vào (ho c xóa b ñi) trong ph n thu c tính (Property) c a Form ph n ñ nh nghĩa ki u l p Form. Ch ng h n, b n thêm vào ñ i tư ng Button1 thu c thành ph n TButton (ng n g n là Button1: TButton) lên Form như hình sau:
  • 54. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT48 Hình 12: Thêm nút l nh Button1 thì ño n code s t ñ ng thêm vào bi n d li u là Button1: TButton như sau: type TForm1 = class(TForm) Button1: TButton; //m i t ñ ng sinh mã thêm private { Private declarations } public { Public declarations } end; var Form1: TForm1; - Khi b n t o ra 1 th t c s ki n d a trên s ki n nào ñó, thì Delphi s t ñ ng khai báo (Declare) thêm ph n nguyên m u (Prototype) c a th t c s ki n trong ph n d li u (thu c tính – Properties) c a l p. Ch ng h n, b n t o ra th t c (Procedure) c a s ki n (Event) nh p chu t (OnClick) c a nút l nh có tên Button1, thì Delphi s t ñ ng thêm vào ph n khai báo th t c s ki n trong l p TForm1 như ño n code sau: type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); //m i thêm vào private { Private declarations } public { Public declarations } end; var Form1: TForm1; và s cài ñ t (Implementation) các câu l nh cho th t c s ki n mà ta m i t o sau t khóa implementation, như ño n code sau:
  • 55. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 49 type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //------------ ph n cài ñ t th t c m i ñư c t ñ ng thêm vào ---------------- procedure TForm1.Button1Click(Sender: TObject); begin end; // --------------------------------------------------------------------------------------- end. // K t thúc Form Unit. II.2. Cách s a l i sinh mã trong Delphi Khi b n m i h c s d ng Delphi, nh t là khi m i làm quen v i l p trình, thì vi c phát sinh ra các l i (errors, bugs) do thao tác không ñúng ho c chưa hi u ñ y ñ ki n th c v OOP là d g p ph i. ñây, s ch ra nh ng sai sót thư ng g p và cách s a chúng. a. Sai trong thao tác t o th t c s ki n: N u b n làm ñúng hư ng d n trong ph n "X lý s ki n" (ph n I.5) thì không b sai. Tuy nhiên do chưa quen, b n thư ng t gõ vào ph n cài ñ t th t c s ki n (TTSK) mà không bi t ho c quên ñưa vào ph n khai báo nguyên m u (Prototype), g m t khóa procedure Tên_TTSK([các_tham_s ]); c a th t c s ki n. Ví d như ño n code sau: type TForm1 = class(TForm) Button1: TButton; {--------- thi u khai báo nguyên m u này ----- procedure Button1Click(Sender: TObject); ------------------------------------------------}
  • 56. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT50 private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // ------------ ph n b n t gõ vào -------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Welcome to Delphi 7.0!...'); end; // --------------------------------------------------------------------------------------- end. // K t thúc Form Unit. thì khi b n bi n d ch, Delphi s thông báo l i như hình sau: Hình 13: Báo l i do thi u ph n khai báo prototype Khi xu t hi n h p thông báo l i này, b n có 3 ch n l a: - Ch n nút l nh Yes, n u mu n g b tên th t c s ki n trong s ki n tương ng c a ñ i tư ng. Trong ví d này, b n mu n g b TTSK Button1Click trong s ki n OnClick c a nút l nh Button1.
  • 57. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 51 Chưa g b TTSK ðã g b TTSK Hình 14: Minh h a tên TTSK Button1Click trong s ki n OnClick - Ch n nút l nh No, n u không g b tên th t c s ki n trong s ki n tương ng c a ñ i tư ng. Trong ví d này, b n v n mu n gi l i TTSK Button1Click trong s ki n OnClick c a nút l nh Button1. - Ch n nút l nh Cancel thì h y b b ng thông báo l i này. ði u này cũng như ch n nút l nh No. C 3 ch n l a trên v n không t ñ ng s a h t l i cho b n. N u b n nh n phím Ctrl+F9 ho c F9, thì Delphi s nh y con tr (con nháy) ñ n ñúng ph n cài ñ t TTSK và thông báo l i trong c a s Messages phía dư i c a s so n th o mã l nh như hình sau: Hình 15: C a s Messages Hình nh ph n c a s so n th o mã l nh cùng v i các c a s khác. G b TTSK
  • 58. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT52 Hình 16: Thông báo l i và con nháy nh y ñ n TTSK b l i. ð s a l i này, b n chuy n lên ph n ñ nh nghĩa l p TForm1, và thêm vào ph n khai báo (Prototype) c a th t c s ki n này như sau: type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); //gõ thêm vào private { Private declarations } public { Public declarations } end; C n chú ý: N u bư c trên b n ch n Yes, thì sau khi h t l i b n ph i g n tên TTSK vào s ki n tương ng cho ñ i tư ng Button1; Còn n u ch n No thì tên TTSK v n còn gi nguyên (ñã g n s n) cho b n. - M t l i khác là b n m TTSK không ñư c như khi b n DClick lên nút l nh Button1 thì có thông báo l i như sau:
  • 59. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 53 Hình 17: L i không th t o TTSK trong tư ng h p này, b n ch n OK, sau ñó nh n phím ch c năng F12 ñ chuy n vào c a s so n th o mã l nh ñ s a l i. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end. //Nguyên nhân phát sinh l i, b n xóa b l nh này ñi. procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Welcome to Delphi 7.0!'); end; end.
  • 60. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT54 - M t l i khác thư ng x y ra là b n xóa ñi t khóa end.trong t p tin unit thì s nh n ñư c thông báo: Hình 18: L i thi u t khóa end. trong unit form ð s a l i này, b n nh n phím ch c năng F12 ñ chuy n sang c a s mã l nh, r i thêm t khóa end. vào cu i t p tin unit. * Tóm l i: Có r t nhi u l i khác nhau phát sinh n u b n thao tác không chính xác. C n ph i chú ý 2 ñi m: - Thao tác ñúng theo s hư ng d n ñã trình bày trong giáo trình. - M t TTSK ph i ñ y ñ 2 thành ph n: + Ph n khai báo tên th t c (Prototype) trong ph n ñ nh nghĩa l p c a Form. + Ph n cài ñ t ñ y ñ TTSK sau ph n cài ñ t (Implementation). II.3. Thêm t p tin unit vào d án Vi c này giúp cho b n, trư ng nhóm l p trình viên hay ch d án (group leader, leader team) có th ghép nhi u form khác nhau nh ng project khác nhau c a nh ng l p trình viên khác nhau vi t, thành m t d án (thành ph m) cu i cùng. Ví d : B n th tư ng tư ng s phân công công vi c c a 1 s n ph m "Gi i Phương Trình" có 2 phương trình b c nh t và b c hai. Trư ng nhóm, anh A, phân công cho l p trình viên B vi t chương trình gi i phương trình b c nh t (tên form: frmPTB1, unit file: untPTB1.pas, project file: prjPTB1.dpr) và l p trình viên C vi t chương trình b c hai (tên form: frmPTB2, unit file: untPTB2.pas, project file: prjPTB2.dpr). Công vi c c a anh A là vi t giao di n (Interface) cho gói s n ph m này (tên form: frmMain, unit file: untMain.pas, project file: prjMain.dpr). Sau khi ph n chương trình vi t riêng bi t c a m i anh A, B, C ñã xong, thì anh A s ghép thêm frmPTB1, frmPTB2 vào d án c a anh ta trong ñó frmMain là giao di n c a chương trình. T ch c c a s n ph m "Gi i Phương Trình" ñư c ñ t trong 3 thư m c con c a thư m c S:GT Del-03.2007Add Form như hình sau:
  • 61. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 55 Hình 19: C u trúc thư m c c a s n ph m "Gi i Phương Trình" ð làm ñư c ñi u này, t d án ñang m c a anh A, dùng l nh Project/ Add To Project... Shift+F11 ñ thêm frmPTB1, untPTB1.pas vào d án prjMain.dpr như hình sau: Hình 20: Thêm unit form untPTB1.pas vào d án c a anh A ti p ñ n, b n ch n t p tin unit form untPTB1.pas trong thư m c PTB1 (d án c a anh B) và nh n nút l nh Open ñ thêm vào.
  • 62. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT56 Hình 21: C a s thêm untPTB1.pas vào d án chính. Hoàn toàn tương t , b n thêm vào unit form untPTB2.pas trong thư m c PTB2 (d án c a anh C). Và như v y trong s n ph m c a anh A bây gi là 1 d án có 3 form, như hình sau: Hình 22: D án anh A ñã ch a ñ y ñ 3 form. Trong t p tin d án (Project file: prjMain.dpr) có s tham chi u (Reference/link) t i các t p tin unit form trong các folder c a anh B và anh C như hình sau:
  • 63. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 57 Hình 23: S tham chi u t i các unit form: untPTP1.pas và untPTP2.pas T i ñây, câu h i ñư c ñ t ra là trong thư m c c a anh A ñã ch a ñ y ñ các t p tin c a s n ph m chưa? Li u b n có th xóa b ñi 2 thư m c PTB1 và PTB2 không? Câu tr l i là không. M t yêu c u ñư c ñ t ra là anh A (trư ng nhóm) mu n t t c các t p tin ch n m trong 1 folder c a anh ta (thư m c S:GT Del-03.2007Add FormMain) thì làm như th nào? Câu tr l i là anh A s lưu l i unit file: untPTB1.pas (tương t cho untPTB2.pas) vào thư m c Main b ng l nh File/Save As như sau: Hình 24: Lưu l i untPTB1.pas vào thư m c c a anh A Xem l i t p tin d án, b n th y các tham chi u t i các unit file ñã n m trong thư m c hi n hành (c a anh A):
  • 64. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT58 Hình 25: Các t p tin unit form ñã trong cùng 1 thư m c anh A II.4. Vi t l nh sau khi thêm unit form vào d án Bây gi , t main form (frmMain), anh A mu n hi n th (Show) form c a anh B ho c anh C thì sao? Ch ng h n khi Click vào m c Bac 1 trong th c ñơn Giai phuong trinh ñ hi n th form PTB1 lên như hình sau: Hình 26: Hi n th form "Phuong trinh bac nhat" ð làm ñư c thì anh A s gõ thêm câu l nh frmPTB1.Show; ñ hi n th frmPTB1:
  • 65. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 59 Hình 27: Không xu t hi n trình Code Completion Tuy nhiên, trình h tr mã l nh c a Delphi (Code Completion) không t ñ ng xu t hi n ñ anh A ch n phương th c Show mà l i xu t hi n thông báo l i trong c a s Messages như sau: "[Pascal error] untMain.pas(1): Unable to invoke Code Completion due to errors in source code". Thông báo l i này phát sinh là do trong t p tin untMain.Pas, b n chưa khai báo s d ng unit untPTB1 thông qua t khóa uses Hình 28: Chưa có khai báo unit untPTB1 và untPTB2
  • 66. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT60 Có 02 cách ñ b n s a l i này: - Cách 1: N u b n bi t chính xác tên phương th c mà b n c n, thì b n c vi c gõ ti p phương th c Show như sau: frmPTB1.Show; (b t ch p thông báo l i – không ñư c h tr b i menu Code Completion). Sau ñó, b n biên d ch l i (nh n t h p phím Ctrl+F9), s xu t hi n thông báo như sau: Hình 29: Thông báo thi u khai báo unit untPTB1 B n Click nút l nh Yes ñ Delphi t ñ ng khai báo thêm untPTB1 vào t p tin unit untMain. Tương t cho unit frmPTB2, ta cũng Click nút l nh Yes ñ thêm vào. Hình 30: Thông báo thi u khai báo unit untPTB2 Sau 2 bư c trên, ño n khai báo các unit s như sau:
  • 67. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 61 Hình 31: ðã khai báo xong 2 unit: untPTB1, untPTB2 - Cách 2: Vì trong unit untMain, anh A s d ng frmPTB1 và frmPTB2. Do v y, trư c khi anh A vi t code cho 2 TTSK trên, anh A ph i gõ thêm khai báo vi c s d ng 2 unit: untPTB1 và untPTB2, r i m i vi t l nh frmPTB1.Show; vào. Cách này t t và chính xác hơn cách 1 vì có trình Code Completion h tr cho b n khi vi t l nh như hình sau: Hình 32: Thêm khai báo unit trư c và có trình Code Completion Chú ý: B n có th s d ng l nh File/Use Unit... ñ thêm unit vào d án hi n hành.
  • 68. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trang B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT62 II.5. G b t p tin unit form ra kh i d án Công vi c này giúp b n lo i b ra kh i d án (Project) nh ng form (unit file) không c n thi t, ho c b sai. ð g b , b n ch n ch c năng Project/Remove from Project... Ví d 8: Anh A, trư ng nhóm, th y ph n chương trình c a anh C – Phương trình b c hai, vi t còn chưa t t (hay còn bugs). Anh A ñ ngh anh C hoàn ch nh và ki m tra (testing) ph n chương trình l i, sau ñó g i l i ñ anh A ñóng gói thành ph m. Như v y, anh A t m th i g b (remove) ph n chương trình c a anh C ra kh i d án hi n hành. ð làm vi c ñó, anh A ra l nh Project/Remove from Project... thì Delphi s xu t hi n h p tho i "Remove From Project", r i ch n unit untPTB2 và Click OK như hình sau: Hình 33: C a s g b t p tin unit Delphi yêu c u b n kh ng ñ nh l i công vi c g b này ra kh i d án, b n ch n Yes ñ g b : Hình 34: H p xác nh n vi c g b III. Bi u m u (TForm) Form là m t ñ i tư ng chuyên d ng trong môi trư ng l p trình Windows. Trong bi u m u form này, b n có th ñ t các ñ i tư ng thu c thành ph n khác như TLabel, TEdit, TButton,... lên nó ñ thi t k giao di n c a chương trình hay còn ñư c g i là Form chính (Main form) ho c các bi u m u ph khác trong d án. * Bi u tư ng:
  • 69. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 63 * M t s thu c tính thư ng dùng: Tên thu c tính Ý nghĩa Name Xác ñ nh tên cho ñ i tư ng form, tên này ph i có tính g i nh ñ giúp b n d qu n lý và l p trình, nh t là khi b n tham gia vào nh ng d án l n. (Xem l i B ng1: Quy cách ñ t tên các ñ i tư ng). AutoSize Có giá tr True ho c False: t ñ ng hay không t ñ ng thay ñ i kích thư c c a form sao cho kích thư c c a nó v a ñ ñ ch a các thành ph n (component) ñ t trong nó. Caption Chu i ký t ñư c hi n th trên thanh tiêu ñ (Title bar) c a form. BorderStyle Các ki u dáng hi n th form: - bsDialog: là h p h i tho i, không thay ñ i kích thư c ñư c. - bsSingle: ðư ng vi n khung ñư c k ñư ng 1 nét và không thay ñ i ñư c kích thư c c a form. - bsNone: Không có ñư ng vi n khung và không thay ñ i ñư c kích thư c c a form. - bsSizeable: D ng chu n/ m c nhiên c a form. ðây là d ng m t c a s r t ph bi n trên môi trư ng l p trình Windows. - bsToolWindow: Gi ng bsSingle, nhưng thanh tiêu ñ nh h p hơn. - bsSizeToolWin: Gi ng bsSizeable, nhưng thanh tiêu ñ nh h p hơn. BorderIcons Xác ñ nh trên thanh tiêu ñ có h p ñi u khi n hay còn g i là h p “Control box”, “Control menu” và “System menu” bên trái thanh tiêu ñ và các nút ñi u khi n bên ph i thanh tiêu ñ : - biSystemMenu: Form có h p ñi u khi n. - biMinimize : Form có nút thu nh (Minimize) - biMaximize: Form có nút phóng to (Maximize), ph c ch (Restore) - biHelp : Form có nút tr giúp n u b n thi t l p giá tr c a biMinimize = False và biMaximize = False. Cursor Các ki u dáng hi n th con tr (Mouse) trên form. Form style Các ki u form: (MDI: Multi Document Interface) - fsMDIForm: MDIForm (Multi Document Interface) là form MDI cha c a t t c các form khác (n u có) trong chương trình. Khi b n ñóng MDIForm, thì ñ ng nghĩa v i vi c ñóng t t c các form khác và k t thúc chương trình. - fsMDIChild: ðây là form MDI con. Trong chương trình, b n có th m ra nhi u c a s MDIChild. ð d hi u, b n có th xem MDIForm chính là c a s ng d ng ph n m m Microsoft Word, còn MDIChild chính là các c a s t p tin như Document1, Document2,... ñư c t o ra thông qua l nh File/New - fsNormal: Là lo i form thư ng dùng nh t và ñây cũng là giá tr m c ñ nh (Default) khi b n thêm 1 form m i. Lo i form này không có tính ch t c a lo i form MDI. - fsStayOnTop: giúp cho form luôn n i lên trên nh t, ngay c khi có form khác ñang ho t ñ ng (Active).