Professional Documents
Culture Documents
Resource Editor
Resource Editor
VB có 3 hàm hỗ trợ việc truy cập và sử dụng các file trong resource:
LoadResPicture(index,format) as Picture
LoadResString(index) as String
LoadResData(index,format) as ByteArray
• Hàm LoadResPicture(index,format) có giá trị trả về phụ thuộc
vào tham số format, giá trị này có thể tham khảo trong bảng 1.
Tuỳ theo loại file trong resource mà ta truyền tham số tương
ứng cho hàm LoadResPicture để có giá trị trả về phù hợp.
• Hàm LoadResString(index) trả về String tương ứng với index Cửa sổ chính của Resource Editor
trong String Table.
• Hàm LoadResData(index,format) trả về một mảng các giá trị byte (Byte Array). Tham số format
là tên của loại dữ liệu mà người dùng định nghĩa trong RE (mặc định là “Custom” khi thêm loại dữ liệu
khác). Đây là một hàm đặc biệt cho phép người dùng nạp vào bộ nhớ hầu hết các loại dữ liệu với dung
lượng có thể lên tới hàng chục MB hay hơn. Có thể dùng hàm này thay cho hàm LoadResPicture và
LoadResString để nạp các loại dữ liệu đã giới thiệu ở trên (bitmap, icon, cursor), tuy nhiên việc làm
này sẽ khá phức tạp vì hàm LoadResData trả về một chuỗi các byte chứ không trả về một file đã
được định dạng sẵn (như file bitmap). Sau đây là một số ví dụ về sử dụng các hàm truy cập tài nguyên
trong Resource File.
Ví dụ 1: Dùng hàm LoadResPicture và LoadResString để lấy tài nguyên từ trong file *.RES.
Sau khi tạo một project mới có tên là prj_VbResource bạn hãy thao tác theo các bước sau:
Bước 1:
Vào menu Add-Ins/Add-Ins Manager, khi xuất hiện cửa sổ Add-Ins Manager chọn mục VB 6
Resource Editor bên cột Available Add-Ins (nếu không có, bạn hãy tìm “path” của file resedit.dll,
thường là “Program Files\Microsoft Visual Studio\VB98\Wizards”, và “đăng ký” thư viện này bằng cách
vào Start.Run, nhập lệnh regsvr32 <path>\resedit.dll). Chọn mục Loaded/Unloaded nếu bạn muốn
nạp/dừng nạp RE ngay lập tức và Load On Startup nếu bạn muốn VB tự động nạp RE mỗi khi VB khởi
chạy, sau cùng chọn OK.
Bước 2:
Vào menu Tools, chọn Resource Editor hoặc
biểu tượng của RE trên toolbar.
Bước 3:
Đây là bước quan trọng, bạn phải thiết lập hệ
thống các file resource của mình cẩn thận và chính xác. Trên toolbar của RE là một số nút cho phép
nhập các loại file cơ bản vào resource của chương trình: String Table, Cursor, Icon, Bitmap và Custom
1 of 4 12/23/2010 9:44 PM
Sử dụng VB 6.0 Resource Editor http://www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5c58...
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
Data.
Command3.Caption = “Exit”
Text1.Font.Size = 12
Text1.ForeColor = vbBlue
Text1.Text = “”
Image1.BorderStyle = 1
Image1.Stretch = True
End Sub
End Sub
Hãy thử chuyển ngôn ngữ hiện tại sang English (dùng Region Setting trong Control Panel của
Windows), bạn sẽ thấy sự khác biệt!
Ví dụ 2: Dùng định dạng file “custom”
Nếu chỉ sử dụng 2 hàm LoadResString và LoadResPicture thì bạn chỉ có thể sử dụng resource từ
những file có định dạng *.ico, *.cur, *.bmp, còn với những file có định dạng khác như *.gif, *.wav, *.avi
, *.mdb v.v... thì hai hàm này thì chưa đủ. Hàm LoadResData trả về một định dạng hoàn toàn không
xác định đó là một mảng các byte (Byte Array). Kết hợp mảng dữ liệu này với một số hàm WinAPI và
2 of 4 12/23/2010 9:44 PM
Sử dụng VB 6.0 Resource Editor http://www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5c58...
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
các lệnh thao tác file của VB, bạn hoàn toàn có thể có được một resource theo ý muốn. Ví dụ sau sẽ
hướng dẫn bạn tạo một resource chứa file *.wav và *.avi
Mở một Project mới, dùng VB Resource Editor thêm vào resource một file *.wav với ID=101 và
Type=”Sound” cùng một file *.avi với ID=102 và Type=”Video”.
Tạo một Form mới (Form1) với 4 Command Button. Chọn menu Project/Components, chọn
Microsoft Windows Common Controls-2 6.0, sau đó tạo một control Animation mới. Tạo một Module
mới có nội dung sau:
Option Explicit
‘ ********* Module Code **********
Public Function CreateFileRs(ByVal FilePath As String, ByVal ResID As String, ByVal ResType As
String) As Boolean
Dim hFile As Long
Dim FileArr() As Byte
FileArr = LoadResData(ResID, ResType)
On Error Resume Next
If Len(FileArr(1)) > 0 Then
hFile = FreeFile()
Open FilePath For Binary Access Write As #hFile
Put #hFile, 1, FileArr
Close #hFile
CreateFileRs = True
End If
End Function
‘ ***** End Module Code *****
Sau đó tiếp tục nhập đoạn code sau vào phần form code:
Option Explicit
‘ ********* Form Code *******
Private Sub Command1_Click()
Animation1.Play
End Sub
3 of 4 12/23/2010 9:44 PM
Sử dụng VB 6.0 Resource Editor http://www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5c58...
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
End Sub
© Tạp chí Thế Giới Vi Tính - PC World VN. CQ chủ quản: Sở Khoa Học và Công Nghệ TP.HCM
Giấy phép số 196/GP-BVHTT do Bộ Văn Hóa Thông Tin cấp ngày 27-06-2003
Tòa soạn: 126 Nguy ễn Thị Minh Khai, Q.3 TP.HCM - ĐT: 84.8.39304324 - FAX: 84.8.39304338
Bản quyền của Thế Giới Vi Tính - PC World VN
4 of 4 12/23/2010 9:44 PM