Giáo trình lý thuyết Lập trình căn bản B - Delphi 7
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
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
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
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
cedure btnSLXHClick(Sender: TObject); procedure btnSoTuClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmVidu: TfrmVidu; s: string; //bien chung. implementation Chương 10: Kiểu Chuỗi ký tự Trang Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT 244 {$R *.dfm} procedure TfrmVidu.btnSLXHClick(Sender: TObject); var slxh :integer; tumoi, s2, tu :string; begin s2 := s; //Lay chuoi da cat bo khang trang thua. s2 := s2 + #32; //them phan tu cam canh. tumoi := trim(edtTuMoi.Text); slxh := 0; while s2 '' do //s rỗng begin tu := copy(s2,1, pos(#32,s2)-1); if tumoi = tu then inc(slxh); delete(s2,1, pos(#32,s2)); end; edtSlxh.Text := IntToStr(slxh); end; procedure TfrmVidu.btnSoTuClick(Sender: TObject); var i, sotu: integer; begin if edtChuoi.Text = '' then ShowMessage('Ban da nhap chuoi rong. Hay nhap lai!') else begin s := trim(edtChuoi.Text;); while pos(#32#32,s)>0 do delete(s,pos(#32#32,s),1); sotu := 0; for i:=1 to length(s) do if s[i]=#32 then inc(sotu); edtSoTu.Text := IntToStr(sotu + 1); end; btnSLXH.Enabled := True; end; procedure TfrmVidu.FormCreate(Sender: TObject); begin btnSLXH.Enabled := False; end; end. - Lưu dự án vào thư mục: S:\ViduDemTu - Biên dịch và chạy chương trình, ta có kết quả như sau: Chương 10: Kiểu chuỗi ký tự Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT Trang 245 - Trường hợp từ mới có xuất hiện 2 lần trong chuỗi: Hình 22: Từ “mẹ” có xuất hiện trong chuỗi nhập - Trường hợp từ mới không xuất hiện lần nào trong chuỗi: Hình 23: Từ “nhà” không xuất hiện trong chuỗi nhập Phụ lục và Chương trình Simple view picture ---- Trang Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT 246 PHỤ LỤC Phần này giới thiệu một số thành phần thông dụng và chương trình hiển thị ảnh ñơn giản – Simple view picture: 1. Thẻ System Thành phần TTimer: ðồng hồ bấm giờ. Biểu tượng: Thuộc tính Ý nghĩa Name ðể ñặt tên ñối tượng Enable Nếu có giá trị true (mặc nhiên) thì tự ñộng bật sự kiện bấm giờ - OnTimer. Còn False thì không. Interval Khoảng thời gian (milliseconds) ñể kích hoạt sự kiện OnTimer Sự kiện OnTimer: Sự kiện ñược kích hoạt khi hết khoảng thời gian xác ñịnh trong Interval 2. Thẻ Additional Thành phần TImage: Hiển thị ảnh. Biểu tượng: Thuộc tính Ý nghĩa Name ðể ñặt tên ñối tượng Picture Xác ñịnh hình ñược nạp (load) vào ñể hiển thị Và một số sự kiện quen thuộc như: OnClick, OnContextPopup, OnChange... 3. Thẻ Win 3.1 a. TFileListBox: Hộp danh sách liệt kê các tập tin. Biểu tượng: Thuộc tính Ý nghĩa Name ðể ñặt tên ñối tượng Mask Mặt nạ lọc tập tin ñược hiển thị trong nó như: *.jpg;*.gif;*.bmp Cursor Các kiểu con trỏ mouse khi bạn trỏ ñến ñối tượng. Mặc nhiên là crDefault. Phụ lục và Chương trình Simple view picture ---- Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT Trang 247 Và một số sự kiện quen thuộc như: OnClick, OnContextPopup, OnChange... b. TFilterComboBox: Hộp liệt kê thả lọc kiểu tập tin. Biểu tượng: Thuộc tính Ý nghĩa FileList ðể lọc các kiểu tập tin ñược hiển thị trong Hộp danh sách liệt kê các tập tin. Bạn Click chọn tên ñối tượng FileListBox (flbPics) ñể gắn kết vào. Cursor Các kiểu con trỏ mouse khi bạn trỏ ñến ñối tượng. Mặc nhiên là crDefault. Filter Các kiểu tập tin ñể lọc. Bạn sử dụng các ký tự ñại diện ñể nhóm lại một số loại tập tin như: *.doc, *.dpr, *.jpg,… Bạn Click vào biểu tượng ñể soạn thảo các kiểu lọc thông qua cửa sổ "Filter Editor". Và một số sự kiện quen thuộc như: OnClick, OnContextPopup, OnChange... c. TDirectoryListBox: Hộp danh sách liệt kê các thư mục. Biểu tượng: Thuộc tính Ý nghĩa FileList ðể hiển thị các tập tin trong Hộp danh sách liệt kê các tập tin. Bạn Click chọn tên ñối tượng FileListBox (flbPics) ñể gắn kết vào. TextCase Hiển thị tên ổ ñĩa là chữ in hoa (tcUpperCase) hay thường (tcLowerCase) Cursor Các kiểu con trỏ mouse khi bạn trỏ ñến ñối tượng. Mặc nhiên là crDefault. DirLabel ðể gắn tên ñối tượng nhãn dùng cho việc hiển thi ñường dẫn (path) khi bạn chọn mở (DClick) thư mục làm việc . Và một số sự kiện quen thuộc như: OnClick, OnContextPopup, OnChange... d. TDriveComboBox: Hộp liệt kê thả các ổ ñĩa. Biểu tượng: Thuộc tính Ý nghĩa DirList ðể hiển thị các thư mục vào trong hộp danh sách liệt kê các thư mục. Bạn Click chọn tên ñối tượng DirectoryListBox (dlbPics) ñể gắn kết vào. TextCase Hiển thị tên ổ ñĩa là chữ in hoa (tcUpperCase) hay thường (tcLowerCase) Cursor Các kiểu con trỏ mouse khi bạn trỏ ñến ñối tượng. Mặc nhiên là crDefault. Và một số sự kiện quen thuộc như: OnClick, OnContextPopup, OnChange... Phần này chỉ nhằm giới thiệu các thành phần cơ bản trong Windows. Trong Delphi còn có các thành phần khác ưu việt hơn ñó là các thành phần trên thẻ Dialogs, thẻ Simples,... Bạn có thể dễ dàng viết lại chương trình này thông qua các thành phần trong 2 thẻ này. Phụ lục và Chương trình Simple view picture ---- Trang Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT 248 Trong tương lai, Bộ môn Tin học Ứng Dụng - Khoa Khoa Học Tự Nhiên có thể sẽ viết thêm phần Delphi nâng cao ñể giúp các bạn khai thác sức mạnh của Delphi như lập trình về Cơ sở dữ liệu, lập trình Mạng, lập trình Web, Trò chơi,... Chương trình hiển thị hình ảnh ñơn giản - Simple view picture, ñể hiển thị các tập tin hình ảnh dạng .jpg, .wmf, .bmp. Ngoài ra chương trình cũng tạo dòng chữ chạy (Marquee) trên thanh tiêu ñề của form theo hướng từ phải sang trái theo hướng nhìn (trái sang phải theo hướng màn hình), và có hiển thị ñồng hồ chạy. Chương trình hiển thị hình ảnh ñơn giản - Simple view picture: frmViewPics : TForm grbPics : TGroupBox dcbPics : TDriveComboBox dlbPics : TDirectoryListBox flbPics : TFileListBox fcbPics : TFilterComboBox lblClock : TLabel pnlPics : TPanel imgView : TImage tmrClock : TTimer Tên của các ñối tượng Phụ lục và Chương trình Simple view picture ---- Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT Trang 249 ðoạn lệnh của chương trình như sau: unit untViewPics; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg, ExtDlgs, FileCtrl; type TfrmViewPics = class(TForm) tmrClock: TTimer; pnlPics: TPanel; imgView: TImage; grbPics: TGroupBox; dcbPics: TDriveComboBox; fcbPics: TFilterComboBox; dlbPics: TDirectoryListBox; flbPics: TFileListBox; lblClock: TLabel; procedure tmrClockTimer(Sender: TObject); procedure flbPicsClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public Phụ lục và Chương trình Simple view picture ---- Trang Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT 250 { Public declarations } end; var frmViewPics: TfrmViewPics; implementation {$R *.dfm} procedure TfrmViewPics.tmrClockTimer(Sender: TObject); begin lblClock.Caption := 'ðồng hồ: ' + TimeToStr(Time); Caption:= Copy(Caption,2,length(Caption)-1)+Copy(Caption,1,1); end; procedure TfrmViewPics.flbPicsClick(Sender: TObject); begin try imgView.Picture.LoadFromFile(flbPics.FileName); except on E: Exception do ShowMessage('Sorry! Tap tin anh nay bi SAI kieu hoac KHONG duoc ho tro!...') end; end; procedure TfrmViewPics.FormCreate(Sender: TObject); begin dcbPics.DirList := dlbPics; dlbPics.FileList := flbPics; flbPics.Mask := '*.jpg;*.gif;*.bmp'; fcbPics.FileList := flbPics; fcbPics.Filter := 'All (*.jpg, *.wmf, *.bmp)| *.jpg;*wmf;*.bmp|All files (*.*)|*.*'; lblClock.Font.Color := clTeal; lblClock.Font.Name := 'VNarial'; {Delphi7 khong ho tro font Unicode. Con Delphi8 thi ok...} lblClock.Font.Size := 10; lblClock.Font.Style := [fsBold]; imgView.Center := True; imgView.Proportional := True; imgView.Stretch := False; frmViewPics.Caption:='Chuong trinh hien thi hinh anh don gian - Simple view picture... '; frmViewPics.WindowState := wsMaximized; pnlPics.Color := clGradientActiveCaption; tmrClock.Enabled := True; tmrClock.Interval := 150; end; end. Phụ lục và Chương trình Simple view picture ---- Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên – Trường ðHCT Trang 251 - Lưu vào trong thư mục S:\Simple view picture - Biên dịch và chạy ta ñược hình ảnh như sau: Chương trình Simple view picture. Tài liệu tham khảo & Bản quyền tác giả ---- Trang Bộ môn Tin Học Ứng Dụng - Khoa Khoa Học Tự Nhiên – Trường ðHCT 252 TÀI LIỆU THAM KHẢO 1. Borland IDD - JM, MM, HM, CC, JG (2005), Object Pascal Language Guide. 2. 3. John Barrow, Linda Miller, Katherine Malan, Helene Gelderblom (2005), Introducing Delphi Programming: Theory through Practice (Paperback), Oxford University Press, USA. 4. John Ayres (2002), The Tomes of Delphi – Win32 Core API Windows 2000 Edition, Wordware Publishing, Inc. 5. Julian Bucknall (2001), The Tomes of Delphi – Algorithms and Data Structures, Wordware Publishing, Inc. 6. Lê Phương Lan, Hoàng ðức Hải (2000), Giáo trình lý thuyết và bài tập Borland Delphi, NXB Giáo Dục, Hà Nội. 7. Marco Cantu (2003), Mastering Delphi 7, SyBex. BẢN QUYỀN TÁC GIẢ Tài liệu này ñược viết nhằm phục vụ cho việc học tập của sinh viên ở giai ñoạn ñầu làm quen và học cách lập trình sự kiện như thế nào thông qua ngôn ngữ lập trình Delphi, môi trường xây dựng ứng dụng tức thời RAD. Tác giả sẽ upload tài liệu này lên internet trong thời gian gần thông qua file: “Giao trinh lap trinh can ban B – Delphi 7.pdf”. Mọi thông tin cần trao ñổi, xin liên hệ tác giả thông qua ñịa chỉ email: vdlinh@ctu.edu.vn. Cần thơ, 19 November 2010, © Vũ Duy Linh.
File đính kèm:
- Giáo trình lý thuyết Lập trình căn bản B - Delphi 7.pdf