MsgBox Tiếng Việt tự động thoát và hàm hổ trợ

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,421
Được thích
4,033
Giới tính
Nam
Rảnh tôi đang thí nghiệm vài thứ trên Delphi vv...

1/ Cách đây trên 1 năm có người nói với Tôi chỉ có Python viết COM ActiveX.exe chạy tốt và dùng chung cho 32 bit và 64 bit
Tôi nói VB6 cũng viết được nhưng bản chất của VB6 ActiveX.exe vẫn là 32 bit còn python thì tôi không biết

Nhưng tôi nhớ tài liệu trên Delphi tôi xem nhiều năm trước họ đã từng nói Delphi7 viết COM Server ActiveX.exe chạy tốt nhưng Delphi 7 chỉ là 32 bit

sau đó tôi có hỏi tây thì nó phán là: bất cứ tools nào có hổ trợ viết COM của Ms thì điều viết COM.exe được hết

sau đó vài ngày thì tôi thử dò và viết thành công

2/ Hôm nay tôi giới thiệu cho Ai đó biết ... Tôi sử dụng Delphi 11.1 viết COM ActiveX.exe 64 bít sử dụng chung cho 32 bit và 64 bit tốt

3/ vài hàm nhỏ trong File COMSERVER.exe sử dụng cho MsgBox tiếng việt có dấu chi tiết như sau

Giới thiệu bộ hàm Msgbox Tiếng Việt và hàm hổ trợ

1/ Hàm MsgBoxTimeOut sử dụng hàm API của Ms Msgbox sẻ thoát sau 6 giây cách tính 1000 = 1 giây

Mã:
Sub Test_MsgBoxWTimeOut()
    Dim ND As String, TB As String
    ND = "Gi" & ChrW(7843) & "i Ph" & ChrW(225) & "p Excel" & vbLf _
        & "C" & ChrW(244) & "ng c" & ChrW(7909) & " tuy" & ChrW(7879) _
        & "t v" & ChrW(7901) & "i c" & ChrW(7911) & "a B" & ChrW(7841) & "n"

    TB = "Th" & ChrW(244) & "ng B" & ChrW(225) & "o"
    Call VB.MsgBoxTimeOut(ND, TB, 6000) ''6000 = 6 giay
    Set VB = Nothing
End Sub

Hình ảnh sau khi chạy code trên

1681349967238.png

2/ Hàm MsgBoxTimeOutType Như hàm trên chỉ thêm tùy chọn Button cho Hàm với các tham số 1,2,3,4,.... 64 vv truyền vào hàm

Mã:
Sub Test_MsgBoxTimeOutType()
    Dim ND As String, TB As String
    ND = "Gi" & ChrW(7843) & "i Ph" & ChrW(225) & "p Excel"
    TB = "Th" & ChrW(244) & "ng B" & ChrW(225) & "o"
    Call VB.MsgBoxTimeOutType(ND, TB, 3, 6000) ''6000 = 6 giay
    Set VB = Nothing
End Sub

Hình ảnh sau khi chạy code trên
1681350276121.png

3/ Hàm MsgBoxW sử dụng hàm API của Ms

Mã:
Sub Test_MsgBoxW()
    Dim ND As String, TB As String
    ND = "Gi" & ChrW(7843) & "i Ph" & ChrW(225) & "p Excel"
    TB = "Th" & ChrW(244) & "ng B" & ChrW(225) & "o"
    Call VB.MsgBoxW(ND, TB, 3)
    Set VB = Nothing
End Sub
Hình ảnh sau khi chạy code trên
1681350376849.png
4/ Hàm MsgBoxDialog với các tham số từ 1 tới 7 được truyền vào hàm khi chạy code
Mã:
Sub Test_MsgBoxDialog()
    Dim ND As String, TB As String
    ND = "Gi" & ChrW(7843) & "i Ph" & ChrW(225) & "p Excel" & vbLf _
        & "C" & ChrW(244) & "ng c" & ChrW(7909) & " tuy" & ChrW(7879) _
        & "t v" & ChrW(7901) & "i c" & ChrW(7911) & "a B" & ChrW(7841) & "n"
    TB = "Th" & ChrW(244) & "ng B" & ChrW(225) & "o"
    Call VB.MsgBoxDialog(ND, TB, 1, 3, 3)
    Set VB = Nothing
End Sub
Hình ảnh sau khi chạy code trên
1681350504579.png

5/ Hàm MsgBoxDialogTimed Như hàm mục số 4 chỉ khác là mặc định thoát sau 5 giây nếu tham số Timed truyền vào hàm = 0

Nếu Timed = 12000 thì sẻ thoát sau 12 giậy

Mã:
Sub Test_MsgBoxDialogTimed()
    Dim ND As String, TB As String
    ND = "Gi" & ChrW(7843) & "i Ph" & ChrW(225) & "p Excel" & vbLf _
        & "C" & ChrW(244) & "ng c" & ChrW(7909) & " tuy" & ChrW(7879) _
        & "t v" & ChrW(7901) & "i c" & ChrW(7911) & "a B" & ChrW(7841) & "n"
        
    TB = "Th" & ChrW(244) & "ng B" & ChrW(225) & "o"
    Call VB.MsgBoxDialogTimed(ND, TB, 1, 3, 3, 5000) ''5000 = 5 giay
    Set VB = Nothing
End Sub

Hình ảnh sau khi chạy code trên

1681350671272.png

Hướng dẫn sử dụng

1/ đính kèm file phía dưới là 2 File *.vbs để đăng ký và hủy đăng ký sử dụng nó
2/ cách sử dụng theo chuẩn COM của ms khai báo kết nối sơm hay muộn
3/ sau khi đang ký sử dụng tốt mà thay đổi tên Folder thì đăng ký lại mới sử dụng được
4/ Tôi khai báo kết nối sớm xem hình
1681350995834.png
5/ để Check được COM ActiveX.exe thay đổi tùy chon sau

1681351279320.png
 

File đính kèm

  • COMSERVERExe.rar
    1 MB · Đọc: 9
Trong File bài số 1 có 1 hàm hổ trợ sau chuyển đổi Tiếng Việt có dấu sang ChrW
Mã:
Function ConvertUnicodeChrW(sText As Range)
    Dim Text As String
    Text = sText.Value
    With New COMSERVER.cLibrary
        ConvertUnicodeChrW = .ConvertUnicodeToChrW(sText)
    End With
End Function

Cách sử dụng đã có sẳn trong File ... nếu không thích thì tùy biến theo ý của ai đó

Khi check COM trong VBA xem sẽ thấy các tham số và kiểu trả về của Hàm như sau ... còn tùy biến khác cách viết của bài số 1 là theo sở thích của ai đó thì tùy .............. Hàm trả về kiểu Long

Mã:
Function MsgBoxDialogTimed(Msg As String, Caption As String, DlgType As Long, Buttons As Long, DefaultButton As Long, Timed As Long) As Long

Ví dụ:
Mã:
Dim xx As Long
xx = MsgBoxDialogTimed(....)

If xx = 3 then
....
End if
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom