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 FunctionOption 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 Subthanhtruong > 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