giao trinh lap trinh can ban b tn035

258
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 dng 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

Upload: hoc-huynh-ba

Post on 30-May-2015

806 views

Category:

Documents


17 download

TRANSCRIPT

  • 1. TR NG I H C C N TH KHOA KHOA H C T NHIN Gio trnh l thuy tLP TRNH CN BN B MSMH: TN035(p d ng cho chng trnh tn ch )Bin so n: ThS. V DUY LINH ThS. NGUY N NH GIA VINH ThS. L TH DI M Nm 2010

2. M CL CCHNG 1: D LI U V THU T TON................................................................1 I. D li u v thng tin: .............................................................................................1I.1. Khi ni m.......................................................................................................1I.2. S t ng qut c a m t qu trnh x l thng tin.........................................1 II. T bi ton t i chng trnh ................................................................................1II.1. Cc giai o n gi i m t bi ton trn my tnh i n t ..................................1II.2. Thu t ton (Algorithm).................................................................................2CHNG 2: BORLAND DELPHI .............................................................................5 I. T ng quan v Delphi.............................................................................................5I.1. Delphi l g.....................................................................................................5I.2. Cc phin b n c a Delphi ..............................................................................5 II. Mi tr ng pht tri n tch h p (IDE) c a Delphi................................................5II.1. C a s chnh c a Delphi...............................................................................6II.2. Thanh th c n chnh v thanh cng c .......................................................6II.3. B ng ch a cc thnh ph n c a Delphi (Component Palette) .......................7II.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) .................................................................................................8II.5. C a s thu c tnh v s ki n c a i t ng (Object Inspector) ...................9II.6. C a s li t k cc i t ng d ng cy (Object TreeView).........................10 III. C u trc m t d n Delphi ...............................................................................10III.1. T p tin d n: (Delphi project file) ...........................................................10III.2. Cc t p tin ch a m l nh (Unit file) ..........................................................11III.3. Cc t p tin c t bi u m u (Form file).....................................................11III.4. Cc t p tin ti nguyn (Windows Resource File)......................................13 IV. Cc thao tc c b n trn Delphi .......................................................................14IV.1. M m t d n m i.....................................................................................14IV.2. Lu d n ..................................................................................................14IV.3. Lu Form (t p tin unit) v i tn khc.........................................................18IV.4. Lu d n v i tn khc..............................................................................18IV.5. ng d n ................................................................................................18IV.6. Thot kh i Delphi .....................................................................................18CHNG 3: CC THNH PH N C B N C A NGN NG DELPHI (OBJECTPASCAL).............................................................................................19 I. B ch vi t .........................................................................................................19 II. T kha ..............................................................................................................19 III. Tn danh hi u t t .........................................................................................20 IV. H ng .................................................................................................................20IV.1. Khi ni m ..................................................................................................20IV.2. H ng tr ......................................................................................................20B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang i 3. IV.3. H ng nh ki u: .........................................................................................21 V. Ki u (Type)........................................................................................................21 V.1. nh ngha ..................................................................................................21 V.2. Cch khai bo .............................................................................................21 VI. Bi n ..................................................................................................................22 VII. Bi u th c .........................................................................................................22 VII.1. nh ngha................................................................................................22 VII.2. Th t u tin...........................................................................................22 VIII. Chuy n ki u (Typecast).................................................................................23 IX. L i ch thch v cc ch d n bin d ch .............................................................24 X. C u trc m t d n ch Form (Form Application)....................................25CHNG 4: CC KI U D LI U S C P CHU N, L NH N .......................26 I. Cc ki u d li u s c p (Simple type) ................................................................26I.1. Ki u s nguyn (Integer)..............................................................................26I.2. Ki u k t (Char) .........................................................................................26I.3. Ki u s th c (Real type)...............................................................................30I.4. Ki u logic (Boolean) ....................................................................................34 II. Cu l nh (statement) ..........................................................................................34 III. L nh n (Simple statement) ...........................................................................35 IV. L nh gn (Assignment statement)....................................................................35 V. L nh g i th t c v hm ....................................................................................35 VI. L nh Goto.........................................................................................................37CHNG 5: L P TRNH X L S KI N CC THNH PH N TRONG GIAO DI N DELPHI ....................................................................................38 I. L p trnh x l s ki n ........................................................................................38I.1. L p (Class) v i t ng (Object) ...............................................................38I.2. Thu c tnh ....................................................................................................43I.3. Phng th c (Method) .................................................................................44I.4. S ki n (Event).............................................................................................44I.5. X l s ki n (Event Handlers)....................................................................45I.6. Trnh h tr m l nh (Code Completion /IntelliSense)................................46 II. Sinh m t ng v m t s cch s a l i ............................................................46II.1. Cch t ng sinh m (generate code) trong Delphi .................................46II.2. Cch s a l i sinh m trong Delphi.............................................................49II.3. Thm t p tin unit vo d n ........................................................................54II.4. Vi t l nh sau khi thm unit form vo d n................................................58II.5. G b t p tin unit form ra kh i d n .........................................................62 III. Bi u m u (TForm) ............................................................................................62 IV. Cc thnh ph n (Component) giao di n ph bi n ............................................68IV.1. Nhn (TLabel) ...........................................................................................68IV.2. H p vn b n (TEdit)..................................................................................71Trang iiB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 4. IV.3. Nt l nh (TButton)....................................................................................78 IV.4. Nhn v H p nh p (TLabeledEdit) ...........................................................80 IV.5. H p nh d u hay h p ki m (TCheckbox) ...............................................81 IV.6. Nt ty ch n (TRadioButton) ...................................................................87 IV.7. Nhm ty ch n (TRadioGroup) ................................................................88 IV.8. Vng vn b n (TMemo)............................................................................91 IV.9. H p danh sch (TListBox) ........................................................................96 IV.10. TSpinEdit ..............................................................................................100 IV.11. H p danh sch nh d u (TCheckListBox) ..........................................101 IV.12. H p danh sch cc 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 cc thnh ph n (TPanel)......................................................124 IV.16. Thanh th c n chnh (TMainMenu)....................................................125 IV.17. Th c n (TMenuItem) ........................................................................126 IV.18. Menu i t ng (TPopupMenu) ...........................................................134CHNG 6: CC L NH C C U TRC.............................................................138 I. L nh ghp (Compound statement)....................................................................138 II. L nh c u trc r nhnh ....................................................................................138II.1. L nh if ... then ... v l nh if ... then ... else................................................138II.2. L nh Case ... of .........................................................................................146 III. C u trc l nh l p.............................................................................................149III.1. L nh l p c s l n xc nh tr c ...........................................................149III.2. L nh l p c s l n khng xc nh tr c ................................................155CHNG 7: CHNG TRNH CON....................................................................164 I. Khi ni m..........................................................................................................164 II. Hm..................................................................................................................165 III. Th t c............................................................................................................172 IV. Truy n tham s ...............................................................................................175IV.1. nh ki u v khng nh ki u cho tham s hnh th c.............................175IV.2. Truy n b ng tham tr (Value parameter).................................................177IV.3. Truy n b ng tham bi n (Variable parameter) .........................................179IV.4. Truy n b ng tham s h ng (Constant parameter) ...................................181IV.5. Truy n b ng tham s xu t (Out parameter) ............................................184 V. Chng trnh con quy .................................................................................190CHNG 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) ..............................................194I.1. Khi ni m...................................................................................................194I.2. Cch khai bo: C hai cch khai bo l gin ti p v tr c ti p ...................194I.3. M t s hm chu n p d ng cho ki u v h ng .........................................195B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang iii 5. II. Ki u mi n con (Subrange types)......................................................................196II.1. Khi ni m..................................................................................................196II.2. Cch khai bo............................................................................................196 III. Ki u t p h p (Set)...........................................................................................197III.1. Khi ni m ................................................................................................197III.2. Cch khai bo ..........................................................................................197III.3. M t t p h p...........................................................................................198III.4. M t s php ton trn ki u t p h p .........................................................198CHNG 9: KI U M NG.....................................................................................208 I. Khi ni m v m ng (Array-type data) ..............................................................208 II. M ng tnh (Static array) ...................................................................................208II.1. M ng m t chi u (One-Dimensional array) ...............................................208II.2. M ng nhi u chi u (Multi-Dimensional array) ..........................................213II.3. M ng hai chi u..........................................................................................215 III. M ng ng (Dynamic array) ..........................................................................222III.1. M ng ng m t chi u .............................................................................222III.2. M ng ng nhi u chi u ...........................................................................227III.3. H ng m ng...............................................................................................228CHNG 10: KI U CHU I K T ......................................................................229 I. Cc lo i chu i k t trong Object Pascal ..........................................................229I.1. Chu i ng n (ShortString) ...........................................................................229I.2. Chu i di 1 byte (AnsiString) ....................................................................230I.3. Chu i di 2 byte (WideString) ...................................................................232 II. Cc thao tc trn chu i.....................................................................................232II.1. Php ton c ng chu i................................................................................232II.2. Php ton so snh......................................................................................232II.3. Cc th t c v hm chu n x l chu i k t .............................................234PH L C........ .........................................................................................................246TI LI U THAM KH O ..........................................................................................252B N QUY N TC GI ............................................................................................252Trang ivB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 6. Chng 1: D li u v Thu t tonCHNG 1: D LI U V THU T TONI. D li u v thng tin:I.1. Khi ni m D li u (Data) l cc s ki n khng c c u trc, khng c ngha r rng t i th ii m xt. Thng tin (Information) l m t khi ni m tr u t ng c th hi n qua cc thngbo, cc bi u hi n,... em l i m t nh n th c ch quan cho m t i t ng nh n tin. Thngtin l d li u c x l xong, mang ngha r rng t i th i i m xt. M t h th ng thng tin (Information system) l m t ti n trnh ghi nh n d li u, x ln v cung c p t o nn d li u m i c ngha thng tin, lin quan m t ph n n m t tch c, tr gip cc ho t ng lin quan n t ch c.I.2. S t ng qut c a m t qu trnh x l thng tinM i qu trnh x l thng tin b ng my tnh hay b ng con ng i u c th c hi ntheo m t quy trnh sau:D li u c nh p u vo (Input). My tnh hay con ng i s th c hi n qu trnhx l no nh n c thng tin u ra (Output). NH P D LI U X L XU T D LI U (INPUT)(PROCESSING)(OUTPUT)LU TR (STORAGE) Hnh 1: M hnh t ng qut qu trnh x l thng tinII. T bi ton t i chng trnhTrong cu c s ng, chng ta c r t nhi u bi ton c n ph i gi i quy t. S d ng mytnh i n t gi i cc bi ton l i u r t hi u qu do kh nng tnh ton c a my tnh. my tnh c th hi u c, chng ta c n ph i c nh ng b c gi i c th c a bi ton m tcch ng logic, t s d ng m t ngn ng chng trnh hay ph n m m l p trnh h ng d n my tnh th c hi n cc thao tc c n thi t tm ra k t qu c a bi ton.II.1. Cc giai o n gi i m t bi ton trn my tnh i n t gi i quy t m t bi ton trn my tnh i n t , c n qua cc giai o n sau: -Tm hi u m c tiu chnh c a bi ton: d li u nh p vo v k t qu xu t. -Xy d ng m t chu i thao tc tnh ton theo m t th t logic, g i l thu t gi i. -L p chng trnh di n t chi ti t cc b c tnh theo thu t gi i. -Nh p chng trnh vo my tnh, thng d ch v ch y th s a ch a l i. -Th c hi n gi i bi ton v i s li u thu th p c v ghi nh n k t qu .B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 1 7. Chng 1: D li u v Thu t ton - Th nghi m v i nhi u tr ng h p d li u nh p khc nhau c a bi ton chng trnh ki m tra ng trong m i tr ng h p t ng qut. - Phn tch k t qu v hon ch nh chng trnh. Trong cc b c trn, vi c thi t k thu t ton l giai o n quan tr ng nh t.II.2. Thu t ton (Algorithm)II.2.1. nh nghaThu t ton l m t phng php trnh by cc b c gi i quy t m t hay nhi u bi tontheo m t ti n trnh xc nh.II.2.2. c tnh c a thu t ton - Tnh xc nh: Cc thao tc c a thu t ton l r rng v ch c ch n th c hi n c d n n k t qu no . - Tnh h u h n v d ng: thu t ton ph i c m t s b c gi i nh t nh v cu i cng ph i c k t thc i m d ng. - Tnh k t qu : V i d li u h p l, thu t ton ph i cho k t qu th a yu c u. - Tnh ph d ng: Thu t ton ph i gi i c nhi u bi ton c cng c u trc v i cc d li u khc nhau v u d n n m t k t qu mong mu n. - Tnh hi u qu : Thu t gi i ph i n gi n, d hi u trong cc b c gi i, t i thi u ho b nh v th i gian th c hi n. - Tnh hnh th c: Cc b c trong thu t ton l my mc, ngha l n ph i th c hi n ng nh quy nh m khng c n bi t n m c tiu cu i cng.II.2.3. Cc phng php bi u di n thu t ton Thu t ton c th c di n gi i thng qua 3 phng php ph bi n, l s d ngngn ng t nhin, ngn ng gi v ngn ng s (lu ).II.2.3.1 Ngn ng t nhinL cch di n t t nhin c a con ng i b ng ngn ng c a mnh m t cc b cgi i bi ton. V d 1: M t thu t ton theo ngn ng t nhin c a phng trnh ax + b = 0 - B c 1: Nh p vo 2 h s a v b. - B c 2: Xt i u ki n a = 0? N u ng l a = 0, th i n b c 3, n u khng (ngha l a 0) th i n b c 4. - B c 3: Xt i u ki n b = 0? N u b = 0, th bo phng trnh c v s nghi m. i n b c 5. N u b 0, thng bo phng trnh v nghi m. i n b c 5. - B c 4: Thng bo phng trnh c m t nghi m duy nh t l x = - b/a. - B c 5: K t thc thu t ton. Trang 2 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 8. Chng 1: D li u v Thu t tonII.2.3.2 Ngn ng giL cch di n t cc b c gi i c a bi ton thng qua m t s cu l nh c c u trc(nh cu l nh if..then..else, for..to..do, while..do, repeat..until) V d 2: M t thu t ton theo ngn ng gi c a phng trnh b c nh t ax + b = 0 - B c 1: Nh p vo 2 h s a v b. - B c 2: if (a=0) thenif (b=0) then phng trnh v s nghi melse phng trnh v nghi melse phng trnh c m t nghi m duy nh t x = -b/a - B c 3: K t thc thu t ton.II.2.3.3 Ngn ng lu (Flowchart)L cch di n t cc b c gi i c a bi ton thng qua cc k hi u c a lu . M t squi c k hi u lu : K hi u M t i m b t u ho c k t thc thu t ton Thao tc nh p hay xu t Kh i x l cng vi c Kh i quy t nh ch n l a i m n i Chu n b T p h p cc t p tin d li u Kh i chng trnh con Cc ghi ch, gi i thch Dng tnh ton, thao tc c a chng trnh Hnh 2:Cc k hi u lu B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 3 9. Chng 1: D li u v Thu t tonV d 3: M t thu t ton theo ngn ng lu c a phng trnh ax + b = 0 B t u Nh p a,bSaix := -b/aa=0ngSaiPhng trnh Xu t nghi m x b=0 v nghi m ngPhng trnhv s nghi m K t thcHnh 3: Lu thu t ton PTB1Trang 4 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 10. Chng 2: Borland DelphiCHNG 2: BORLAND DELPHII. T ng quan v DelphiI.1. Delphi l g Delphi l m t ngn ng l p trnh c p cao, c trnh bin d ch hon h o, h tr m nhv cc ki u d li u c c u trc v thi t k h ng i t ng d a trn n n t ng ngn ng l ptrnh h ng i t ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngynay, Delphi c pht tri n thnh mi tr ng xy d ng ng d ng t c th i RAD (RapidApplication Development). T nh ng cng c c a RAD, b n c th gi i quy t nh ng v n ph c t p trong qua trnh pht tri n ph n m m nh: l p trnh ng d ng v c s d li u(Database), l p trnh m ng v Internet (Internet/Networking), l p trnh Multimedia(Animation, sound), l p trnh tr chi (Game) cng nh h a (Graphic) ho c l p trnh hth ng, v.v khng nh ng trn n n Windows m cn cho c Linux v .NET. Trong giotrnh ny, chng ti ch gi i thi u cc khi ni m c a Delphi trong ph m vi h i u hnhWindows. V i kh nng m nh nh v y c a Delphi, b n an tm khi dng n tri n khaicc ng d ng c a b n quy m nh hay l n. i u c n quan tm Delphi l m t ngn ngr t thn thi n v i ng i dng, ph h p cho nh ng ng i b t u lm quen v i n cng nhnh ng nh l p trnh chuyn nghi p. V y l gio trnh c so n dnh cho i t ng l cc sinh vin b t u h c Tinh c i cng thng qua ngn ng Delphi. Do v y, gio trnh ny ch gi i thi u nh ngkhi ni m cn b n nh m gip cho ng i h c c m t s ki n th c nh t nh v n d ngvo gi i cc bi ton ho c vi t nh ng chng trnh ng d ng nh . Cc chng trong giotrnh ny s trnh by cc ph n t c b n c a Delphi t o m t chng trnh ch y trnn n Windows, chnh l mi tr ng pht tri n tch h p IDE (Integrated DevelopmentEnvironment) v ngn ng h ng i t ng Borland Pascal. Cc b n s c h c cchthi t k (Design), pht tri n (Develop) hay vi t m l nh (Code), v ki m tra l i (Test)chng trnh ng d ng b i vi c s d ng Delphi.I.2. Cc phin b n c a DelphiTi n thn c a Delphi chnh l ngn ng i t ng Borland Pascal, v n ngy nayDelphi c m t qu trnh pht tri n v ng m nh t phin b n 1 (Delphi1) vo nm 1995, n phin b n 8 (Delphi for .NET) nm 2005. Trong gio trnh ny, chng ti th ng nh ttrnh by v i cc b n Delphi 7. y l phin b n ph h p nh t v d dng nh t hi n naycho cc b n, i t ng l cc sinh vin h c Tin h c i cng.II. Mi tr ng pht tri n tch h p (IDE) c a DelphiMi tr ng so n th o v thi t k ng d ng c a Delphi 7 chia ra lm 5 ph n: C a schnh c a chng trnh Delphi, c a s thi t k bi u m u (Form designer), c a s li t k ccthnh ph n, i t ng d ng cy (Object TreeView), c a s thi t l p thu c tnh i t ng(Object Inspector), v c a s so n th o m l nh (Code Editor). V i mi tr ng IDE ny,b n s c m t giao di n (Interface) thi t k (Design), bin d ch (Compile) v g l i(Debug) d n m b n ang pht tri n.B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 5 11. Chng 2: Borland DelphiHnh 1:Giao di n c a d n m i t o trong Delphi 7 C a s chnh c a Delphi 7 C a s thi t k bi u m u C a s li t k cc i t ng d ng cy C a s thi t l p cc thu c tnh v s ki n c a i t ng C a s so n th o m l nhII.1. C a s chnh c a Delphi C a s chnh c a Delphi chnh l c a s c thnh tiu ch a tn d n (Projectname) m b n ang pht tri n, n bao g m th c n chnh (Main menu), thanh cng c(Toolbar), v b ng thnh ph n (Component palette).II.2. Thanh th c n chnh v thanh cng cII.2.1. Thanh th c n chnh Bao g m cc 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 nng khc nhau nh: m m td n m i, lu d n, bin d ch, g l i, ch y chng trnh, m gio trnh s trnh by chiti t ph n sau. Trang 6B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 12. Chng 2: Borland DelphiHnh 2: Thanh th c n chnhII.2.2. Thanh cng c (Toolbars)Trong Delphi c nhi u thanh cng c , nh: thanh cng c chu n (Standard), thanh gl i (Debug), thanh hi n th (View), M i nt (Button) trn thanh cng c th ng l m tthao tc hay m t l nh m khi ta Click vo n s thi hnh, v d nh: Bin d ch (Compile),ch y (Run) ho c k t thc ch y chng trnh (Program Reset), Hnh 3:Cc thanh cng cII.3. B ng ch a cc thnh ph n c a Delphi (Component Palette) Thnh ph n (Component), hay cn c g i l i u khi n, chnh l i t ng c s ntrong Delphi m b n c th thao tc trn n trong th i i m thi t k form. C 2 lo i thnhph n, l thnh ph n tr c quan (visual component): nhn th y khi ch y chng trnh, vthnh ph n khng tr c quan (nonvisual component): khng nhn th y khi ch y chngtrnh. M i thnh ph n c m t s tnh ch t ring, v c qu n l thng qua cc thu c tnh(Properties), s ki n (Events) v cc phng th c (Methods). Cc thu c tnh ny gip b nc th qu n l v i u khi n chng trnh c a b n. Khi b n t m t thnh ph n ln form,th n s xu t hi n trong c a s Object TreeView v Object Inspector s c trnh by ph n sau. Trong b ng ch a cc thnh ph n c nhi u th (tab) khc nhau, nh th Standard,Addition, Win32, System, Data Access, ADO, Internet, Rave, Server, Trn m i th ch acc bi u t ng (icon) i di n cho cc thnh ph n. Hnh 4:B ng ch a cc thnh ph n trong th StandardB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 7 13. Chng 2: Borland DelphiII.4. C a s thi t k bi u m u (Form Designer) v C a s so n th o m l nh (Code Editor)II.4.1. C a s thi t k bi u m uKhi b n t o m t d n m i, mi tr ng pht tri n tch h p IDE c a Delphi s t t ora m t bi u m u m i (Form) b n ty nghi thi t l p cc gi tr c a thu c tnh d a trnProperties, v cc th t c s ki n d a vo Events, c xc nh trong Object Inspector,cho vi c thi t k chng trnh. Trong h u h t tr ng h p, m t d n th ng c t nh t m tform. Cng v i cc thnh ph n trn b ng cc thnh ph n, b n s thi t k c m t giaodi n cho chng trnh m b n ang xy d ng l thn thi n nh t cho ng i s d ng.TLabel (StdCtrls)TEdit (StdCtrls)TButton (StdCtrls) TMemo (StdCtrls) Hnh 5: Form Giai phuong trinh bac nhat v cc Components Cc gi tr c a form v cc gi tr c a cc component t trn form c lu trongt p tin form (form file) v c ph n m r ng .dfm, v i ph n tn c xc nh gi ng nhph n tn c a n v chng trnh form. T p tin form ny ch a ng cc gi tr c a formcng nh cc gi tr c a cc component m ta t trn form trong qu trnh 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 chng trnh (Unitfile/ Form unit), tn t p tin c a form unit ny c t tn trong qua trnh lu (Save) v cph n m r ng l .pas, n i dung c a t p tin form unit ny ch a ng cc khai bo thngth ng c a unit (s c p chi ti t ph n sau) cng nh cc hm s ki n tng ng choform v cc component trn n. Trang 8 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 14. Chng 2: Borland DelphiHnh 6:C a s so n th o m l nh cho form unit untPtb1.Pas chuy n i gi a c a s so n th o m l nh v i c a s thi t k bi u m u, ta sd ng ch c nng View/Toggle Form/Unit t main menu ho c g phm ch c nng F12. V d 1: Trong project Giai phuong trinh bac nhat trn, ta lu unit file v i tn untPtb1.Pas v form file s c t ng t theo l untPtb1.dfmII.5. C a s thu c tnh v s ki n c a i t ng (Object Inspector) Hnh 7:th Properties c a Form v th Events c a ButtonC a s Object Inspector c a form hay component u c 2 th : Properties v Events.Th Properties dng xc nh cc tnh ch t c a i t ng ni chung (Form, component)hi n hnh m t cch tr c quan, ch ng h n nh Caption, Name, Position, Visible, ThEvents dng l p trnh s ki n: xc nh nh ng p ng c a i t ng khi nh n tc ngB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 9 15. Chng 2: Borland Delphit chu t (Mouse) ho c bn phm (Keyboard) nh: nh p chu t (OnClick), ng c a s(OnClose), g phm Enter (OnEnter), thng qua cc th t c s ki n. Khi thay i cc gi tr trong th Properties trong qu trnh thi t k , th m l nhtng 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 cc i t ng d ng cy (Object TreeView) Hnh 8:C a s li t k cc i t ng d ng cy trn frmPTB1 Object TreeView li t k cc thnh ph n tr c quan v khng tr c quan m b n tchng trn form hi n hnh. M i th i i m ch c m t form duy nh t c li t k.III. C u trc m t d n DelphiIII.1. T p tin d n: (Delphi project file)Hnh 9:T p tin d n prjPtb1.dpr Trang 10 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 16. Chng 2: Borland Delphi Khi b n b t u m m i m t chng trnh ng d ng b ng thao tc:File/New/Application, Delphi 7 s t ng t o ra m t t p tin d n c tn m c nhin ban u l Project1. Khi b n lu d n, Delphi s l n l t nh c b n t tn cho cc form unitv tn d n. v d gi i phng trnh b c nh t trn, form unit c tn l untPTB1.pasv tn d n l prjPTB1.dpr. Ph n tn c a t p tin d n cng chnh l tn c a chngtrnh, c khai bo sau t kha program. B n ch : ti n t c a unit file l unt, cn project file l prj. V d nh untPTB1.pasv prjPTB1.dpr hi n th t p tin d n, ta vo ch c nng Project/View Source M l nh ngu n (Source code) c Delphi t ng sinh ra trong t p tin d n baog m: - Tn chng trnh, c khai bo b i t kha program, y cng chnh l tnchng trnh ng d ng (Application file). - Cc cu l nh ch d n t i cc form v cc unit c s d ng trong d n ckhi bo sau t kha uses. - Ch th bin d ch {$R *.res}: s d ng cc t p tin ti nguyn (Resources). - Kh i l nh thn chng trnh chnh, b t u b i t kha begin v k t thc l end. + Initialize : Kh i ng chng trnh ng d ng. + CreateForm : T o form chnh (Main form). + Run: Ch y chng trnh ng d ng. T p tin d n l t p tin trung tm c a m t d n c tri n khai b i Delphi. T p tinny ch a ng cc tham kh o (Reference) t i t t c cc file khc trong d n v lin k tv i cc form cng nh t p tin n v (Unit file) km theo c a form. Khi chng trnh cthi hnh (Run, execute), n s b t u t t p tin d n ny. T p tin ny c t ng sinh ra, v nh v y, b n khng nn thay i n i dung c an ngo i tr trong nh ng tr ng h p c n thi t. T p tin d n c lu v i ph n m r ng .dprIII.2. Cc 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) vnhi u t p tin n v chng trnh (Unit file) xem l i ph n "C a s so n th o m l nh"ph n trn. M i khi ta thm vo m i m t form (ho c Data Module, Frame,) th m t t ptin unit s c t o ra. Thng th ng m t d n c tri n khai trong th c t s c nhi ut p tin unit ny. N i dung t p tin unit ny ch a ng m l nh c a chng trnh v c a ccs ki n i u khi n (Event handles) trn form cng trn cc thnh ph n (Component) mchng c t trn n. Unit file c lu v i ph n m r ng l .pasIII.3. Cc t p tin c t bi u m u (Form file)N i dung c a t p tin ny xc nh m t cch chi ti t cc tnh ch t hay thu c tnh(Properties) c a form v t t c cc i t ng (ni chung) l p trnh vin thi t k . T p tinny lun i km v i m t t p tin unit file.Form file c lu v i ph n m r ng l .dfm hi n th n i dung t p tin ny, b n RClick trn form r i ch n View as Text.B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 11 17. Chng 2: Borland Delphi V d 2: Xem n i dung t p tin form file c tn untPTB1.dfm nh sau: T ch thi t k c a form c tn l frmPTB1, b n RClick trn form r i ch n Viewas Text nh hnh sau: Hnh 10: Chuy n cch hi n th t d ng Form sang d ng Text N i dung c a t p tin untPTB1.dfm d ng vn b n s c nh hnh sau:Hnh 11: Hi n th d ng text c a untPTB1.dfm chuy n i t cch hi n th d ng Text sang d ng Form, ta s d ng ch c nngRClick ch n ch c nng View as Form hay t h p phm Alt+F12: Trang 12B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 18. Chng 2: Borland Delphi Hnh 12: Chuy n cch hi n th d ng Text sang d ng Form.III.4. Cc t p tin ti nguyn (Windows Resource File)T p tin ny cng c t ng sinh ra. N i dung c a n ch a ng cc thng tin vphin b n (Version) cng nh bi u t ng c a ng d ng (Application icon) d ng m nhphn.T p tin ny c ph n m r ng .resTa c th m t p tin ti nguyn ny ch thi t k (Design) b ng chng trnhImage Editor c km theo b Delphi. Hnh 13: Giao di n chng trnh x l nh Image EditorB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 13 19. Chng 2: Borland DelphiIV. Cc thao tc c b n trn DelphiIV.1. M m t d n m i t o m t d n m i, b n s d ng l nh File/New/Application. Hnh nh m t d nm i t o nh hnh sau: Hnh 14: D n m i t oIV.2. Lu d nM t d n trong Delphi s sinh ra kh nhi u t p tin. Do v y, khi lu d n, b n c nph i t o ra 1 th m c ch a cc t p tin trong d n . Qu trnh lu d n nh sau: lu m t d n, b n s d ng l nh: File/Save All hay t h p phm Shift+Ctrl+S.Thng th ng b n ph i lu cc form tr c (m i form l m t t p tin unit c ph n m r ngl pas), r i sau m i lu t p tin d n (ph n m r ng l dpr). V d 3: Lu d n hi n th cu "Hello world!..." ch c m t form, vo th m c S:HelloWorld nh sau:Hnh 15: C a s thi t k Form Trang 14 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 20. Chng 2: Borland Delphi - T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "SaveUniti File" (v i i =1..n) nh sau:Hnh 16: H p tho i Save Uniti As Click ch n h p li t k th "Save in" ch n a S: nh hnh sau:Hnh 17: H p tho i Save Uniti As: Ch n aB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 15 21. Chng 2: Borland Delphi Ti p n, Click ch n bi u t ng "Create New Folder" t o th m c m i ch a cct p tin c a d n m b n mu n lu (th m c HelloWorld). Hnh 18: H p tho i Save Uniti As: T o th m c Sau khi t o th m c xong, b n Click nt l nh Open m th m c HelloWorld ra. Hnh 19: H p tho i Save Uniti As: M th m c Trang 16 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 22. Chng 2: Borland DelphiTi p n, b n g tn t p tin unit m b n mu n lu vo trong h p li t k th "Filename", y l tn untHelloWorld.pas, r i Click Save.Hnh 20: H p tho i Save Uniti As: Nh p vo tn 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 lu t p tind n. B n g vo tn t p tin d n vo trong h p li t k th "File name", v d ny l tnprjHelloWorld.dpr, v Click Save.Hnh 21: H p tho i Save Projecti As: Nh p tn t p tin d nB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 17 23. Chng 2: Borland DelphiD n c lu v t tn xong. Sau vi c ny, n u b n c ch nh s a chng trnh, lu l i nh ng s thay i ny, b n ch c n ra l nh File/Save All Delphi t ng luton b l i d n.Hnh d i y cho b n th y s l ng cc t p tin trong m t d n Hello World c lu, thng qua c a s Windows Explorer nh sau:Hnh 22: Cc t p tin c a d n Hello Wolrd trong th m c S:HelloWorldIV.3. Lu Form (t p tin unit) v i tn khc B n ch n l nh File/Save As lu.IV.4. Lu d n v i tn khc B n ch n l nh File/Save Project As lu d n.IV.5. ng d n B n ch n l nh File/Close All ng l i ton b d n.IV.6. Thot kh i Delphi Sau khi lu l i ton b d n. thot kh i Delphi, b n s d ng l nh: File/Exit Trang 18 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 24. Chng 3: Cc thnh ph n c b n c a ngn ng Delphi (Object Pascal) CHNG 3: CC THNH PH N C B N C A NGN NGDELPHI (OBJECT PASCAL)Trong chng ny v chng 4 ti p theo sau, gip cho vi c lm quen v i cc khini m c b n c d dng. Gio trnh s xy d ng cc v d theo d ng chng trnh ch vn b n (Text mode) hay khng h tr ho (Console Application). t o m tproject m i theo d ng Console Application,b n s d ng ch c nngFile/New/Other/Console Application.I. B ch vi t - B 26 ch Latin:o Ch in: A, B, C, ..., X, Y, Zo Ch th ng : a, b, c, ..., x, y, z - B ch s th p phn : 0, 1, 2, 3, ..., 8, 9 - K t g ch n i : _ - Cc k hi u ton h c : +, -, *, /, =, , (, ), [, }II. T kha L cc t ring c a Object Pascal, c ng ngha c xc nh, khng c dngn vo cc vi c khc ho c t tn m i trng v i cc t kha. T kha chung: program, begin, end, procedure, function -T kha khai bo: const, var, type, array, string, record, set, file, label, class,... -T kha c a l nh l a ch n: if ... then ... else, case ... of -T kha c a l nh l p: for... to... do, for... downto... do, while... do, repeat...until -T kha i u khi n: with, goto, exit, halt -T kha ton t : and, or, not, in, div, mod D i y l danh sch m t s t kha thng d ng:and forrecordarray function repeatbegin goto setcaseif toclass implementation tryconst interfacetypediv labelunitdomoduntildowntoobject usesB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 19 25. Chng 3: Cc thnh ph n c b n c a ngn ng Delphi (Object Pascal). elseofvar end procedure while finalizationprogram with finally propertyB ng 1: Cc t khoIII. Tn danh hi u t tTrong Delphi t tn cho cc bi n, h ng, ki u, chng trnh con ta dng cc danhhi u (Identifier). Quy t c t tn c a danh hi u trong Delphi l: - Chi u di t i a: 256 k t . - B t u b ng ch ci ho c d u _ (g ch d i); ti p theo c th k t h p s v cc k t khc. - Khng c ch a kho ng tr ng. - Khng trng v i cc t kha. - Khng phn bi t ch hoa v ch th ng. - Cc nh danh l ng nhau c dng 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 khng h p l :1S (b t u b ng s ), Del ta (tn c kho ng tr ng),...IV. H ngIV.1. Khi ni m H ng l m t i l ng c gi tr khng i trong qu trnh ch y chng trnh. Tadng tn h ng chng trnh c r rng v d s a i. C php khai bo: Const Tn_h ng = bi u_th c_xc_ nh_gi_tr _c a_h ng;IV.2. H ng trTrong tr ng h p ny th bi u_th c_xc_ nh_gi_tr _c a_h ng l m t tr xc nh.Gi tr c a bi u th c ny s c nh tr m t l n v khng thay i.V d 2: Const MaxSize = 100; Const x = Abs(-100)+Length(Chao ban); // h ng x =108 Const St = Borland+Delphi; // h ng St = Borland Delphi Trang 20B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 26. Chng 3: Cc thnh ph n c b n c a ngn ng Delphi (Object Pascal)Ch : Bi u th c h ng y c th l s , chu i k t , cc h ng true, false, nil, k th p v i cc ton t thch h p. Bi u th c h ng khng th ch a cc l i g i hm, bi n haycon tr , ngo i tr m t s hm n gi n nh: Abs, Chr, Length, Succ, Odd,IV.3. H ng nh ki u: C th ch a cc gi tr ki u m ng, b n ghi, ki u th t c v ki u con tr . C php khai bo h ng nh ki u:Const Tn_h ng: ki u_d _li u = gi_tr _h ng; V d 3: Const MaxSize : Integer =100;Trong v d trn chng ta khai bo m t h ng c tn l MaxSize, c ki u Integer vmang gi tr b ng 100. Chng ta th y, cch khai bo h ng ki u ny r t gi ng khai bo vkh i t o bi n (chng ta s xem trong ph n bi n). N u ng i l p trnh b t ch th bin d ch{$J+} th h ng c xem nh bi n; t c l chng ta c th thay i gi tr c a h ng lcchng trnh th c thi.H ng m ng, h ng ki u b n ghi, h ng ki u th t c chng ta s tm hi u chi ti t trongcc ph n sau.V. Ki u (Type)V.1. nh ngha Ngoi cc ki u nh s n, Delphi cn cho php ta nh ngha cc ki u d li u khct cc ki u cn b n theo qui t c xy d ng c a Delphi.V.2.Cch khai bo TypeTn_ki u = M_t _xy_d ng_ki u; V d 4: nh ngha cc ki u d li u ng i dng (ki u d li u m i) v khai bo bi n theo ki u v a nh nghatype //Khai bo ki u ng i dng SoNguyen = integer; Diem = single; Tuoi = 1 .. 100; Color = (Red, Blue, Green); Thu = (ChuNhat, Hai, Ba, Tu, Nam, Sau, Bay); V khi khai bo ki u th ta c quy n s d ng ki u nh ngha khai bo bi nnh sau:var //Khai bo bi n theo ki u ng i dng nh ngha i, j: SoNguyen; dtb: Diem; t: Tuoi;B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 21 27. Chng 3: Cc thnh ph n c b n c a ngn ng Delphi (Object Pascal).mau: Color;ngay_hoc: Thu;VI. Bi nBi n l m t c u trc ghi nh c tn ( l tn bi n hay danh hi u c a bi n). Bi n ghinh m t d li u no g i l gi tr (value) c a bi n. Gi tr c a bi n c th c bi n itrong th i gian s d ng bi n.S truy xu t c a bi n ngha l c gi tr hay thay i gi tr c a bi n c th c hi nthng qua tn bi n. C php khai bo bi n:Vartn_bi n [ho c danh_sch_tn_bi n] : Ki u_bi n;N u chng ta khai bo m t danh sch cc bi n c cng ki u th m i tn bi n cchnhau 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 nhngha b i ng i dng. V d 5:var a : extended ; // khai bo a l m t bi n ki u s th cb, c : integer ; // khai bo 2 bi n b, c c ki u s nguynhten : shortstring;m_Ok: boolean; // khai bo m_Ok l m t bi n ki u logicChon : char; // khai bo Chon l m t bi n ki u k tC n khai bo cc bi n tr c khi s d ng chng trong chng trnh. Khai bo m tbi n l khai bo s t n t i c a bi n v cho bi t n thu c ki u g.VII. Bi u th cVII.1. nh nghaM t bi u th c l m t cng th c tnh ton bao g m cc php ton (ton t ), h ng,bi n, hm v cc d u ngo c. V d 6:5 + u * sqrt(t) / sin(pi/2) ;(a=5) and (b7) or (c >= 10);max(x,y); // g i hmTrong : a, b, c, x, y, u, t l cc bi n c khai bo.VII.2. Th t u tinTon t : Trong Delphi g m c cc ton t c phn chia nh sau:- Ton t s h c:+, -, *, /, div, mod Trang 22 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 28. Chng 3: Cc thnh ph n c b n c a ngn ng Delphi (Object Pascal)-Ton t logic : not, and, or, xor-Ton t quan h: =, >, ? @65 - 90: cc ch in hoa t A n Z91 96: cc d u [] _ `97 122 : cc ch th ng t a n z123 127 :cc d u { | } ~ DEL (xa) H m ASCII 8 bit (ASCII m r ng) c thm 128 k t khc ngoi cc k t nutrn, g m cc ch ci c d u, cc hnh v , cc ng k khung n v khung i v m t sk hi u c bi t. th c hi n cc php ton s h c v so snh, ta d a vo gi tr s th t m ASCIIc a t ng k t , ch ng h n: A < a v s th t m ASCII tng ng l 65 v 97. Hm Chr(n): Tr v k t tng ng v i s th t m ASCII n. Hm Ord(ch): Tr v s th t c a k t ch trong b ng m ASCII. V d 1: V i khai bo bi n var ch: char; stt:byte; th cc cu l nh sau s c gi tr nh sau:ch := chr(65);//ch = Astt := ord(A);//stt = 65B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 27 33. Chng 4: Cc ki u d li u s c p chu n, l nh nB NG M ASCII v i 128 k t chu n Hex 0 1 2 34 56 70NUL DLE SP0@ P` p 01632 4864 8096 1121SOH DC1 ! 1A Qa q 11733 4965 8197 1132STX DC2 2B Rb r 21834 5066 8298 1143 DC3 # 3C Sc s 31935 5167 8399 1154 DC4 $ 4D Td t 42036 5268 84 100 1165 NAK % 5E Ue u 52137 5369 85 101 1176 SYN & 6F Vf v 62238 5470 86 102 1187BEL ETB 7G Wg w 72339 5571 87 103 1198BSCAN ( 8H Xh x 82440 5672 88 104 1209HTEM) 9I YI y 92541 5773 89 105 121 A LFSUB * :J Zj z102642 5874 90 106 122 B VTESC + ;K [k {112743 5975 91 107 123 C FFFS, N ^n ~143046 6278 94 110 126 F SIUS/ ?O _o DEL153147 6379 95 111 127 Hnh 1: B ng m ASCII chu nTrang 28B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 34. Chng 4: Cc ki u d li u s c p chu n, l nh n B NG M ASCII v i 128 m r ngHex8 9 A B C D E F 0 128 144 160 176 192 208 224 2401 129 145 161 177 193 209 225 2412 130 146 162 178 194 210 226 2423 131 147 163 179 195 211 227 2434 132 148 164 180 196 212 228 2445 133 149 165 181 197 213 229 2456 134 150 166 182 198 214 230 2467 135 151 167 183 199 215 231 2478 136 152 168 184 200 216 232 2489 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 254F 143 159 175 191 207 223 239 255 Hnh 2: B ng ASCII m r ngB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 29 35. Chng 4: Cc ki u d li u s c p chu n, l nh nV d 2: Vi t chng trnh in ra 256 k t c a b ng m ASCII:T File/New/Other, DClick vo Console Application m ra 1 d n m i v nh pcc dng l nh hon ch nh nh hnh sau: Hnh 3: Chng trnh in b ng m ASCII Nh n t h p phm Ctrl+F9 bin d ch l i. Nh n phm ch c nng F9 ch y chng trnh, v ta c k t quch Consolenh sau:Hnh 4: K t qu chng trnh ch ConsoleI.3. Ki u s th c (Real type)I.3.1. Khi ni m Delphi, ki u s th c bi u di n m t t p h p cc s mang d u ch m ng (float,real). Kch th c c a n ty thu c vo t kha m chng ta s d ng trong khai bo. Trang 30 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 36. Chng 4: Cc ki u d li u s c p chu n, l nh nT khaPh m vi Kch th c(byte)Real482.9 x 10^-39 .. 1.7 x 10^38 6Single1.5 x 10^-45 .. 3.4 x 10^38 4Double5.0 x 10^-324 .. 1.7 x 10^308 8Extended3.6 x 10^-4951 .. 1.1 x 10^493210Comp-2^63+1 .. 2^63 -18Currency-922337203685477.5808.. 8922337203685477.5807B ng 3: Cc t kho c a ki u th cTuy nhin, ki u s th c chng ta th ng dng c khai bo b ng t kha Real,trong Delphi ki u Real tng ng v i ki u Double.T kha Ph m viKch th c(byte)Real5.0 x 10^-324 .. 1.7 x 10^308 8B ng 4: Ki u RealI.3.2. M t s php ton v hm trn ki u s (s nguyn v s th c) Cc php ton s h c hai ngi:Php ton ngha Ki u ton h ng Ki u k t qu + C nginteger, realinteger, real - Trinteger, realinteger, real * Nhninteger, realinteger, real / Chia th c integer, realrealdivChia nguyn integerintegermodL y ph n d integerinteger B ng 5: Cc php ton 2 ngi V d 3: V i cc bi n x, y, z ki u integerx := 3*2;// x = 6y := 15 div 6; // t = 2z := 15.5 mod 5; // l iTuy nhin, php ton + v ton - cn c th l php ton m t ngi:Php ton nghaKi u ton h ng Ki u k t qu V d+ (unary)d u dnginteger, realinteger, real +7- (unary)d u m (l y s i) integer, realinteger, real -7 B ng 6: Cc php ton 1 ngiB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 31 37. Chng 4: Cc ki u d li u s c p chu n, l nh nKhi th c hi n cc php ton chng ta c n ch m t s i m c bi t sau:- K t qu c a php chia th c (/) lun lun c ki u Extented, khng quan tm nki u c a cc ton h ng.-Php ton mod l php ton l y ph n d.- Khi th c hi n php chia x/y (hay l x mod y ho c x div y) th y ph i khc 0, n u yc gi tr 0 th chng trnh s pht sinh l i.M t s hm chuy n i ki u d li u:function IntToStr ( Number : Integer ) : string;//Unit: SysUtilsfunction IntToStr ( BigNumber : Int64 ) : string; //Unit: SysUtils Hm IntToStr l hm th c hi n vi c chuy n i m t s nguyn (ho c s int64) thnhm t chu i s .function FloatToStr(Value: Extended): string; //Unit: SysUtilsfunction FloatToStr(Value: Extended; const FormatSettings: TFormatSettings): string;Hm FloatToStr chuy n i m t s th c hay s d u ch m ng (Value) thnh m tchu i bi u di n tng ng cho s .B ng d i y l cc hm lin quan n ki u s :Hm nghaabs(x); |x| : l y gi tr tuy t i c a s xarctan(x:extended): extended; arctang(x)cos(x: extended): extended; cos(x) : l y cos c a xexp(x: real): real; exfrac(x:extended): extended; Tr v ph n th p phn c a bi n xinc(var x [ ; n: longint ] ); tng bi n x ln 1 ho c n gi trint(x: extended): extended; Tr v ph n nguyn c a bi n xln(x);ln x : l y logarit nepe c a tr x (e 2.71828)max(a,b: numbertype): numbertype; Tr v s l n hn trong hai s a v b.min(a,b: numbertype): numbertype; Tr v s nh thua trong hai s a v b.Ki m tra n c ph i l s l hay khng:odd(n: integer|int64):boolean;True: N u n lFalse: N u n ch n.pi: extended; Tr v gi tr pi=3.1415926535897932385.Tr v m t s ng u nhin x v 0 0 thenbeginbtnCopy.Enabled:=true;btnCut.Enabled:=true;end;end;procedure TfrmNotePad.btnCopyClick(Sender: TObject);beginmemNotePad.CopyToClipboard;btnPaste.Enabled:=True;end;procedure TfrmNotePad.btnCutClick(Sender: TObject);beginmemNotePad.CutToClipboard;btnPaste.Enabled:=True;end;procedure TfrmNotePad.btnPasteClick(Sender: TObject);beginmemNotepad.PasteFromClipboard;memNotePad.SetFocus;end;procedure TfrmNotePad.btnClearClick(Sender: TObject);beginmemNotePad.Clear;end;end.- Lu d n vo th m c S:ViDuMemoB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 95 101. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi- Bin d ch v ch y chng trnh, ta c k t qu nh sau: Hnh 56: K t qu chng trnh MemoIV.9. H p danh sch (TListBox) L thnh ph n li t k m t danh sch cc ph n t . Cc ph n t ny khng th nh ptr c ti p khi ch y chng trnh.* Bi u t ng:* M t s thu c tnh th ng dng: Tn thu c tnh ngha Name Xc nh tn cho h p danh sch.Xc nh vi c canh l tri, ph i, trn, d i,... c a Listbox bn trong Alignthnh ph n ch a n. N u c gi tr b ng alClient th kch th cListBox s chi m ton b b m t c a thnh ph n ch a n. ColumnsS c t trong ListBox Font Xc nh cc thu c tnh v font nh: ki u ch , mu, c ,...Cho php b n nh p cc ph n t vo ListBox lc thi t k thng qua Itemsc a s String List Editor.Ph n t ch s th i trong Listbox. Ch s i b t u t 0 v ti p t c l Items[i]1, 2,... trong h p danh sch. Cch ny th ng c dng vi t m l nh.Tr v ch s ph n t hi n t i ang c ch n trong Items. M c nhin ItemIndexc gi tr l -1 (cha c ph n t no c ch n) CountTr v s ph n t c m t trong ListBox SelCount Tr v s ph n t c c ch n trong Listbox MultiSelectC gi tr True ho c False: Cho php Click ch n cng lc nhi u ph n Trang 96B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 102. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn thu c tnh nghat (k t h p v i phm Ctrl ho c Shift) hay ch 1 ph n t .C gi tr True ho c False: S p x p cc ph n t theo th t ch ciSortedho c khng s p x p.C gi tr True ho c False: c xu t hi n hay khng khi ch y chngVisibletrnh.C gi tr True ho c False: Cho php hay khng ng i s d ng truyEnabledxu t n n.Dng g i t ng n g n v ListBox khi b n tr mouse n n. Ch cHintnng ny ch c tc ng khi thu c tnh ShowHint l True. c nh th t b t u t 0, 1, 2,... xc nh th t m ListBoxTabOrder c nh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khi thu c tnh TabStop c gi tr True. B ng 34: Cc thu c tnh c a TListBox * M t s s ki n th ng dng: Tn s ki np ng c a s ki nOnClickKhi ng i s d ng Click vo i t ng Khi ng i s d ng RClick vo i t ng, ho c th c hi n vi cOnContextPopup b t ln menu i t ng.OnDblClick Khi ng i s d ng DClick vo i t ngOnExit Khi i t ng m t tiu i m (Lost Focus)OnKeyDownKhi c phm b t k c nh n G n nh s ki n OnKeyDown, nhng khng p ng cho ccOnKeyPress phm i u khi n nh: F1, Ctrl, Shift,...B ng 35: Cc s ki n c a TListBox * M t s phng th c (Method) th ng dng:C php c a phng th c nghaHm thm ph n t ki u string vo phaItems.Add(const S: string): Integer;cu i v tr v ch s c a ph n t nytrong Items.Th t c n i thm ph n t ki u string voItems.Append(const S: string);pha cu i Items.Th t c xa m t ph n tch s indexItems.Delete(Index: Integer);trong Items.Th t c xa m t ph n t ki u string t ich s index trong Items. Th t c nyItems.Insert(Index: Integer; const S: string);tng ng cu l nh gn vo thu c tnhItems nh sau: Items[index] := S;B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 97 103. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi C php c a phng th c nghaTh t c xa h t cc ph n ttrongClear;ListBox.ClearSelection; Th t c xa cc ph n t ch n.B ng 36: Cc phng th c c a TListBoxV d 19: m s ph n t m b n ch n trong ListBox - T o m t d n m i File/New/Application - Thi t l p cc thu c tnh c a form nh sau: Thu c tnh Gi trName frmMainCaptionVi du ve doi tuong ListBox B ng 37: Thi t l p thu c tnh Form. - t cc i t ng ln form v t thu c tnh nh sau: i t ngThu c tnhGi tr Name lbxSo Itemsr ng ( 0 line) ListBox Columns2 MultiSelectTrue Name edt_pt EditText r ng TabOrder 0 Name btnThem Button 1: Caption&Them phan tu vao Listbox Name btnDem Button 2: Caption&Dem so phan tu chon v 2 Label v i Caption nh m t trong form. B ng 38: Thi t l p thu c tnh cho cc i t ng.o n m l nh chng trnh:unit untDanhSach;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls, Qt;Trang 98 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 104. Chng 5: L p trnh x l s ki n Cc thnh ph n c a DelphitypeTfrmMain = class(TForm)lbxSo: TListBox;edt_pt: TEdit;btnThem: TButton;btnDem: TButton;Label1: TLabel;Label2: TLabel;procedure btnThemClick(Sender: TObject);procedure btnDemClick(Sender: TObject);procedure edt_ptKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);private{ Private declarations }public{ Public declarations }end;varfrmMain: TfrmMain;implementation{$R *.dfm}procedure TfrmMain.btnThemClick(Sender: TObject);beginlbxSo.Items.Add(edt_pt.Text);edt_pt.Clear;edt_pt.SetFocus;end;procedure TfrmMain.btnDemClick(Sender: TObject);beginShowMessage(So phan tu ban da chon la:+IntToStr(lbxSo.SelCount));end;{TTSK s d ng phm Enter a gi tr nh p trong Edit voListBox }procedure TfrmMain.edt_ptKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);beginif Key = 13 then //Go phim EnterbeginlbxSo.Items.Add(edt_pt.Text);edt_pt.Clear;end;end;end.B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 99 105. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi- Lu d n vo th m c S:ViDuListBox- Bin d ch v ch y chng trnh, ta c k t qu nh sau:Hnh 57: K t qu chng trnh ListBoxIV.10. TSpinEditThnh ph n ny n m trong th Sample. N cho php b n nh p vo m t s nguynb t k nh thnh ph n TEdit. Tuy nhin, TSpinEdit cn cho php b n thay i (tng, gi m)gi tr ny theo m t b c nh y (step/increment) no b ng cch Click vo nt(ntUpDown) tng ho c gi m.* Bi u t ng:* M t s thu c tnh th ng dng: Tn thu c tnh ngha Name Xc nh tn cho i t ng. ValueKi u integer: Gi tr c a i t ng SpinEditKi u integer: Gi tr th p nh t c a SpinEdit, m c nhin c gi tr 0: c MinValue ngha l khng gi i h n v c th c gi tr nh nh t trong ph m viki u s nguyn l 2147483648Ki u integer: Gi tr cao nh t c a TSpinEdit, m c nhin c gi tr 0: MaxValue c ngha l khng gi i h n v c th c gi tr l n nh t trong ph m viki u s nguyn l 2147483647 IncrementKi u integer: Gi tr b c nh y (step). M c nhin c gi tr l 1.Ki u integer: di l n nh t (hay s l ng k s nhi u nh t) c a s MaxLengthnguyn trong SpinEdit. Ch ng h n b n gi i h n ch nh p s t i a nhng ngn th b n cho thu c tnh ny b ng 4.Ki u String: Chu i k s bn trong i t ng. Thu c tnh ny tng Textng v i thu c tnh Value nhng khc ki u d li u.Ki u boolean: C gi tr l True, n u KHNG c n thay i gi tr c a ReadOnlythu c tnh Value. Cn ng c l i, b n c th thay i. Trang 100 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 106. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn thu c tnh ngha Ki u boolean: C gi tr True ho c False: C xu t hi n SpinEdit v Visible cc thnh ph n bn n hay khng khi ch y chng trnh. Ki u boolean: C gi tr True ho c False: Cho php hay khng ng i Enabled s d ng truy xu t n cc thnh ph n m n ch a hay khng. Dng g i t ng n g n v TPanel khi b n tr mouse n n. Ch c Hint nng ny ch c tc ng khi thu c tnh ShowHint l True. c nh th t b t u t 0, 1, 2,... xc nh th t m SpinEditl TabOrder c nh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khi thu c tnh TabStop c gi tr True.B ng 39: Cc thu c tnh c a TSpinEdit* M t s s ki n th ng dng:Tn s ki np ng c a s ki n OnClick Khi ng i s d ng Click vo i t ng Khi ng i s d ng RClick vo i t ng, ho c th c hi n vi c b t OnContextPopup ln menu i t ng. OnExitKhi i t ng m t tiu i m (Lost Focus) OnKeyDown Khi b n g phm b t k G n nh s ki n OnKeyDown, nhng khng p ng cho cc OnKeyPress phm i u khi n nh: F1, Ctrl, Shift,... Khi b n thay i gi tr trong i t ng c a thnh ph n OnChange TSpinEdit B ng 40: Cc s ki n c a TSpinEdit* M t s phng th c (Method) th ng dng: C php c a phng th c nghaShow; Th t c hi n th i t ng khi ch y chng trnh.Hide; Th t c n i t ng khi ch y chng trnh.Clear;Th t c xa h t gi tr trong TSpinEdit B ng 41: Cc phng th c c a TSpinEditIV.11. H p danh sch nh d u (TCheckListBox)L thnh ph n k t h p c ch c nng c a TListBox v TCheckBox m cc b n h c. Trong TListBox, m i ph n t tng ng v i m t dng. Cn trong TCheckListBox,m i ph n t tng ng v i m i h p ki m. Tnh nng c a ny cho ng i l p trnh ch nph n t no trong danh sch ch c n nh d u ch n trong h p ki m l xong. Thnh ph nny n m trong th Additional.B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 101 107. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi * Bi u t ng: * M t s thu c tnh th ng dng:Tn thu c tnh nghaName Xc nh tn cho h p danh sch nh d u. Xc nh vi c canh l tri, ph i, trn, d i,... c a TCheckListBox bnAligntrong thnh ph n ch a n. N u c gi tr b ng alClient th kch th c CheckListBox s chi m ton b b m t c a thnh ph n ch a n.ColumnsS c t trong i t ng CheckListBox Cho php b n nh p cc ph n t c d ng l h p ki m voItems CheckListBox trong lc thi t k thng qua c a s String List Editor. Ph n tch s th i trong CheckListBox. Ch s i b t u t 0 vItems[i] ti p t c l 1, 2,... trong h p danh sch. Cch ny th ng c dng vi t m l nh. Ph n t th i trong TCheckListBox c nh d u ch n. Ch s i b tChecked[i] u t 0 v ti p t c 1, 2, Tr v ch s ph n t hi n t i ang c ch n trong Items. M c nhinItemIndex c gi tr l 1 (cha c ph n t no c ch n)CountTr v s ph n t c m t trong CheckListBoxSelCount Tr v s ph n t c c ch n trong CheckListBox C gi tr True ho c False: Cho php Click ch n cng lc nhi u ph nMultiSelect t (k t h p v i phm Ctrl ho c Shift) hay ch 1 ph n t . C gi tr True ho c False: S p x p cc ph n t theo th t ch ciSorted ho c khng s p x p. C gi tr True ho c False: c xu t hi n hay khng khi ch y chngVisible trnh. C gi tr True ho c False: Cho php hay khng ng i s d ng truyEnabled xu t n n. Dng g i t ng n g n v CheckListBox khi b n tr mouse n n.Hint Ch c nng ny ch c tc ng khi thu c tnh ShowHint l True. c nh th t b t u t 0, 1, 2,... xc nh th t mTabOrder CheckListBox c nh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khi thu c tnh TabStop c gi tr True.B ng 42: Cc thu c tnh c a TCheckListBox * M t s s ki n th ng dng: Tn s ki np ng c a s ki nOnClick Khi ng i s d ng Click vo i t ngKhi ng i s d ng RClick vo i t ng, ho c th c hi n vi cOnContextPopupb t ln menu i t ng.Trang 102 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 108. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn s ki np ng c a s ki nOnDblClick Khi ng i s d ng DClick vo i t ngOnExit Khi i t ng m t tiu i m (Lost Focus)OnKeyDownKhi c phm b t k c nh n G n nh s ki n OnKeyDown, nhng khng p ng cho ccOnKeyPress phm i u khi n nh: F1, Ctrl, Shift,... B ng 43: Cc s ki n c a TCheckListBox * M t s phng th c (Method) th ng dng: C php c a phng th c nghaHm thm ph n t ki u string vo phaItems.Add(const S: string): Integer;cu i v tr v ch s c a ph n t nytrong Items.Th t c n i thm ph n t ki u string voItems.Append(const S: string);pha cu i Items.Th t c xa m t ph n tch s indexItems.Delete(Index: Integer);trong Items.Th t c xa m t ph n t ki u string t ich s index trong Items. Th t c nyItems.Insert(Index: Integer; const S: string);tng ng cu l nh gn vo thu c tnhItems nh sau: Items[index] := S;Th t c xa h t cc ph n t trongClear;TCheckListBox.ClearSelection; Th t c xa cc ph n t ch n.B ng 44: Cc phng th c c a TCheckListBox V d 20: Vi t chng trnh ng k v tnh h c ph cho sinh vin - T o m t d n m i File/New/Application - Thi t l p cc thu c tnh c a form nh sau: Thu c tnhGi tr Name frmVidu CaptionVi du ve CheckListBoxB ng 45: Thi t l p thu c tnh Form. - t cc i t ng ln form v t thu c tnh nh sau: i t ng Thu c tnh Gi tr CheckListBoxName clbTenMHB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 103 109. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi i t ng Thu c tnhGi trG m 15 ph n t nh sau:Thuc hanh Tin hoc can banLT Microsoft AccessTH Microsoft AccessLT Lap trinh Can ban B -DelphiTH Lap trinh can ban B ItemsAnh van Can banDai so Tuyen tinhToan cao capXac xuat thong keKe toan dai cuongSuc ben Vat lieuLy thuyet mangCai dat & Quan tri mangThiet ke Web Name lbxSoTCG m 15 ph n t nh sau:23232 ListBox2 Items33545535 Name speGia1TC MinValue 15000 SpinEditMaxValue 30000 Value15000 Increment1000 Name memTienHP Memo Lines0 line (r ng) Name btnTinhTien Button 1 CaptionTinh &tien hoc phi Name btnThemMH Button 2 CaptionThem ten &mon hoc moi v m t s Label nh thi t kformTrang 104B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 110. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphio n m l nh chng trnh:unit untVidu;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls, CheckLst, Spin, ExtCtrls;typeTfrmViDu = class(TForm)clbTenMH: TCheckListBox;btnTinhTien: TButton;Label1: TLabel;lbxSoTC: TListBox;Label2: TLabel;speGia1TC: TSpinEdit;Label3: TLabel;btnThemMH: TButton;memTienHP: TMemo;Label4: TLabel;Label5: TLabel;procedure btnThemMHClick(Sender: TObject);procedure btnTinhTienClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varfrmViDu: TfrmViDu;implementation{$R *.dfm}procedure TfrmViDu.btnThemMHClick(Sender: TObject);var mTenMH:string; mSoTC:integer;beginmTenMH := InputBox(Hop nhap,Nhap ten mon hoc,);if TryStrToInt(InputBox(Hop nhap,Nhap so tin chi,3), mSoTC) and (mSoTC>=1) and (mTenMH) thenbeginclbTenMH.Items.Add(mTenMH);lbxSoTC.Items.Add(IntToStr(mSoTC));endelse ShowMessage(Ban nhap SAI du lieu ve mon hoc.)end;B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 105 111. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphiprocedure TfrmViDu.btnTinhTienClick(Sender: TObject);var i, mSoMH, mTongSoTC, mTienHP:integer;beginmSoMH:=0; mTongSoTC:=0;memTienHP.Lines.Clear;for i:=0 to clbTenMH.Items.Count - 1 doif clbTenMH.Checked[i] thenbegininc(mSoMH);inc(mTongSoTC,StrToInt(lbxSoTC.Items[i]));end;mTienHP:=mTongSoTC*speGia1TC.Value;memTienHP.Lines.Add(* So mon ban da chon de dang ky la: + IntToStr(mSoMH));memTienHP.Lines.Add(* Tong so tien dong hoc phi la: + IntToStr(mTienHP));end;end.- Lu d n vo th m c S:ViDuCheckListBox- Bin d ch v ch y chng trnh, ta c k t qu nh sau:Hnh 58: Ch n tn mn h c v ch n Tnh ti n h c phTrang 106B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 112. Chng 5: L p trnh x l s ki n Cc thnh ph n c a DelphiHnh 59: Thm tn mn h c m i v s tn ch Hnh 60: Sau khi thm tn mn h c m i v tnh l i ti n h c phIV.12. H p danh sch cc kho (TValueListEditor)Thnh ph n ny g n gi ng nh TListBox, nhng m i ph n t /dng th c 2 ph n:ph n tn kho (Key name) v ph n tr kho (Key value). Hai ph n ny c th hi n trn2 c t v tiu c a 2 c t ny m c nhin l Key v Value. Tuy nhin ta c th thay i tntiu ny. Thnh ph n ny n m trong th Additional. * Bi u t ng: * M t s thu c tnh th ng dng: Tn thu c tnh ngha Xc nh tn cho i t ng ValueListEditor, tn ny c t nh tn Name bi n v c s d ng trong vi c vi t m l nh c a chng trnh. Tiu cho cc c t c a ValueListEditor. B n Click vo nt thay TitleCaptions i tn tiu n u b n c n thng qua c a s String List Editor DisplayOptionsdoColumnTitles: C hi n th (True) hay khng (False) hi n th hng tiu . N u c hng tiu , th n l hng u tin trongB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 107 113. Chng 5: L p trnh x l s ki n Cc thnh ph n c a DelphiTn thu c tnh nghaValueListEditor nn c ch s hng l 0.Cho php b n nh p cc ph n t hay hng c a TValueListEditor, v im i ph n t c 2 ph n: Tn kho v trkho voStringsTValueListEditor trong lc thi t k thng qua c a s Value ListEditor khi b n Click vo ntRowCountTr v s hng (c tnh c hng tiu ) c m t trong ValueListEditor.ColCountTr v s c t trong ValueListEditor.Strings.Count S hng/ph n t khng tnh hng tiu c trong ValueListEditorL tn kho (ki u String) th i trong ValueListEditor. Ch s i b t ut 0 v ti p t c l 1, 2,... Cch ny th ng c dng vi t m l nhKeys[i] (Coding). B n c n ch l: N u khng hi n th hng tiu , th ph nt u tin s c ch s b t u l 0. Cn n u c hi n th hng tiu th ph n t u tin c ch s hng b t u t 1.L tr kho (ki u String) th i c a ValueListEditor. Trong i ln tnValues[i]c a kho c a ph n t th i.Tr v tr kho (ki u String) c a ph n t th i. Ch s i lun lun b t u t 0 r i 1, 2, B n c n ch l: Thu c tnh ny KHNG tnhhng tiu . N u c hi n th hng tiu th ph n t u tin c chStrings[i]s l 0 v ph n t cu i cng l RowCount-1 (hay Strings.Count). Cnn u khng hi n th hng tiu , th ph n t u tin c ch s l 0 vph n t cu i cng l RowCount-2 (hay Strings.Count-1).Tr v ch s hng hi n hnh c a ph n t c ch n khi ch y chngtrnh. N u khng hi n th hng tiu th ch s hng u tin b t uRowt 0 r i 1, 2, Cn n u c hi n th hng tiu th ch s hng utin c ch s hng b t u t 1.Tr v ch s c t hi n hnh c a ph n t c ch n khi ch y chngColtrnh. Ch s c t b t u t 0 r i 1, 2, Cell[i,j] Tr v gi tr trong ch s c t i v hng j.Cc tu ch n trn c t kho (Key): Cho php (True) hay khng chophp (False): s a tn kho - keyEdit, thm tn kho - keyAdd, xo tnKeyOptionskho - keyDelete, ki m tra tn kho duy nh t (khng trng kho) -keyUnique.Cc tu ch n trn c t gi tr (Value) c a kho: Cho php (True) haykhng cho php (False): thay i tr kho- goEditing, s d ng phmOptionsTab v t h p phm Shift + Tab - goTabs, ch n c hng goRowSelect,C gi tr True ho c False: c xu t hi n hay khng khi ch y chngVisibletrnh.C gi tr True ho c False: Cho php hay khng ng i s d ng truyEnabledxu t n n.Dng g i t ng n g n v CheckListBox khi b n tr mouse n n.HintCh c nng ny ch c tc ng khi thu c tnh ShowHint l True. Trang 108B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 114. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn thu c tnh ngha c nh th t b t u t 0, 1, 2,... xc nh th t m i t ngTabOrder ny nh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khi thu c tnh TabStop c gi tr True. B ng 46: Cc thu c tnh c a TCheckListBox* M t s s ki n th ng dng:Tn s ki n p ng c a s ki nOnClick Khi ng i s d ng Click vo i t ngKhi ng i s d ng RClick vo i t ng, ho c th c hi n vi cOnContextPopupb t ln menu i t ng.OnDblClickKhi ng i s d ng DClick vo i t ngOnExitKhi i t ng m t tiu i m (Lost Focus)OnKeyDown Khi c phm b t k c nh nG n nh s ki n OnKeyDown, nhng khng p ng cho ccOnKeyPressphm i u khi n nh: F1, Ctrl, Shift,...OnSelectCellKhi m t b t k trong TValueListEditor c Click ch n. B ng 47: Cc s ki n c a TValueListEditor* M t s phng th c (Method) th ng dng: C php c a phng th c ngha Hm chn thm vo m t hng (ph n t ) g m tn kho v tr kho. N u mu n chn pha trn hngInsertRow(const KeyName, Value: hi n hnh th truy n tr False cho tham sstring; Append: Boolean): Integer; Append; Cn n u mu n chn ph n t vo cu i danh sch th cho Append b ng True.DeleteRow(ARow: Integer);Th t c xo m t hng b t k. Hm tm m t ph n t d a vo tn kho (Key). N u tm th y th hm s tr v gi tr True vFindRow(const KeyName: string; var tham bi n Row s ch a ch s hng c a ph n tRow: Integer): Boolean; u tin c tm th y. Cn ng c l i hm tr v gi tr False. Hm thm m t tr kho (c t Value) ki u stringStrings.Add(const S: string): Integer; vo pha cu i v tr v ch s c a ph n t ny.Strings.Append(const S: string); Th t c n i thm m t tr kho c t Value. Th t c xa m t hng/ph n tch s indexStrings.Delete(Index: Integer); trong Items. Th t c xa h t cc hng (ph n t ) trongStrings.Clear; TValueListEditor nga i tr hng tiu . B ng 48: Cc phng th c c a TValueListEditorB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 109 115. Chng 5: L p trnh x l s ki n Cc thnh ph n c a DelphiV d 21: Vi t chng trnh nh p vo danh sch cc m t hng v n gi. Tm ki m theo m t hng. - T o m t d n m i File/New/Application - Thi t l p cc thu c tnh c a form nh sau: Thu c tnh Gi tr NamefrmMain Caption Vi du ve ValueListEditor B ng 49: Thi t l p thu c tnh Form. - t cc i t ng ln form v t thu c tnh nh sau: i t ng Thu c tnhGi trName vleMatHang 2 lines tng ng l Key v Value:TitleCaptionsTen Giao Trinh: Don Gia: KeyValueValueListEditorLy thuyet Access 150StringsThuc hanh Access 145 Ly thuyet Delphi 165 Thuc hanh Delphi 140 KeyEdit = True, KeyAdd=TrueKeyOptions KeyDelete = False, KeyUnique=TrueName lbeTenHangEditLabel.Caption Nhap &Ten giao trinh moi:LabeledEdit th 1LabelPosistion lpAboveText (r ng)Name lbeDonGiaEditLabel.Caption Nhap &Don gia:LabeledEdit th 2LabelPosistion lpAboveText (r ng)Name lbeKQTKEditLabel.Caption Ket qua tim kiem.LabeledEdit th 3LabelPosistion lpBelowText (r ng)Button th 1 Name btnThemTrang 110B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 116. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi i t ng Thu c tnh Gi trCaption Them vao &danh sachNamebtnTimKiem Button th 2Caption Tim &kiem v 1 Label nh thi t k form o n m l nh chng trnh:unit untViDu;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Grids, ValEdit, StdCtrls, ExtCtrls;type TfrmMain = class(TForm)vleMatHang: TValueListEditor;lbeTenHang: TLabeledEdit;lbeDonGia: TLabeledEdit;btnThem: TButton; Label1: TLabel;btnTimKiem: TButton;lbeKQTK: TLabeledEdit;procedure btnThemClick(Sender: TObject);procedure btnTimKiemClick(Sender: TObject); private{ Private declarations } public{ Public declarations } end;var frmMain: TfrmMain;implementation{$R *.dfm}procedure TfrmMain.btnThemClick(Sender: TObject);var mDGia:Single; mVitri:integer;begin if (lbeTenHang.GetTextLen>0) and TryStrToFloat(lbeDonGia.Text,mDGia) and(mDGia>0) thenB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 111 117. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphiif vleMatHang.FindRow(lbeTenHang.Text,mViTri) = True thenShowMessage(Sorry!... Giao trinh nay (Key) da ton tai roi.)else //Chua ton tai, thi them vaovleMatHang.InsertRow(lbeTenHang.Text, lbeDonGia.Text,True) elseShowMessage(Ban nhap du lieu khong hop le!...);end;procedure TfrmMain.btnTimKiemClick(Sender: TObject);var mOK, mTimThay:Boolean; mTenHang: string; mViTri:Integer;begin lbeKQTK.Clear; mOK := InputQuery(Hop Nhap,Nhap chinh xac ten giao trinh can tim: ,mTenHang); if mOK then begin mTimThay := vleMatHang.FindRow(mTenHang, mVitri); if mTimThay then lbeKQTK.Text := Tim thay o vi tri thu + IntToStr(mViTri) else lbeKQTK.Text := Tim KHONG thay.; end else ShowMessage(Ban bo qua viec tim kiem.);end;end.- Lu d n vo th m c S:ViDuValueListEditor- Bin d ch v ch y chng trnh, ta c k t qu nh sau: Hnh 61: Thm gio trnh "Anh vn cn b n" Trang 112B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 118. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi- N u b n nh p thm vo tn gio trnh c, v d nh: "Ly thuyet Delphi" th s nh n c thng bo nh sau:Hnh 62: Nh p b trng Hnh 63: Tm ki m theo tn gio trnhIV.13. H p li t k th (TComboBox) L thnh ph n li t k m t danh sch cc ph n t th xu ng. Cc ph n t ny c th c nh p tr c ti p ho c khng th nh p tr c ti p khi ch y chng trnh l ty thu c voki u (Style) m b n thi t l p n qu trnh thi t k . * Bi u t ng: * M t s thu c tnh th ng dng:B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 113 119. Chng 5: L p trnh x l s ki n Cc thnh ph n c a DelphiTn thu c tnh nghaName Xc nh tn cho i t ng h p li t k th . C gi tr True ho c False: Nt li t k th t ng th xu ng hayAutoDropDown khng khi nh n m t phm. Cho php b n nh p cc ph n t vo ComboBox lc thi t k thngItems qua c a s String List Editor. Ph n t ch s th i trong ComboBox. Ch s i b t u t 0 v ti pItems[i] t c l 1, 2,... trong h p li t k th . Cch ny th ng c dng vi t m l nh. Xc nh ch s ph n t c ch n, ch s ny c gi tr b t t 0, 1,ItemIndex 2,... N u ItemIndex = -1 th cha c ph n t no c ch n.Items.CountT ng s cc ph n t c trong h p li t k th . S l ng cc ph n t c li t k trong h p li t k th t i m i th iDropDownCount i m. C 2 gi tr m b n c n phn bi t l: - csDropDown Cho php b n nh p tr c ti p thm m t ph n t m iStylevo trong TComboBox. - csDropDownList ch cho b n ch n t danh sch cc ph n t c s n trong ComboBox. Xc nh chu i vn b n (hay ph n t ) ang hi n th trongText TComboBox C gi tr True ho c False: S p x p cc ph n t theo th t ch ciSorted ho c khng s p x p. C gi tr True ho c False: C xu t hi n hay khng khi ch y chngVisible trnh. C gi tr True ho c False: Cho php hay khng ng i s d ng truyEnabled xu t n n. Dng g i t ng n g n v TComboBox khi b n tr mouse n n.Hint Ch c nng ny ch c tc ng khi thu c tnh ShowHint l True. c nh th t b t u t 0, 1, 2,... xc nh th t mTabOrder ComboBox c nh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khi thu c tnh TabStop c gi tr True. B ng 50: Cc thu c tnh c a TComboBox * M t s s ki n th ng dng:Tn s ki np ng c a s ki nOnClick Khi ng i s d ng Click vo i t ngKhi ng i s d ng RClick vo i t ng, ho c th c hi n vi cOnContextPopupb t ln menu i t ng.OnDblClickKhi ng i s d ng DClick vo i t ngTrang 114B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 120. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn s ki np ng c a s ki nOnExitKhi i t ng m t tiu i m (Lost Focus)OnKeyDown Khi c phm b t k c nh nG n nh s ki n OnKeyDown, nhng khng p ng cho ccOnKeyPressphm i u khi n nh: F1, Ctrl, Shift,...B ng 51: Cc s ki n c a TComboBox * M t s phng th c (Method) th ng dng: C php c a phng th c nghaHm thm ph n t ki u string vo phaItems.Add(const S: string): Integer;cu i v tr v ch s c a ph n t nytrong Items.Th t c n i thm ph n t ki u string voItems.Append(const S: string);pha cu i Items.Th t c xa m t ph n tch s indexItems.Delete(Index: Integer);trong Items.Th t c xa m t ph n t ki u string t ich s index trong Items. Th t c nyItems.Insert(Index: Integer; const S: string);tng ng cu l nh gn vo thu c tnhItems nh sau: Items[index] := S;Th t c xa h t cc ph n t trongClear;ListBox. B ng 52: Cc phng th c c a TComboBox- M t s khi ni m c s d ng trong v d : + Cu l nh r nhnh:case of Gi_tr _i: cng_vi c_i;end; + Hm Trunc(x): tr v ph n s nguyn c a m t s l th p phn x V d 22: My tnh n gi n s d ng thnh ph n ComboBox. - T o m t d n m i File/New/Application - Thi t l p cc thu c tnh c a form nh sau: Thu c tnh Gi tr Name frmMain CaptionVi du ve doi tuong ComboBox BorderIcons[] Position poDesktopCenter B ng 53: Thi t l p cc thu c tnh TForm.B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 115 121. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi- t cc i t ng ln form v thi t l p cc thu c tnh nh sau: i t ngThu c tnh Gi tr NamecboToantu + - * Items ComboBox/ Div Mod Style csDropDownList ItemIndex -1 Nameedt_ToanHang1 Edit th 1 Text0 TabOrder0 Nameedt_ToanHang2 Edit th 2 Text0 TabOrder1 NameEdt_Kq Edit th 3 Text0 ReadOnlyTrue NamebtnKetThuc Button Caption &Ket thuc v 4 Label v i Caption nh m t trong form. B ng 54: Thi t l p cc thu c tnh c a cc i t ng - L n l t nh p vo cc cu l nh cho cc th t c s ki n nh sau:unit untMaytinh;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TfrmMain = class(TForm)cboToantu: TComboBox;edtToanHang1: TEdit;edtToanHang2: TEdit; Trang 116 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 122. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphiedt_Kq: TEdit;btnKetThuc: TButton;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;procedure cboToantuChange(Sender: TObject);procedure btnKetThucClick(Sender: TObject); private{ Private declarations } public{ Public declarations } end;var frmMain: TfrmMain;implementation{$R *.dfm}procedure TfrmMain.cboToantuChange(Sender: TObject);var a, b:extended;beginif (TryStrToFloat(edtToanHang1.Text,a)) and(TryStrToFloat(edtToanHang2.Text,b)) thencase cboToantu.ItemIndex of0: edt_Kq.Text := FloatToStr(a + b);1: edt_Kq.Text := FloatToStr(a - b);2: edt_Kq.Text := FloatToStr(a * b);3: if b0 then edt_Kq.Text := FloatToStr(a / b)else edt_Kq.Text := Loi!... Mau so bang khong.;4: if b0 then edt_Kq.Text := IntToStr(Trunc(a) Div Trunc(b))else edt_Kq.Text := Loi!... Mau so bang khong.;5: if b0 then edt_Kq.Text := IntToStr(Trunc(a) Mod Trunc(b))else edt_Kq.Text := Loi!... Mau so bang khong.;B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 117 123. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphiend // end case else // else if edt_Kq.Text :=Du lieu nhap vao sai!...;end;procedure TfrmMain.btnKetThucClick(Sender: TObject);begin Close;end;end.- Lu d n vo th m c S:ViDuComboBox- Bin d ch v ch y chng trnh, ta c k t qu nh sau: Hnh 64: K t qu chng trnh ComboBoxIV.14. L i chu i (TStringGrid) L thnh ph n c thi t k theo d ng b ng g m cc ch a d li u ki u chu i. Cc ny c xc nh b i nh ch s c t v ch s hng. Trong TStringGrid, ch s c t utin (c t bn tri nh t) v hng u tin (hng trn nh t) c nh s m c nh l 1. Tuynhin, b n c th thay i ch s ny v 0 ph h p ch s b t u c a m ng (Array)trong Delphi l 0 (zero) d a vo cc thu c tnh c a TStringGrid c m t chi ti t d iy. * Bi u t ng: * M t s thu c tnh th ng dng: Tn thu c tnh ngha NameXc nh tn cho i t ng StringGrid. Xc nh ch s c t u tin (bn tri nh t) trong l i, cc gi tr ny c FixedCols th b t u t 0, 1, 2,... M c nh c gi tr l 1. FixedRows Xc nh ch s hng u tin (hng trn nh t) trong l i, cc gi tr Trang 118 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 124. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn thu c tnh nghany c th b t u t 0, 1, 2,... M c nh c gi tr l 1.Xc nh s c t trong l i, s c t c nh ch s b t u t 0 nColCountColCount-1Xc nh s hng trong l i, s hng c nh ch s b t u t 0 nRowCountRowCount-1Col Ch s c t c a hi n hnhRow Ch s hng c a hi n hnhCells[i,j]Gi tr trong ch s c t i v hng jL cc ty ch n cho l i, d i y trnh by l m t s ty ch n:- goEditing c gi tr True ho c False, cho hay khng php so n th otrong cc l i.Options - goTabs c gi tr True ho c False, cho hay khng cho s d ng phmTab di chuy n qua l i gi a cc .- goRowSelect c gi tr True ho c False, cho hay khng php ch n t tc cc trn ton b m t hng.Xc nh s thanh cu n c n hi n th , cc gi tr c a n nh sau:- ssBoth: Hi n th c 2 thanh cu n ng v ngangScrollBars- ssHorizontal: Hi n th thanh cu n ngang- ssVertical: Hi n th thanh cu n ng- ssNone: Khng hi n th thanh cu n no cC gi tr True ho c False: C xu t hi n hay khng khi ch y chngVisibletrnh.C gi tr True ho c False: Cho php hay khng ng i s d ng truyEnabledxu t n n.Dng g i t ng n g n v StringGrid khi b n tr mouse n n. Ch cHintnng ny ch c tc ng khi thu c tnh ShowHint l True. c nh th t b t u t 0, 1, 2,... xc nh th t m StringGridTabOrdernh n Focus khi b n nh n phm Tab. Ch c nng ny ch c tc ng khithu c tnh TabStop c gi tr True.B ng 55: Cc thu c tnh TStringGrid * M t s s ki n th ng dng: Tn s ki n p ng c a s ki nOnClick Khi b n Click vo i t ngKhi b n RClick vo i t ng, ho c th c hi n vi c b t ln menuOnContextPopup i t ng.OnDblClickKhi b n DClick vo i t ngOnExitKhi b n a con nhy v a r i kh i i t ngOnKeyDown Khi b n g phm b t kOnKeyPressG n nh s ki n OnKeyDown, nhng khng p ng cho ccB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 119 125. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphi Tn s ki np ng c a s ki nphm i u khi n nh: F1, Ctrl, Shift,... OnSelectCell Khi b n Click vo c ch nB ng 56: Cc s ki n TStringGrid- M t s khi ni m c s d ng trong v d : + Cu l nh bao nhm: with tn_ i_t ng do begin cc thu c tnh v phng th c c a i t ng end; + Cu l nh l p: for i := tr _ u to tr _cu i do cng_vi c;N u tr _cu i >= tr _ u th c hi n cng_vi c v i (tr _cu i - tr _ u +1) l n. V d 23: Hi n th b ng 26 k t ch ci. Click vo tng ng trong l i hi n th k t trong b n v a ch n. - T o m t d n m i File/New/Application - Thi t l p cc thu c tnh c a form nh sau:Thu c tnhGi tr Name frmAlphabet CaptionVi du ve doi tuong StringGrid Position poDesktopCenterB ng 57: Thi t l p cc thu c tnh cho Form. - t cc i t ng ln form v thi t l p cc thu c tnh nh sau: i t ngThu c tnhGi tr StringGrid NamestgAlphabetNamelblAlphabet LabelCaption BANG 26 KY TU CHU CAIFont.Size 12B ng 58: Thi t l p cc thu c tnh cho cc i t ng o n m l nh chng trnh:unit untAlphabet;interface Trang 120 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 126. Chng 5: L p trnh x l s ki n Cc thnh ph n c a Delphiuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Grids, StdCtrls;type TfrmAlphabet = class(TForm)stgAlphabet: TStringGrid;Label1: TLabel;procedure FormActivate(Sender: TObject);procedure stgAlphabetSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); private{ Private declarations } public{ Public declarations } end;var frmAlphabet: TfrmAlphabet;implementation{$R *.dfm}procedure TfrmAlphabet.FormActivate(Sender: TObject);var i, j, k : Integer;begin k := 0; with stgAlphabet do beginFixedCols:=0;// C t tri nh tFixedRows:=0;// Hng trn nh tColCount:=5;RowCount:=6;Options := Options+ [goEditing]; //cho php c p nh tfor i := FixedCols to ColCount - 1 dofor j:= FixedRows to RowCount - 1 do begink := k + 1;if k =4 thenbegin x := 2*sin(PI/2)/sqrt(9); ShowMessage(x =+ FormatFloat(0.000, x); end//khng c d u ; else ShowMessage( Dieu kien sai); // K t qu hi n th gi tr bi n x = 0.667 // Cc l nh IF l ng vo nhau if true Then if false Then ShowMessage( I) else ShowMessage( LOVE) else ShowMessage( DELPHI);end;// K t qu hi n th t : LOVE V d 3: Vi t chng gi i phng trnh b c nh t ax + b = 0 H ng d n: - T o d n m i: File/New/Application Lu : Do cc b n h c xong chng 5, nn gio trnh s trnh by cch vi tchng trnh m t cch ng n g n hn. B n ph i t xc nh v thi t l p cc thu c tnh chocc i t ng trong chng trnh sao cho thch h p nh t theo c a mnh. Gio trnh cha ra cc tn (name) c a i t ng vi t code cho d n m thi. - t thu c tnh name cho cc i t ng c a chng trnh nh sau:Hnh 4: Tn (name) c a cc i t ng Trang 140 B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 146. Chng 6: Cc l nh c c u trc - Thi t k giao di n trn form:Hnh 5: Giao di n phng trnh b c nh t - o n code c a chng trnh nh sau: Lu : vi t chng trnh cho chnh xc, b n c n ph i xc nh ng th t cs ki n m b n xc nh l c a i t ng no ng v i s ki n g trn form. B n c thxem l i trong ph n Cch hnh thnh th t c s ki n chng 5.unit untPtb1;//tn untPtb1 l do lu unit file v i tn untPtb1.pasinterfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls, ExtCtrls;typeTfrmPTB1 = 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);B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 141 147. Chng 6: Cc l nh c c u trc private{ Private declarations } public{ Public declarations } end;var frmPTB1: TfrmPTB1;implementation{$R *.dfm}procedure TfrmPTB1.btnXuLyClick(Sender: TObject);var a, b, x: extended;begin memKQua.Lines.Clear; if (TryStrToFloat(edt_a.Text, a)=true) and(TryStrToFloat(edt_b.Text, b)=true) then beginif a=0 thenif b=0 thenmemKQua.Lines.Text:=Phuong trinh vo so nghiemelsememKQua.Lines.Text:=Phuong trinh vo nghiemelse //a 0beginmemKQua.Lines.Add(Phuong trinh co nghiem:);x:=-b/a;memKQua.Lines.Add( x= + FloatToStr(x));end;endelsebeginmemKQua.Lines.Text:=Nhap sai! Nhap lai he so a va b.;edt_a.Clear;edt_b.Clear;edt_a.SetFocus;end;end;Trang 142 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 148. Chng 6: Cc l nh c c u trcprocedure TfrmPTB1.btnKetThucClick(Sender: TObject);beginClose;end;end.- Lu d n vo th m c S:ViduPTB1- Bin d ch v ch y chng trnh, ta c k t qu nh sau: Hnh 6: Ch y chng trnh V d 4: Gi i phng trnh ax2 + bx +c = 0 H ng d n: - T o d n m i: File/New/Application - t thu c tnh name cho cc i t ng c a chng trnh nh c a sObjectTreeView, v thi t k form nh hnh sau: Hnh 7: Tn cc i t ng v giao di n chng trnhB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 143 149. Chng 6: Cc l nh c c u trc- o n code c a chng trnh nh sau:unit untPTB2;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls;typeTfrmPTB2 = class(TForm)edt_a: TEdit;edt_b: TEdit;edt_c: TEdit;Label1: TLabel;Label2: TLabel;Label3: TLabel;btnGiai: TButton;memKQ: TMemo;Label4: TLabel;btnNhapLai: TButton;procedure btnGiaiClick(Sender: TObject);procedure btnNhapLaiClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varfrmPTB2: TfrmPTB2;implementation{$R *.dfm}procedure TfrmPTB2.btnGiaiClick(Sender: TObject);var a, b, c, delta, x1, x2: single;mOK1, mOK2, mOK3: boolean;beginmOK1 := False; mOK2 := False; mOK3 := False;memKQ.Lines.Clear;mOK1 := TryStrToFloat(edt_a.Text,a);mOK2 := TryStrToFloat(edt_b.Text,b);mOK3 := TryStrToFloat(edt_c.Text,c);if (mOK1 = True) and (mOK2 = True) and (mOK3 = True) then //nhap du lieu dung Trang 144 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 150. Chng 6: Cc l nh c c u trcbeginif a = 0 then // giai ptb1if b = 0 thenif c = 0 then memKQ.Lines.Add(Phuong trinh Vo so nghiem)else memKQ.Lines.Add(Phuong trinh Vo nghiem)else memKQ.Lines.Add(Phuong trinh co nghiem la+FloatToStr(c/b))else // a 0, bat dau giai ptb2begindelta := sqr(b) - 4*a*c;if delta < 0 thenmemKQ.Lines.Add(Phuong trinh Vo nghiem.)elseif delta = 0 then memKQ.Lines.Add(Phuong trinh co nghiem kep x1 = x2 = +FloatToStr(-b/(2*a)))elsebeginx1 := (-b + sqrt(delta))/(2*a);x2 := (-b - sqrt(delta))/(2*a);memKQ.Lines.Add(Phuong trinh co 2 nghiem phan biet:);memKQ.Lines.Add(x1= +FormatFloat(#,##0.00,x1));memKQ.Lines.Add(x2= +FormatFloat(#,##0.00,x2));end;end; // end else a0end // end if mOK1...else// else if: Nh p d li u sai.ShowMessage(Ban nhap he so a, b, c KHONG hop le!...);end;procedure TfrmPTB2.btnNhapLaiClick(Sender: TObject);beginedt_a.Clear;edt_b.Clear;edt_c.Clear;memKQ.Lines.Clear;edt_a.SetFocus;end;end.- Lu d n vo th m c S:ViduPTB2- Bin d ch v ch y chng trnh, ta c k t qu nh sau:B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 145 151. Chng 6: Cc l nh c c u trcHnh 8: Ch y chng trnhII.2. L nh Case ... of* C php, ngha:Case of // Xt gi tr c a bi u th c:GT1 : cng_vi c_1 ; // N u bi u_th c = GT1 (gi tr 1) th th c hi n cng_vi c_1,GT2 : cng_vi c_2 ; // n u bi u_th c = GT2 th th c hi n cng_vi c_2,GTn : cng_vi c_n ; // n u bi u_th c = GTn th th c hi n cng_vi c_n[else cng_vi c_0 ;] //Ng c l i s th c hi n cng_vi c_0End;//end case* Lu :case BI U TH C ofelseGT1GT2GT...GTn GT0 cng_vi c_1 cng_vi c_2....cng_vi c_ncng_vi c_0 end;Hnh 9: Lu l nh Case ... of ... end; Trang 146B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCT 152. Chng 6: Cc l nh c c u trcCh : - L nh Case ... of c th khng c else - Bi u th c trong Case... of ph i c ki u d li u r i r c/ m c nh: Integer,Char,...- N u mu n ng v i nhi u gi tr khc nhau c a bi u th c m my v n thi hnh m tCng_vi c th cc gi tr ny c th vi t trn cng m t hng cch nhau b i d u ph y (,): k1, k2, ..., kp : cng_vi c;V d 5: o n chng trnh sau m t cch s d ng l nh Case ... ofvarcolor: integer ;begin color := StrToInt(InputBox(Hop nhap lieu, Nhap so tu 1 den 5,1)); case color of1, 2: ShowMessage(Mau do);3, 4: ShowMessage(Mau trang);5: ShowMessage(Mau xanh); end;end;V d 6: Vi t chng trnh nh p vo hai s th c a, b v m t k t ch l php tnhc n th c hi n (+, -, *, /). Sau th c hi n php tnh v hi n th k t qu lnmn hnh. H ng d n: - T o d n m i: File/New/Application - t thu c tnh name cho cc i t ng c a chng trnh nh c a s ObjectTreeView, v thi t k form nh hnh sau:Hnh 10:Tn cc i t ng v giao di n chng trnhB mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT Trang 147 153. Chng 6: Cc l nh c c u trc- o n code c a chng trnh nh sau:unit untCaseOf;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls;typeTfrmMain = class(TForm)Label1: TLabel;edt_a: TEdit;Label2: TLabel;edt_b: TEdit;Label3: TLabel;edt_PT: TEdit;btnXemKQ: TButton;btnKetThuc: TButton;Label4: TLabel;memKQua: TMemo;procedure btnKetThucClick(Sender: TObject);procedure btnXemKQClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varfrmMain: TfrmMain;implementation{$R *.dfm}procedure TfrmMain.btnXemKQClick(Sender: TObject);var a, b:extended; ch:char;beginmemKQua.Lines.Clear;a:=StrToFloat(edt_a.Text);b:=StrToFloat(edt_b.Text);ch:=edt_PT.Text[1]; // l y k t u tincase ch of+: memKQua.Lines.Add( a+b= +FloatToSTR(a+b));-: memKQua.Lines.Add( a-b= +FloatToSTR(a-b));*: memKQua.Lines.Add( a*b= +FloatToSTR(a*b));/: if b=0 then memKQua.Lines.Add(Loi! Phep chia 0.) else Trang 148 B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 154. Chng 6: Cc l nh c c u trcmemKQua.Lines.Add( a/b= +FloatToStr(a/b)); else memKQua.Lines.Add(Phep tinh khong thuc hien duoc);end;end;procedure TfrmMain.btnKetThucClick(Sender: TObject);beginclose;end;end. - Lu d n vo th m c S:ViduCaseOf - Bin d ch v ch y chng trnh, ta c k t qu nh sau:Hnh 11:Ch y chng trnhIII. C u trc l nh l pL nh c c u trc l p th ng c s d ng khi chng trnh ph i th c hi n cng vi cl p i l p l i nhi u l n.III.1. L nh l p c s l n xc nh tr cL nh l p for cho php chng trnh th c hi n cng vi c nhi u l n v v i s l n l p bi t tr c. L nh for c 2 d ng:For ... to ... do: m ln, v For ... downto ... do : m xu ng. * C php m ln:for to do cng_vi c;B mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 149 155. Chng 6: Cc l nh c c u trc * Lu :* ngha lu : Sai tr u =0) and TryStrToFloat(lbe_a.Text, a) thenbeginif n = 0 then X:=1 //a^0 =1 va 0! =1elsebeginmGiaiThua := 1; mLuyThua :=1;for i:=1 to n dobegin mGiaiThua := mGiaiThua * i; mLuyThua := mLuyThua * a;end;X := mLuyThua/mGiaiThua;end;lbeKQ.Text := X = +FormatFloat(#,#00.000,X);endelseShowMessage(Ban phai nhap n la so nguyen duong.);end;Trang 154B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 160. Chng 6: Cc l nh c c u trcprocedure TfrmTinhX.btnNhapLaiClick(Sender: TObject);beginlbe_n.Clear; lbe_a.Clear; lbeKQ.Clear;lbe_n.SetFocus;end;end. - Lu d n vo th m c: S:ViduTinhX - Bin d ch v ch y chng trnh, ta c k t qu nh sau:Hnh 17: K t qu chng trnhIII.2. L nh l p c s l n khng xc nh tr cIII.2.1. L nh l p while .. doL nh l p while..do l vng l p ki m tra i u ki n tr c v th c hi n cng vi c sau.N cho php chng trnh th c hi n cng vi c nhi u l n v v i s l n l p khng c xc nh tr c. * C php t ng qut: while do cng_vi c; * Lu : sai i u_ki n {l p}ngcng_vi c Hnh 18: Lu l nh l p while t thc K ... doB mn Tin H cng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 155 161. Chng 6: Cc l nh c c u trc* ngha: u tin l ki m tra i u ki n, n u i u ki n ng th th c hi n cng vi c, r i quaytr v i u ki n ki m tra. Vng l p s c ti p t c cho n khi i u ki n khng cn ngn a th s k t thc l nh.Ch : i u ki n trong c u trc l p while do l m t bi u th c tr v gi tr k t qu c ki uBoolean (k t qu ch c 2 gi tr l ng (True) ho c Sai (False)).V d 12: Chng trnh sau hi n th k t qu bnh phng gi tr c a bi n a (ban ua = 1) v tng d n bi n a cho n khi k t qu bnh phng gi tr c a bi n al n hn 100.var num, bp: integer;beginnum := 1;bp := num * num;//bnh phngwhile bp 1 l m t s th c c nh p t bn phm. H ng d n: - T o d n m i: File/New/Application - t thu c tnh name cho cc i t ng c a chng trnh nh c a sObjectTreeView, v thi t k form nh hnh sau:Trang 156B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCT 162. Chng 6: Cc l nh c c u trcHnh 19: Tn cc i t ng v giao di n chng trnh- o n code c a chng trnh nh sau:unit untVongLapWhile;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls;typeTfrmMain = class(TForm)Label1: TLabel;edt_a: TEdit;btnKetThuc: TButton;btnXemKQua: TButton;Label2: TLabel;memKQua: TMemo;procedure btnKetThucClick(Sender: TObject);procedure btnXemKQuaClick(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varfrmMain: TfrmMain;implementation{$R *.dfm}procedure TfrmMain.btnKetThucClick(Sender: TObject);var k:integer;s, m:extended;beginmemKQua.Lines.Clear;B mn Tin H c ng D ng Khoa Khoa H c T Nhin Tr ng HCTTrang 157 163. Chng 6: Cc l nh c c u trcm:=StrToFloat(edt_a.Text);k:=0;s:=1;while s < m dobegin s:=s*4; k:=k+1;end;memKQua.Lines.Add(Gia tri k tim duoc la: + IntToStr(k-1));memKQua.Lines.Add(Tong S= + FloatToStr(s/4));end;procedure TfrmMain.btnXemKQuaClick(Sender: TObject);beginClose;end;end.- Lu d n vo th m c S:ViduWhile- Bin d ch v ch y chng trnh, ta c k t qu nh sau: Hnh 20:T