Thứ Sáu, 2 tháng 3, 2012

__{ideal}__Cơ bản về VB 6

Cẩm nang VB 6
- Viết chú giải:
'viết chú giải ở đây. 1 dấu nháy đơn là dấu hiệu của dòng chú giải.
note: Trong tài liệu viết dưới đây, mình sử dụng chú giải được dùng hầu hết ở các ngôn ngữ là //comment.

- Đối tượng gồm có: Bản thân đối tượng (nơi chứa) & giá trị đặt trong đối tượng.
+ Giá trị được đưa vào đối tượng (phép gán).
+ Xem/lấy giá trị trong đối tượng.
+ Xóa giá trị ra khỏi đối tượng.
+ Xóa hẳn đối tượng đi.
Note:
*bạn có thể sử dụng giá trị trực tiếp or thông qua đối tượng.
*Vùng trong VB không giới hạn ở trong đóng gói (lớp, cấu trúc), mà có ở khắp nơi do vậy đối tượng có thể khai báo nằm trong vùng: public, private.

Kiểu dữ liệu
-Các đối tượng trong VB có thể định nghĩa kiểu cho nó or không cần (tức có thể xác định nhiều kiểu).
-Trong VB có thể tự chuyển kiểu được cho nhau, nếu có thể. Ie: kiểu boolean & kiểu số.

*Các kiểu mặc định sơ khai:
Kiểu số:

Integer
là số nguyên.
long
là số nguyên có kích thước lớn hơn integer.
double
Là số thực dài.
- Sử dụng các phép toán cộng, trừ, nhân, chia, số dư.
- Tự động chuyển sang kiểu Boolean: 0: false, còn lại là true.

Kiểu chuỗi:

string
Kiểu chuỗi.
- Chuỗi được đưa vào trong dấu ngoặc "". Không sử dụng 1 dấu nháy đơn vì nó sẽ bị coi là chú giải.
- Kết hợp công chuỗi sử dụng &. ie: "a"&"b"

Kiểu đúng sai.

Boolean
Kiểu đúng/sai (true/false)
-Chuyển sang kiểu số ở dạng 1 or 0.


Kiểu rỗng:
* giá trị bình thường:
+ Chuỗi rỗng: ""

+Empty: tương đương: chuỗi rỗng "" or chưa có giá trị.

+Null: không bằng "" or Empty.

* Đối tượng
+Nothing: dùng để kiểm tra or gán vào đối tượng để cho biết nó chưa được khởi tạo.

=>Ngoài ra còn có các kiêu đối tượng lớp, cấu trúc tự định nghĩa:
Ví dụ:
-Kiểu mảng, các thành phần giao diện: comBoBox, button, ....và kiểu lớp do người dùng tự định nghĩa.
Quan trọng:
Biến trong VB có 2 loại:
loại 1: chứa giá trị thông thường như: chuỗi, số.., ngăn chứa chuỗi-số
-không cần khởi tạo instance.

loại 2: chứa hẳn 1 đối tượng dạng lớp, cấu trúc: có thuộc tính, thành phần.
-Yêu cầu khởi tạo. Xem cách khởi tạo instance ở mục (đóng gói, lớp hàm)

Khởi tạo đồng thời có thể gán luôn giá trị.


Ký tự đặc biệt
\n: xuống dòng.


Lệnh của ngôn ngữ
* Điều kiện:
//viết trên 1 dòng
If (dieu_kien) then lenh_1
note:
- lệnh điều kiện viết trên 1 dòng thì không cần kết lệnh: End If

//viết trên nhiều dòng
If (dieu_kien) then
        //các lệnh ở đây
end if
=>điều kiện có thể đặt trong ( ) or không. Nếu biểu thức điều kiện phức tạp thì dùng ngoặc để phân biệt.

*Duyệt các phần tử:
//chạy từ [n,m]
for i=n to m
   .......
next
note:
- Lệnh duyệt không được dùng ().ie: (i=0 to 3) --> sai !

//duyệt các phần tử trong ngăn chứa mảng.
for each i in array_1
........
next
note: Không được duyệt ngăn chứa các phần tử của đối tượng được.

*So sánh

So sánh với giá trị bình thường.
=
So sánh bằng
<> 
Khác
< 
Nhỏ hơn
<=
Nhỏ hơn or bằng
> 
Lớn hơn
>=
Lớn hơn or bằng




so sánh với đối tượng.

A is B
Nếu đối tượng của A bằng đối tượng của B.


Phủ định: Not

Hàng xóm, phạm vi biến

Để sử dụng các biến ở các phân vùng rõ ràng thì khai báo từ khóa: Option Explicit ở phần (general).
Lúc này các thành phần trong các vùng phải được khai báo để chánh đụng độ sau này.
note: 1 khi khai báo option Explicit, nếu trong scope không khai báo biến thì gây ra lỗi.

- Phạm vi biến:
Cũng giống như javascript, VB phải khai báo biến để sử dụng trong scope (ie: trong hàm, module, lớp...).
note: nếu không khai báo sẽ bị lỗi.
Biến được khai báo trong phạm vi scope sẽ chỉ được sử dụng trong scope.
--> gọi là biến cục bộ.


*Khai báo biến toàn cục trong vùng (general), với cú pháp:
//thêm ở phần đầu trang code.
Option explicit
//khai báo các biến toàn cục
Dim var1 As Type
.....
note:
- Khi đã khai báo biến thì không được khai báo lại.


- Kiểm tra kiểu của đối tượng:
VB6 khá nhậy cảm với dữ liệu của biến.
ex: bạn không thể so sánh mảng (array) với chuỗi.
VD:
nếu d là mảng thì chạy lệnh dưới đây sẽ báo lỗi !
if ( d="A") then
      //do something
endif
- Để kiểm tra kiểu dữ liệu của biến ta nên dùng hàm TypeName(var).


Nếu biến của bạn có thể chứa nhiều kiểu dữ liệu thì nên chỉ khai báo tên biến, không khai báo kiểu.
Ie: Dim ten_bien
Note: Đừng quên khai báo biến.


Làm việc với mảng


Mảng trong VB6 là các phần tử có nhãn là số (không cho phép nhãn là chuỗi ) và Giá trị.
Tạo mảng
+Tạo mảng 1 chiều.
Dim ten_mang () As kieu_du_lieu

Nếu kiểu là lớp thì cần instance.
Cách 1:
Dim var1 As ComboBox
Set var1=New ComboBox
Cách 2:
Dim var1 As New ComboBox

+ Tạo mảng đa chiều:
Dim ten_bien (3,5,..) As kieu_du_lieu

Thêm phần tử vào mảng:
thêm phần tử vào mảng phải chỉ rõ chỉ số.
mang(0)=value1
mang(1)=value2
//không tự động thêm phần tử vào cuối
mang()=value3        //sai!

Xóa phần tử ra khỏi mảng:
//Chỉ định phần tử rổi gán Empty
mang(0)=Empty

xem thêm>>

Vận chuyển dữ liệu


Con trỏ:
- các biến có thể được vận chuyển cho nhau.
- Có thể truyền giá trị của biến vào hàm or vận chuyển biến vào trong hàm (gọi là con trỏ).
Truyền con trỏ: sử dụng từ khóa byRef.
truyền giá trị: sử dụng tử khóa byVal. (mặc định)




Hàm (function)
//tạo hàm kiểu 1 có thể trả về giá trị
Function ham_1(bien1 As Kieu,..) As Kieu_tra_ve
//trả về giá trị
ham_1=gia_tri

End Function


//tạo hàm kiểu 2 không cho phép trả về giá trị mà chỉ có thể chạy
Sub ham_2(bien1 As Kieu,...)
//hàm trả về
ham_2=gia_tri
End Sub

//gọi hàm không đối số. Không được phép sử dụng ( ) vì nó được coi là phải có đối số truyền vào.
ten_ham


//gọi hàm có đối số.
ten_ham(gia_tri)


//có thể sử dụng lệnh Call đằng trước tên hàm khi gọi
Call ten_ham(tham_so_neu_co)
quan trọng:
- Hàm không thể chứa hàm.


Tạo Kiểu đối tượng dưới đây có thể sử dụng bất kỳ nơi đâu.


enum
Là liệt kê các số.
//tạo kiểu enum
enum ten
t1=0
t2=3
...
end enum
note:

- được tạo ngoài hàm. Không định nghĩa trong hàm.
- truy cập vào thành phần trong enum sử dụng tên enum.

- Enum cũng được coi là 1 kiểu. Nhưng không cần tạo instance, vì nó là loại kiểu đơn giản nhất.
  Nếu định nghĩa biến là kiểu enum, thì tên biến đó sẽ nhìn thấy toàn bộ các thành phần của enum => không cần truy cập thông qua tên enum nữa.
ie:
public enum enum_1
a1=0
a2=10
end enum


dim t as enum_1
msgbox t=a1   'true






Lớp
loại 1: Class Modules (định dạng .cls)
Để tạo 1 lớp bạn vào: Project -> add Class module -> chọn Class module. Trong cửa sổ properties window bạn nhập tên module.

Nhấn đúp vào lớp (trong list các lớp đã tạo) để khai báo thuộc tính, hàm cho lớp.
Note: Trong VB hầu như được hỗ trợ đầy đủ về tính năng của lớp. ie: public, private...

//khai báo thành phần public. Được truy cập cả trong lẫn ngoài.
public thanh_phan_1 as kieu


//khai báo private. Chỉ được sử dụng trong lớp, không được truy cập từ bên ngoài.
private thanh_phan_1 as kieu


//khai báo & tạo instance cho lớp
Dim t as lop1
set t=new lop1

//sử dụng dấu "." để truy cập vào thành phần của lớp: 
//nếu là thuộc tính thì lấy, gán giá trị.
t.thanh_phan1
t.thanh_phan1=value
//nếu là hàm, tuân theo quy tắc gọi hàm ở trên.
t.ham_1

loại 2: Modules (định dạng .bas)


0 nhận xét:

Đăng nhận xét

 
Copyright © hoangit