|
KINH NGHIỆM LẬP
TRÌNH |
|
Chơi nhạc MP3 trên Visual Foxpro 6.0 |
|
Đó hỏi: Mong e-CHÍP gỡ
rối cho mình các vấn đề như sau trên cả Foxpro 2.6
for Windows và Visual Foxpro 6.0: |
1. Làm thế nào để lưu (và nghe) một bài hát dạng
nhạc nén MP3 vào một mục tin (field) có kiểu General
của một bảng dữ liệu DBF?
2. Lệnh SAY sẽ có tham số màu như thế nào để chỉ ghi
một dãy ký tự lên nền một hình ảnh?
3. Để hiển thị nội dung mục tin MEMO theo phông chữ
Việt khi xem bằng lệnh BROWSE, ta cần tham số gì? |
|
Chương Can Chíp trả lời: |
|
Tui năn nỉ bà con đừng xài Foxpro 2.6 for Windows
nữa khi mà Visual Foxpro đã đạt đến đai “cửu đẳng”
(phiên bản 9.0) rồi. Tui đã vật lộn với Foxpro từ
hồi “for DOS” và từng hài lòng với những gì Visual
Foxpro 6.0 mang đến. Cho nên tui chỉ trình bày vấn
đề trên Visual Foxpro 6.0. |
|
1. Để lưu một bài hát dạng nhạc nén MP3 (ví dụ:
GodFather.MP3) vào một mục tin (ví dụ: BaiHat) có
kiểu General, bà con có thể xài lệnh sau: |
|
APPEND GENERAL BaiHat FROM GodFather.MP3 |
|
Sau đó, để nghe bản nhạc này, bà con phải tạo một
biểu mẫu rồi đặt lên đó một đối tượng
OLEBoundControl (ví dụ có tên là oleBaiHat)
có thuộc tính ControlSource là tên của mục
tin BaiHat. Mỗi lần người dùng bấm kép vào
đối tượng này thì họ được nghe bản nhạc. Dĩ nhiên,
trên máy cần phải có công cụ chơi nhạc MP3. Nếu bà
con muốn xài lệnh lập trình để chơi bản nhạc thì đặt
thuộc tính cho oleBaiHat như sau: AutoActivate =
0 và AutoVerbMenu = .F. rồi dùng hành vi
DoVerb(-2) để chơi. |
|
Cách lưu bài hát vào mục tin General có nhược điểm
là cửa sổ phần mềm chơi nhạc xuất hiện khi bài hát
được chơi và kích thước DBF rất lớn nên không hiệu
quả. Tui đề xuất cách này: lưu tên tập tin chứa bản
nhạc vào một mục tin kiểu Character (ví dụ:
cBaiHat). Trên biểu mẫu, thiết kế một ActiveX
Control có thể chơi MP3 được, ví dụ: Windows
Media Player (có sẵn khi cài đặt Windows), như sau: |
• Để bổ sung ActiveX Control này vào hộp công
cụ Form Controls, bà con chọn mục Options
trên trình đơn Tools. Trên hộp thoại Options,
chọn thẻ Controls, chọn mục ActiveX
Controls. Trên danh sách Selected, chọn
Windows Media Player rồi chọn OK.
• Bấm View Classes trên hộp công cụ Form
Controls, chọn mục ActiveX Controls trên
trình đơn đi kèm nút này để hộp công cụ xuất hiện
(hình 1).
• Chọn công cụ cây-búa-và-mỏ-lết để vẽ một ô điều
khiển có tên oleWMPlayer với thuộc tính
Visible là .F.
• Dòng lệnh để chơi bản nhạc là:
oleWMPlayer.FileName = cBaiHat
oleWMPlayer.Play
• Muốn tắt nhạc thì dùng: oleWMPlayer.Stop. |
|
Hình 1
 |
|
2. Các lệnh @... SAY/GET đã được đưa vào... “bộ
quên” rồi, giờ đây bà con chỉ cần đặt một ô nhãn
(label control) lên trên ô hình ảnh (image control)
chứa ảnh cần hiển thị, rồi xài thuộc tính Caption
của ô nhãn để hiển thị chữ. |
3. Cửa sổ hiển thị nội dung mục tin kiểu MEMO
được dùng chung cho mọi ứng dụng và độc lập với lệnh
BROWSE, nghĩa là nếu bà con xài lệnh
BROWSE FONT “Vietnam” thì chỉ có các mục tin
kiểu Character chịu ép-phê phông chữ
“Vietnam”, còn phông chữ cho cửa sổ mục tin MEMO
vẫn là Arial. Để thay đổi, khi xem nội dung
mục tin MEMO, bà con bấm-phải trên cửa sổ này
rồi chọn mục Properties trên trình đơn vụt ra sau
đó. Trên hộp thoại Edit Properties (hình 2),
bà con chọn nút ba-chấm tại mục Font để xác
định phông chữ cho cửa sổ soạn thảo. Cuối cùng, bụp
vào Save preferences và Apply to memos
rồi OK. Và phải “mần” chuyện này trên mỗi máy
tính có xài ứng dụng của bà con (mệt!).
Nói thiệt chứ xài kiểu này... lạc hậu lắm, bà con
phải xài ô điều khiển Grid kết hợp với ô điều
khiển Edit mới đúng là... sành điệu! |
Hình 2
 |
|
HAI ẨU |
|
|