Function

Function HHMM(dMinute As Long) As String
 Dim dHH As String
 Dim dMin As String
 dHH = dMinute \ 60
 dMin = dMinute Mod 60
 If Val(dMin) < 10 Then
   dMin = "0" & dMin
 End If
 HHMM = dHH & ":" & dMin
End Function

edit @ 1 Apr 2008 10:34:12 by theera

Function การตัด String

posted on 27 Mar 2008 11:30 by theera  in Function

ให้อยู่ในบรรทัดเดียวกัน กรณี กด Enter ขึ้นบรรทัดใหม่ ก็ให้อยู่บรรทัดเดียวกัน

โดยใช้ Function VBcrlf 

เช่น

Dim ReplaceTxt as String

ReplaceTxt = "บรรทัดแรก

                      บรรทัดสอง

                      บรรทัดสาม"

 replace(ReplaceTxt,vbcrlf,"")

ก็จะได้ค่า คือ "บรรทัดแรกบรรทัดสองบรรทัดสาม"

 

API Function(Application Programming Interface)

ทำให้ Icon โปรแกรมไว้ที่ system tray โดยฟังก์ชั่น Shell_NotifyIcon

บ้างครั้งโปรแกรมที่เราเขียนนั้นอยากจะให้เวลาที่ Load Program แล้ว Icon
ของโปรแกรมเราไปฝั่งอยู่ที่ System tray ของ Taskbar เราสามารถใช้ ฟังก์ชั่น Shell_NotifyIcon
โดยให้สร้าง โมดูลไฟล์ขึ้นมาแล้วเขียนโค๊ดดังนี้

Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Public Const NIM_ADD = &H0 ' เพิ่มไอคอนไปที่ system tray
Public Const NIM_MODIFY = &H1 'ปรับปรุงไอคอนที่ system tray
Public Const NIM_DELETE = &H2 ' ย้ายไอคอนจาก system tray

Public Const NIF_MESSAGE = &H1 'เพิ่มไอคอน

Public Const NIF_ICON = &H2 'เพิ่มไอคอน
Public Const NIF_TIP = &H4 ' เพิ่มป้ายชื่อ Hing

' ค่าคงที่สำหรับใช้ใน API
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200

Public Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Long
uFlags As Long
ucallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Public SystemTray As NOTIFYICONDATA
--------------------- จบในส่วนโมดูล --------------------------

ส่วนใน Form นั้นเราจะใช้ Event Load เป็นตัวทำให้ Function ทำงาน

Private Sub Form_Load()
SystemTray.cbSize = Len(SystemTray)
SystemTray.hWnd = Me.hWnd
SystemTray.uId = vbNull
SystemTray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
SystemTray.ucallbackMessage = WM_MOUSEMOVE
SystemTray.hIcon = Icon
SystemTray.szTip = Caption & vbNullChar
Call Shell_NotifyIcon(NIM_ADD, SystemTray)
End Sub
------------------------- จบในส่วน Form Load ---------------------------

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static lngMsg As Long
Static blnFlag As Boolean

lngMsg = X / Screen.TwipsPerPixelX 'get a callback message returned from system tray

If blnFlag = False Then
blnFlag = True

Select Case lngMsg
Case WM_LBUTTONDBLCLK 'icon in system tray is double-clicked
Me.Show
Case WM_RBUTTONUP 'icon in system tray is right-clicked

End Select

blnFlag = False
End If
End Sub
--------------------------------- จบในส่วน Mouse Move ------------------------

Private Sub Form_Unload(Cancel As Integer)
Call Shell_NotifyIcon(NIM_DELETE, SystemTray)
End Sub
-------------------------------- จบในส่วน Form Unload -----------------------------

ซึ่งถ้าหากเราจะให้ Form หายไปหรือนั้น ขึ้นอยู่ว่าเวลาเรียกโปรแกรมขึ้นมาให้ใส่

Form1.Hide

ถ้านำเมาส์ไปคลิกที่ Icon ใน System tray ที่ Taskbar ก็จะ show ขึ้นมา

แหล่งข้อมูลอ้างอิง
- www.vbapi.com
- MSDN Visual Basic Homepage
- API Text Viewer Tool