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

pdf258 trang | Chuyên mục: Delphi | Chia sẻ: dkS00TYs | Lượt xem: 3751 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình lý thuyết Lập trình căn bản B - Delphi 7, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfGiáo trình lý thuyết Lập trình căn bản B - Delphi 7.pdf
Tài liệu liên quan