thanhtruong > 29-10-15, 11:57 AM
tranthanhan1962 > 29-10-15, 06:58 PM
thanhtruong > 30-10-15, 11:48 AM
tranthanhan1962 > 30-10-15, 01:13 PM
(30-10-15, 11:48 AM)thanhtruong Đã viết: ý là muốn thay đổi màu chữ bất kì, thích thì chọn mà này không thì chọn màu khác, giống như from nhập trả lời của thuthuataccess.com vậy. phải làm sao
Option Compare Database
Option Explicit
Private Type COLORSTRUC
lStructSize As Long
hwnd As Long
hInstance As Long
rgbResult As Long
lpCustColors As String
Flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Const CC_RGBINIT = &H1
Private Const CC_FULLOPEN = &H2
Private Const CC_PREVENTFULLOPEN = &H4
Private Const CC_SHOWHELP = &H8
Private Const CC_ENABLEHOOK = &H10
Private Const CC_ENABLETEMPLATE = &H20
Private Const CC_ENABLETEMPLATEHANDLE = &H40
Private Const CC_SOLIDCOLOR = &H80
Private Const CC_ANYCOLOR = &H100
Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" _
(pChoosecolor As COLORSTRUC) As Long
Public Function aDialogColor(prop As Property) As Boolean
Dim x As Long, CS As COLORSTRUC, CustColor(16) As Long
CS.lStructSize = Len(CS)
CS.hwnd = hWndAccessApp
CS.rgbResult = Nz(prop.Value, 0)
CS.Flags = CC_SOLIDCOLOR Or CC_RGBINIT
CS.lpCustColors = String$(16 * 4, 0)
x = ChooseColor(CS)
If x = 0 Then
prop = RGB(255, 255, 255) ' White
aDialogColor = False
Exit Function
Else
prop = CS.rgbResult
End If
aDialogColor = True
End Function
Option Compare Database
Option Explicit
Private Sub CmdDoiMauNen_Click()
Dim lngRet As Boolean
lngRet = aDialogColor(Me.textbox000.Properties("BackColor"))
End Sub
Private Sub CmdDoiMauKyTu_Click()
Dim lngRet As Boolean
lngRet = aDialogColor(Me.textbox000.Properties("ForeColor"))
If lngRet = False Then Me.textbox000.Properties("ForeColor") = 0
End Sub
thanhtruong > 15-06-17, 11:47 AM
(30-10-15, 01:13 PM)tranthanhan1962 Đã viết:(30-10-15, 11:48 AM)thanhtruong Đã viết: ý là muốn thay đổi màu chữ bất kì, thích thì chọn mà này không thì chọn màu khác, giống như from nhập trả lời của thuthuataccess.com vậy. phải làm sao
Vậy thì viết code:
Tạo modul global
Mã:Option Compare Database
Option Explicit
Private Type COLORSTRUC
lStructSize As Long
hwnd As Long
hInstance As Long
rgbResult As Long
lpCustColors As String
Flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Const CC_RGBINIT = &H1
Private Const CC_FULLOPEN = &H2
Private Const CC_PREVENTFULLOPEN = &H4
Private Const CC_SHOWHELP = &H8
Private Const CC_ENABLEHOOK = &H10
Private Const CC_ENABLETEMPLATE = &H20
Private Const CC_ENABLETEMPLATEHANDLE = &H40
Private Const CC_SOLIDCOLOR = &H80
Private Const CC_ANYCOLOR = &H100
Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" _
(pChoosecolor As COLORSTRUC) As Long
Public Function aDialogColor(prop As Property) As Boolean
Dim x As Long, CS As COLORSTRUC, CustColor(16) As Long
CS.lStructSize = Len(CS)
CS.hwnd = hWndAccessApp
CS.rgbResult = Nz(prop.Value, 0)
CS.Flags = CC_SOLIDCOLOR Or CC_RGBINIT
CS.lpCustColors = String$(16 * 4, 0)
x = ChooseColor(CS)
If x = 0 Then
prop = RGB(255, 255, 255) ' White
aDialogColor = False
Exit Function
Else
prop = CS.rgbResult
End If
aDialogColor = True
End Function
Giả sử trên form có textbox có tên là textbox000. Tạo 2 command CmdDoiMauNen (đổi BackColor textbox) và CmdDoiMauKyTu (đổi ForeColor textbox)
Mã:Option Compare Database
Option Explicit
Private Sub CmdDoiMauNen_Click()
Dim lngRet As Boolean
lngRet = aDialogColor(Me.textbox000.Properties("BackColor"))
End Sub
Private Sub CmdDoiMauKyTu_Click()
Dim lngRet As Boolean
lngRet = aDialogColor(Me.textbox000.Properties("ForeColor"))
If lngRet = False Then Me.textbox000.Properties("ForeColor") = 0
End Sub
Nếu muốn lưu lại giá trị đã thay đổi thì lưu giá trị BackColor và ForeColor đã chọn cho textbox lên table. Khi Load Form thì set các giá trị đó cho textbox.
tranthanhan1962 > 15-06-17, 12:34 PM