Hướng dẫn lập trình Delphi - Quyển 1: Nhập môn
TỰA ĐỀ Trang
Giới thiệu thông tin 2
Tóm lượt môi trường lập trình Delphi 3
Bài 1 Chương trình Delphi đơn giản nhất 4
Bài 2 Sửdụng nút nhấn và thuộc tính 5
Bài 3 Xuất văn bản và sửdụng nhãn 7
Bài 4 Ra và vào của văn bản 9
Bài 5 Sửdụng lệnh IF 12
Bài 6 Adding Machine - Alter it to do [ - * div ] as well. 13
Bài 7 Thêm Items vào một List Box 14
Bài 8 Tạo menu - Một Text Editor - Files 15
Bài 9 Graphics, sựlặp lại sửdụng FOR và các biến 20
mage1.Canvas.Pen.Color := clred; { Set Pen Colour }
Image1.Canvas.Brush.Color := clRed; { Set Brush Colour }
Image1.Canvas.Ellipse(30, 30, 70, 70);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Image1.Canvas.Pen.Color := clYellow; { Set Pen Colour }
Image1.Canvas.Brush.Color := clYellow; { Set Brush Colour }
{ Colour image Red }
Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
Image1.Canvas.Pen.Color := clred; { Set Pen Colour }
Image1.Canvas.TextOut(10, 40, 'Hello World');
end;
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
27
Ngôn ngữ Pascal
Khu vực này giới thiệu những kiến thức cơ bản của Pascal để lập trình Delphi (vì Delphi
cũng do Borland sản xuất nên các lệnh cũng tương tự như Pascal)
Các kiễu dữ liệu.
Những chương trình được sử dụng để xử lý dữ liệu. Sau đây là những kiểu dữ liệu
để xây dựng thường dùng trong Pascal. Có một số thường rất ít sử dụng. Khi cất
dữ những dữ liệu quan trọng để lựa chọn đúng những dữ liệu đó.
Integer (số nguyên) Là những số như12 or -22
-32768 tới 32767 là phạm vi sử dụng.
Real (số thực) Những số thập phân như 22.7 or -0.0032
Char (kí tự) Những đặc tính của các kí tự.
String[20] (chuỗi) Cất giữ những số hay văn bản.
Trong ví dụ này lên tới 20 kí tự có thể cất giữ.
Boolean (logic) Giá trị True or False (Đúng or Sai).
Các Biến.
Variables are like named pigeon holes where data can be stored. Biến có những
kiểu đặc biệt như trên. Bạn phải cất giữ đúng kiểu trong mỗi biết.
Sử dụng tên bất kì để đại diện. Điều này giúp cho chương trình dễ dàng hơn.
Good examples VAT_Rate, dayOfWeek, TAX_Band
Bad Examples X, L, Lemming.
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
28
Các lệnh gán giá trị
Đây là làm sao những giá trị được đặt vào trong những biến(pigeon holes). Trong
ví dụ dưới, ở đây có các biến là X, sname và ok. Kí tự “:=” là đọc, trong tiếng anh,
là becomes (trở thành).
X := 3; X trở thành (là ) 3.
Cất giữ 3 vào trong biến X.
sname := ‘Bloggs’; sname là Bloggs.
Cất giữ Bloggs vào trong biến sname.
ok := True ok là True.
Cất True vào ok.
Những đối tượng.
Delphi là xây dựng đối tượng chương trình. Đối tượng này có thể sở hữu or chứa
đựng đối tượng khác. Đối tượng có thuộc tính của nó. Trong ví dụ dưới đây
Form1.Label1.Caption := ‘Hello World!’;
Form1 là 1 đối tượng. Form1 chứa đối tượng khác gọi là Label1. Label1 có 1
thuộc tính gọi là Caption. Đoạn text ‘Hello World!’ được cất vào thuộc tính
Caption của Label1. Caption là một biến để cất giữ chuỗi text. Bạn không thể cất
giữ các sô nguyên vào trong 1 Caption trừ khi nó được chuyển đổi vào một chuỗi
trước đó.
Những thủ tục.
Những thủ tục như những chương trình nhỏ bên trong một chương trình. Những
thủ tục được sử dụng để phá vở chương trình lớn và cho nó vào chương trình nó
trong các bit. những thủ tục cho phép bạn thiết kế những chương trình bên trong
được Modular. Điều này dễ dàng kiểm tra lỗi, kiểm tra chương trình, thiết kế, ghi
chương trình nào đó. Đây là các trình bày các thủ tục
Procedure Lemming;
Begin
Several lines go in here.
End;
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
29
Những sự kiện.
Sự kiện là những hành động như bấm nút, click chuột.... Delphi được thiết kế để
trả lời những sự kiện này. Để làm điều này bạn phải viết những bộ xử lý sự kiện.
Bô xử lý sự kiện.
Đây là những thủ tục để đáp lại những sự kiện tương ứng. Chẵn hạn, thủ tục bên
dưới trả lời tới Form1 khi Button1 được click. Trong ví dụ này, khi sự kiện xuất
hiện, dạng khác gọi là tlightForm được hiện ra.
procedure Form1.Button1Click(Sender: TObject);
begin
tlightForm.Show
end;
Bình luận.
Pascal programs are usually heavily annotated with text based comments that act as
reminders to the programmer of what is going on within the program. This is done
so the programmer can still understand the program after not looking at it for a year
or two. It is also done so a new programmer can take over from the original one
when he or she moves to a new job.
BAD COMMENTS simply repeat the code.
GOOD COMMENTS explain what is going on and why.
X := 3; { X Becomes 3 (This is a bad comment) }
dayOfWeek := 3; { Store the third day (Wed) into dayOfWeek }
{ This is a good comment }
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
30
Sự nối tiếp.
Đây là cách thực hiện biến đổi chương trình nối tiếp nhau theo một trình tự định
sẵn và không lặp lại. Một ví dụ để làm rõ.
Form1.Color := clGreen; { Nền của form màu xanh }
Total := 0; { Tổng cộng được cất ở đây }
Average := 0; { Trung bình cất ở đây. }
Bên dưới là sơ đồ cấu trúc Jackson thể hiện sự nối tiếp đó
Sự chọn lọc.
Đây là sự quyết định bên trong chương trình. Trong Pascal, những quyết định sử
dụng lệnh If. Chẵn hạn mã bên dưới đọc như sau trong tiếng Anh. Nếu màu của
Form1 là màu đỏ thì làm cho màu của Form1 đổi thành màu xanh lá cây.
If Form1.Color = clRed then
Begin
Form1.Color := clGreen;
End;
If có thể sử dụng phức tạp hơn – ví dụ
If Form1.Color = clRed then
Begin
Form1.Color := clGreen;
End
Else
Begin
Form1.Color := clRed;
End;
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
31
Nếu Form1 là màu đỏ thì đổi thành xanh lá cây. Nếu nó là màu khác tức không
phải màu đỏ thì cho nó thành đỏ. Lệnh If có thể kết hợp một cách phức tạp hơn.
If Form1.Color = clRed then
Begin
Form1.Color := clGreen;
End
Else If Form1.color = clGreen Then
Begin
Form1.color := clBlue;
End
Else
Begin
Form1.Color := clRed;
End;
Lệnh If này có thể lồng vào trong lệnh If khác. Trong ví dụ bên dưới, bạn ngăn
ngừa chia cắt bằng zero.
If Op = ‘Divide’ then
Begin
If N2 = 0 then
Begin
messageDlg(
‘You can not divide by zero.’,
mtWarning, [mbOK], 0);
End
Else
Begin
Answer := N1 div N2;
End
End;
Sơ đồ cấu trúc Jackson thể hiện sự chọn lọc này.
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
32
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
33
Vòng lặp.
Có ba cách làm cho chương trình lặp lại.
WHILE Repeat Zero of More times.
REPEAT Repeat One or More times.
FOR Lặp lại 1 số lượng thời gian biết trước.
Ví dụ:
FOR
For I := 1 To 100 Do { Repeat 100 times. }
Begin
Label1.Caption := IntToStr(I);
Label1.Update
End;
WHILE
While NOT allSorted Do { Keep going until it is finished }
Begin
SortTheStuff;
End;
DO
Do { Keep going until Finished }
allThisStuff; { Unusual because Begin }
andAllThis; { and End are not needed }
Until Finished;
FOR
For Ch := ‘A’ To Z Do
Begin
Label1.Caption := CharToStr(I);
Label1.Update
End;
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
34
FOR Backwards
For I := 100 DownTo 1 Do
Begin
Label1.Caption := IntToStr(I);
Label1.Update
End;
For Ch := 'Z' DownTo 'A' Do
Begin
Label1.Caption := CharToStr(Ch);
Label1.Update
End;
Sơ đồ cấu trúc Jackson cho vòng lặp
Chuỗi văn bản
Từ ‘Hello’ là chuỗi text. Cần sáu byte để hiển thị. Chiều dài của văn bản được cất
giữ từ vị trí số 0. những thuộc tính được cất giữ trong những byte kế tiếp từ 1- 5.
0 1 2 3 4 5 6 7 8 9
Length
5 H e l l o Wasted Space
Để cất giữ ‘Fred Bloggs’ cần 12 Bytes.
11 F r e d B l o g g s
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
35
Hàm:
Thường dùng để tính toán hoặc sản sinh ra dữ liệu chứa trong một kết quả riêng
biệt. Ở đây là ví dụ về các hàm.
Sum := Add(N1, N2); { Một cách để thêm 2 số # nhau}
Text := Join(FirstBit, SecondBit);
Bigger := Max(N1, N2); { Trở lại nếu có bất cứ giá trị nào lớn hơn N1 or N2}
Đây là ví dụ về hàm dùng để chuyển đổi một đặc tính đơn vào trong chuỗi văn bản.
Nó được viết và bình luận trong thái độ phê chuẩn.
{
Definition String := CharToStr(Char)
Input Hàm này dùng kí tự đơn cho đầu vào (Ch).
Process Đặc tính nhập vào xử lý bằng cách cất giữ
tại một vị trí trong chuỗi (S). Tại vị trí Zero
chuỗi (S) có chiều dài (1) được cất giữ
Output Đầu ra chuỗi kí tự đơn chứa Ch.
}
Function TForm1.CharToStr(Ch : Char) : String;
Var S : String;
Begin
S[0] := Chr(1); { Cất giữ độ dài xâu tại posn 0 }
S[1] := Ch; { Cất giữ Ch tại posn 1 }
CharToStr := S { Trả lại kết quả}
End;
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
36
Logic
AND, OR, NOT, XOR (VÀ, HOẶC, KHÔNG, XOR)
Những cái này dùng để sử dụng với If, While và Do. Rõ ràng trong tiếng Anh
chúng có nghĩa cho nhau phải không bạn? Chúng sẽ dễ học nếu thể hiện theo kiểu
bảng.
IF A AND B Then Nếu cả A và B đúng, khi đó.
IF A OR B Then Một trong A hoặc B phải đúng.
While NOT Done Do Nếu nó đúng thì làm cho nó sai
và nếu sai thì làm cho nó đúng (^_^).
If A XOR B Then Nó đúng hoặc cái khác đúng nhưng không phải cả 2
và không phải là không đúng. (???Bạn hiểu không???)
Câu tiếng Anh của nó là vầy, có ai dịch giúp với:
One or other must be true but not both and not neither
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
37
Bảng giá trị
0 là Sai (False).
1 là đúng (True).
AND
A B Output
0 0 0
0 1 0
1 0 0
1 1 1
OR
A B Output
0 0 0
0 1 1
1 0 1
1 1 1
XOR
A B Output
0 0 0
0 1 1
1 0 1
1 1 0
NOT
A Output
0 1
1 0
Reviewed by NGUYEN, Ba Thanh
Distributed by Diễn đàn Tin học –
38
Ví dụ:
If (Button = mbLeft) AND (X = 20) Then
Begin
doThis;
End;
If (day = ‘Mon’) OR (day = ‘Tue) Then
Begin
doShopping
End;
While NOT Finished Do
Begin
doThis;
End;
MỜI CÁC BẠN CHUYỂN QUA QUYỂN 2 ĐỂ HỌC
BIÊN DỊCH: Lê Khắc Như
Cảm ơn các bạn đã sử dụng
Nếu bạn thấy có chỗ nào không đúng thì nhớ báo cho mình sửa lại nha
Email: laptrinh04@yahoo.ca
Website:
File đính kèm:
Hướng dẫn lập trình Delphi - Quyển 1_Nhập môn.pdf

