Public Property Let BackColorText(ByVal New_BackColor As OLE_COLOR)
TextB.BackColor = New_BackColor
Text1.BackColor = TextB.BackColor
TextI.BackColor = TextB.BackColor
UserControl.BackColor = TextB.BackColor
PropertyChanged "BackColorText"
End Property
Public Property Get BackColorlist() As OLE_COLOR
BackColorlist = ListB.BackColor
End Property
Public Property Let BackColorlist(ByVal New_BackColor As OLE_COLOR)
ListB.BackColor() = New_BackColor
PropertyChanged "BackColorList"
End Property
Public Property Get ForeColorText() As OLE_COLOR
ForeColorText = TextB.ForeColor
End Property
Public Property Let ForeColorText(ByVal New_ForeColor As OLE_COLOR)
TextB.ForeColor = New_ForeColor
PropertyChanged "ForeColorText"
End Property
Public Property Get ForeColorList() As OLE_COLOR
ForeColorList = ListB.ForeColor
End Property
Public Property Let ForeColorList(ByVal New_ForeColor As OLE_COLOR)
ListB.ForeColor = New_ForeColor
PropertyChanged "ForeColorList"
End Property
Public Property Get FontText() As Font
Set FontText = TextB.Font
End Property
Public Property Set FontText(ByVal New_Font As Font)
Set TextB.Font = New_Font
Set ListB.Font = New_Font
PropertyChanged "FontText"
End Property
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
TextB.BackColor = PropBag.ReadProperty("BackColorText", &H80000005)
ListB.BackColor = PropBag.ReadProperty("BackColorList", &H80000005)
TextB.ForeColor = PropBag.ReadProperty("ForeColorText", &H80000012)
ListB.ForeColor = PropBag.ReadProperty("ForeColorList", &H80000012)
Set FontText = PropBag.ReadProperty("FontText", Ambient.Font)
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("BackColorText", TextB.BackColor, &H80000005)
Call PropBag.WriteProperty("BackColorList", ListB.BackColor, &H80000005)
Call PropBag.WriteProperty("ForeColorText", TextB.ForeColor, &H80000012)
Call PropBag.WriteProperty("ForeColorList", ListB.ForeColor, &H80000012)
Call PropBag.WriteProperty("FontText", TextB.Font, Ambient.Font)
End Sub
2. можно ли вызвать из кода PropertyPage, ну чтобы не только создатель программы но и пользователь мог менять через PropertyBrowser свойства?
3. Возник еще вопрос - как можно сделать так, чтобы например кликнул по этому контролу, а в конкретном текстбоксе произошли изменения? Ну т.е. проассоциировать мой контрол с каким-либо другим контролом
в свойстве пропиши findwindow и делай, что хочешь3. Возник еще вопрос - как можно сделать так, чтобы например кликнул по этому контролу, а в конкретном текстбоксе произошли изменения? Ну т.е. проассоциировать мой контрол с каким-либо другим контролом
' UserControl
Dim Targ as TextBox
...
Property Set(Target as textbox)
set targ=target
end property
...
private sub command1_Click()
targ.seltext="<" & targ.seltext & ">"
end sub
Сам хоть понял, что сказал?
Dim targ As Long
Property Set sendTextBox(Target as String)
targ = findwindow(Target, "")
SetWindowText targ, "текст"
end property
Сам хоть понял, что сказал?
4. Проблема: что-то я делаю не так (вернее как раз что-то не делаю) и после того как поменяю свойства в (Custom) [через PropPage] или даже через само окно свойств - свойства задаются только в дизайн-модэ, а в Рантайме опять стандартный.... что надо сделать?
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As Long, pCLSID As GUID) As Long
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function OleCreatePropertyFrame Lib "oleaut32.dll" (ByVal hWndOwner As Long, ByVal x As Long, ByVal y As Long, ByVal lpszCaption As Long, ByVal cObjects As Long, ByRef ppUnk As Long, ByVal cPages As Long, ByRef pPageClsID As GUID, ByVal lcid As Long, ByVal dwReserved As Long, ByVal pvReserved As Long) As Long
'
Public Sub ShowMyProperty(ByVal hWnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
'эту константу надо заменить на свою
Const myGeneralPage = "{CC72240A-CFB5-4124-A007-296F23BC7822}"
CLSIDFromString StrPtr(myGeneralPage), CLSID
OleCreatePropertyFrame hWnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
Public Sub ShowFontProperty(ByVal hWnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
CLSIDFromString StrPtr("{7EBDAAE0-8120-11CF-899F-00AA00688B10}"), CLSID
OleCreatePropertyFrame hWnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
Private Sub UserControl_DblClick()
ShowMyProperty hWnd, "Основные свойства", Me
RaiseEvent DblClick
End Sub
4. Проблема: что-то я делаю не так ...
Сейчас этот форум просматривают: Yandex-бот и гости: 113