Làm sao để play cỏc file: MID, WAV ?

Một phần của tài liệu Tài liệu Thiết kế chương trình duyệt file âm thanh bằng Visual Basic pptx (Trang 101 - 108)

1. Kiểm tra việc nhập liệu vào TextBox

2. Chuyển đổi ký tự trong cỏc đối tượng cú khả năng hiệu chỉnh (Editbox) thành chữ hoa

3. Bỏ qua một số ký tự khi gừ văn bản trong TextBox 4. Xúa cỏc mục chọn (Item) trong Combo/List Box

5. Làm sao để tắt tớnh năng Wordwrap của Rich TextBox 6. Thờm một dũng mới vào cuối TextBox đang chứa văn bản 7. Làm sao để Shut down hay Reboot lại Windows ?

8. Làm cho TEXTBOX trở thành read only hoặc cấm người dựng thay đổi nội dung

9. Mở file với chương trỡnh liờn kết (associated program)

10. Làm sao để play cỏc file: MID, WAV ?

Bằng cỏch sử dụng MCI của Windows

Declare Function mciExecute Lib "MMSystem" (ByVal FileName as String) As Integer

Private Sub Form1_Click ()

iResult = mciExecute("Play c:\windows\mkmyday.wav")

End Sub

Tương tự như vậy, bạn cú thể dựng cỏch này để Play một file MIDI. Cũn đõy là cỏch Play một file AVI

Private Declare Function mciExecute Lib "WINMM.DLL" (ByVal lpstrCommand as String) as Long

Private Sub Form_Click()

iResult = mciExecute("Play E:\Luu\AVI\Search.avi")

End Sub

Nếu muốn ngừng, đơn giản bạn chỉ cần thay từ Play thành Stop là được. Chỳc bạn thành cụng

Những cõu hỏi về Visual Basic

1. Ghi cỏc thiết đặt vào Registry

Chỳng ta sẽ dựng hàm GetSetting & lệnh SaveSetting để thực hiện nhiệm vụ này. Vị trớ ghi đọc giỏ trị của chỳng trong Registry nằm ở:

HKEY_CURRENT_USER\Software\VB and VBA Program Settings * Hàm GetSetting: Dựng để đọc một trị từ Registry. Cú cỳ phỏp như sau:

GetSetting(appname, section, key[, default]) Trong đú:

AppName: Nơi mà hàm này sẽ tỡm đến để đọc, thường nờn đặt là tờn của ứng dụng. Bắt buộc cú.

Section: Trong một AppName bạn cú thể tạo nhiều Section khỏc nhau, mỗi Section lưu trữ một nhúm thụng tin cú liờn quan với nhau để dễ quản lý (giống như tạo thư mục con vậy). Bắt buộc cú.

Key: Trong mỗi Section bạn cú thể tạo nhiều key, mỗi key lưu 1 trị. Bắt buộc cú.

Default: Trị mặc nhiờn mỗi khi khụng tỡm thấy Key cần đọc trong Registry. Tham số này cú thể cú hay khụng cũng được. Nếu khụng cú trị mặc nhiờn sẽ là một chuỗi rổng ("").

* Lệnh SaveSetting: Ghi thụng tin vào Registry. SaveSetting appname, section, key, setting

Cỏc thụng số tương tự như hàm GetSetting nhưng khụng cú đối số

Default. Nhưng lại cú đối số Setting là trị sẽ được ghi vào Registry cho mỗi Key.

Bạn hóy xem hỡnh để biết rừ hơn cỏch tổ chức cỏc thụng tin của Registry & cỏch ghi cỏc thiết đặt của lệnh SaveSetting. (adsbygoogle = window.adsbygoogle || []).push({});

Cỏc trị được lưu trong Registry

Thớ dụ minh họa: Lưu trạng thỏi của form trước khi thoỏt

Trạng thỏi hiển thị của form bao gồm: Maximize, Minimize, Normal, Top, Left, Width, Height. Một vị trớ thuận tiện nhất để lưu cỏc thụng số trờn là Registry của Windows.

Vậy để giữ lại trạng thỏi của form thỡ khi form phỏt sinh sự kiện Unload bạn hóy ghi lại cỏc thụng số về trạng thỏi. Khi mở form bạn chỉ cần đọc lại cỏc thụng số đó lưu trữ. Vậy là ta cú thể giữ lại được trạng thỏi form trước đú.

Để thớ dụ tụi sẽ minh họa cỏch lưu lại vi trớ của Form. Hóy khởi động VB & tạo 1 project mới, cú 1 form tờn là Form1, gừ vào code sau đõy:

Option Explicit

On Error Resume Next 'Dũng này hóy gừ sau.

Me.Left = GetSetting("ChuongTrinh_ViDu", "ViTriForm", "X") Me.Top = GetSetting("ChuongTrinh_ViDu", "ViTriForm", "Y")

End Sub

Private Sub Form_Unload(Cancel As Integer)

SaveSetting "ChuongTrinh_ViDu", "ViTriForm", "X", Me.Left SaveSetting "ChuongTrinh_ViDu", "ViTriForm", "Y", Me.Top

End Sub

Bõy giờ bạn cho chạy thử chương trỡnh, khi chương trỡnh chạy bạn hóy thử di chuyển form đi nơi khỏc, dừng chương trỡnh, sau đú cho chạy lại, bạn sẽ thấy form xuất hiện ngay đỳng vị trớ mà nú đó nằm trước khi thoỏt. Vào Registry để kiểm nghiệm

Tuy nhiờn khi thử chương trỡnh bạn sẽ thấy bỏo lỗi, lý do là chưa cú thụng tin trong Registry để đọc vào 2 properties Left & Top khi chạy lần đầu. Để khắc phục lỗi này bạn cú thể dựng đến trị Default của hàm GetSetting. Riờng tụi, tụi chọn cỏch đặt thờm dũng On Error Resume Next vào dũng đầu tiờn của sự kiện Form_Load.

2. Làm cho chương trỡnh giống trang Web

Nếu bạn cảm thấy quỏ chỏn chường với mấy cỏi nỳt lệnh Command Button, xin hóy tạo cho chương trỡnh của mỡnh những siờu liờn kết (Hyper Links) giống như trang Web. Cỏch làm cực kỳ dễ:

Hóy dựng một Label Box, đặt một Caption thớch hợp, rồi sau đú mà tựy ý xử lý dựa trờn cỏi sự kiện Mouse_Move của nú.

Vớ du như khi rờ mouse đến thỡ dũng Text trong Labelbox được gạch chõn bạn làm như sau:

Tạo project mới, cú Form tờn là Form1, trờn đú đặt một Labelbox tờn là Label1. Mở cửa sổ code gừ vào đoạn code sau:

Option Explicit

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.FontUnderline = False

End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.FontUnderline = True

End Sub

Qua đoạn code trờn ta cú nhận xột sau:

- Khi mouse được rờ đến Label1 thỡ phỏt sinh sự kiện mouse_move trờn Label này làm cho dũng Text của nú bị gạch chõn (như là Hyper link thứ thiệt).

- Khi mouse cũn trờn form, luụn luụn xảy ra sự kiện mouse trờn form và Label1 bị gỏn thuộc tớnh FontUnderline=False. Do đú ta sẽ thấy khi mouse rời khỏi Labelbox tức thỡ Text của nú hết bị gạch chõn ngay.

Khi mouse cũn trờn Form (adsbygoogle = window.adsbygoogle || []).push({});

Khi mouse được rờ trờn Labelbox

Tuy nhiờn 1 Hyper link như vậy cũn hơi nhạt nhẽo thiếu rất nhiều "hương sắc Web". Bạn cú thể cho nú thờm vài thay đổi nữa như:

• In nghiờng (Font Italic) • Đổi Font chữ (FontName) • Đổi màu chữ (ForeColor) • Đổi màu nền (BackColor)

• Đổi biểu tượng chuột (Mouse Icon). Nhớ đặt MousePointer là Custom - 99

Cũn rất nhiều thứ xin mời bạn.

3. Làm sao để mở trỡnh Browser & Mail mặc định của Windows ? Bạn khai bỏo hàm API sau:

Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As _

String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Khi nào cần dựng chỉ việc gọi hàm Dim ret&

ret& = ShellExecute(Me.hwnd, "Open", "http://ilpweb.itgo.com", "", App.Path, 1)

Nếu muốn gọi Mail bạn chỉ cần thay địa chỉ Web thành "mailto:email@site.com" là được rồi

Chỳc bạn thành cụng

4. Đường dẫn của đối tượng DirListbox và App

Hóy hóy lưu ý thuộc tớnh Path của 2 đối tượng này. Thớ dụ như bạn cần tham chiếu đến một tập tin tờn là Test.txt nằm trong thư mục của chương trỡnh (giả sử App.path == c:\myapp).

app.path & "\Test.txt" ==> c:\myapp\Test.txt

Nhưng nếu App.path của bạn là một thư mục gốc của bất kỳ ổ đĩa nào, vớ dụ như c:\ thỡ nú lại thành.

app.path & "\Test.txt" ==> c:\\Test.txt

Chương trỡnh sẽ bỏo lỗi ngay lập tức. Tương tự như vậy đối tượng DirListBox cũng bị trường hợp này.

Lý do là 2 đối tượng này trả về cho thuộc tớnh Path cỏc trường hợp sau: • Nếu khụng phải là thư mục gốc thỡ: Tờn ổ đĩa:\Tờn thư mục - vớ dụ

C:\TEMP

• Nhưng nếu là thư mục gốc thỡ lại Tờn ổ đĩa:\ - vi dụ C:\ Khi lập trỡnh tổng quỏt ta hay viết là

App.path & "\Test.txt"

Dir1.path & "\" & File1.Filename

Như vậy ta thấy dư 1 dấu \ khi là thư mục gốc. Để giải quyết lỗi này bạn cú thể dựng hàm IIF() hoặc cõu lệnh IF

Cụ thể tụi cú thể viết như sau: Dim F as String

F = Dir1.path & IIF(Len(Dir1.path)=3,""," ") & File1.FileName Hay

If Len(Dir1=3) then

F = Dir1.path & File1.FileName else

F = Dir1.path & "\" & File1.FileName End If

Những cõu hỏi về Visual Basic (adsbygoogle = window.adsbygoogle || []).push({});

Lấy tham số truyền từ dũng lệnh. Lấy cỏc biểu tượng cửa sổ. Thu nhỏ chương trỡnh sau khi dịch bằng NeoLite 2.0

Một phần của tài liệu Tài liệu Thiết kế chương trình duyệt file âm thanh bằng Visual Basic pptx (Trang 101 - 108)