Страница: 1 | 2 |
Вопрос: UserControl
Добавлено: 16.09.05 10:08
Автор вопроса: gvozd | Web-сайт:
Создаю UserControl, на нем два ImageBox'а у которых свойство Picture связано с свойствами UserControl'а (NormalPicture = imgNormal.Picture, PressedPicture = imgPressed.Picture). Потом цепляю картинки к этим свойствам, запускаю проект - пусто, останавливаю в этих свойствах None. В чем проблема?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #1
Добавлено: 16.09.05 11:19
Так, на всякий,
... А ты UserControl к проэкту подключил? )
Номер ответа: 2
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #2
Добавлено: 16.09.05 11:29
Е-мое, конечно подключил, я уже из формы эти свойства и прописываю.
Номер ответа: 3
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #3
Добавлено: 16.09.05 11:36
Unknown Lamer, Я ПОРАЖЕН!!
2gvozd, попробуй прописывать в UserControl'e, а если это невозможно, то проверь, ведь у тебя в контроле есть код, который задает эти свойства, верно?
Вероятно, что он не работает. Проверь, при каком событии это происходит, добавь рядом строчку
Если при изменении свойст есть Msgbox, то... Незнаю...
А если нету, значит че то с событиями перепутал...
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 16.09.05 11:38
Лучше бы код здесь подвесил. Кстати, Set тоже в таких сулчаях не мешает.
Номер ответа: 5
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #5
Добавлено: 16.09.05 12:11
2Empro:
Ненадо поражаться, Откуда я знаю что он это сделал? Ато все будут баги искать, а gvozd просто забыл подключить польз. контрол...
2gvozd:
Правильно ли я понял, тебе просто необходимо увидать в своем проэкте картинки из UserControl?
Тогда ненадо прописывать его в код!! Подключай его как компонент и будет тебе твоя картинка, а повезет - даже две
зы ненадо писать, что я туплю... может не так понял, бывает )
Номер ответа: 6
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #6
Добавлено: 16.09.05 12:35
Короче, я делаю кнопку, она должна западать, отсюда и два Имейджа - один зажатый, другой - нет.
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 16.09.05 13:01
Посмотри свойства контрола, типа Windowless, ClipControls, AutoRedraw, HasDC и т.п. Больше без кода сказать трудно
Номер ответа: 8
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #8
Добавлено: 16.09.05 18:52
Сейчас проделал эту операцию с помощью Визарда UserControl. Работает на ура. Не с тем связи делаешь, наверно.
NormalPicture Property связан с Image1 member Picture
применять
Set UserControl1.Picture = UserControl1.NormalPicture
Номер ответа: 9
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #9
Добавлено: 16.09.05 21:56
2||Unknown Lamer||:
как он мог не подключить его к проекту, если он видит что изображ. нет! не глупи!
2gvozd:
попробуй юзать готовые команд бутоны. без имадж бокстов, на чистом айпи?!
Номер ответа: 10
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #10
Добавлено: 16.09.05 22:02
2gvozd:
смотри мыло. выслал пример.
Номер ответа: 11
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #11
Добавлено: 17.09.05 09:08
Barsik, это немного не то... Мне нужно, чтобы при нажатии отображалась другая картинка, и хочется, чтобы все обрабатывалось внутри контрола.
Вот код моего контрола:
'Default Property Values:
Const m_def_IsPressed = 0
'Property Variables:
Dim m_IsPressed As Boolean
'Event Declarations:
Event Click() 'MappingInfo=imgButton,imgButton,-1,Click
Event DblClick() 'MappingInfo=imgButton,imgButton,-1,DblClick
Event KeyDown(KeyCode As Integer, Shift As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyDown
Event KeyPress(KeyAscii As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyPress
Event KeyUp(KeyCode As Integer, Shift As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyUp
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseDown
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseMove
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseUp
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=UserControl,UserControl,-1,Enabled
Public Property Get Enabled() As Boolean
Enabled = UserControl.Enabled
End Property
Public Property Let Enabled(ByVal New_Enabled As Boolean)
UserControl.Enabled() = New_Enabled
PropertyChanged "Enabled"
End Property
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=UserControl,UserControl,-1,Refresh
Public Sub Refresh()
UserControl.Refresh
End Sub
Private Sub imgButton_Click()
RaiseEvent Click
End Sub
Private Sub imgButton_DblClick()
RaiseEvent DblClick
End Sub
Private Sub UserControl_Click()
If IsPressed = False Then
IsPressed = True
imgPressed.Visible = True
imgNormal.Visible = False
Else
IsPressed = False
imgNormal.Visible = True
imgPressed.Visible = False
End If
End Sub
Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
RaiseEvent KeyDown(KeyCode, Shift)
End Sub
Private Sub UserControl_KeyPress(KeyAscii As Integer)
RaiseEvent KeyPress(KeyAscii)
End Sub
Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer)
RaiseEvent KeyUp(KeyCode, Shift)
End Sub
Private Sub imgButton_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseDown(Button, Shift, X, Y)
End Sub
Private Sub imgButton_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseMove(Button, Shift, X, Y)
End Sub
Private Sub imgButton_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseUp(Button, Shift, X, Y)
End Sub
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=imgNormal,imgNormal,-1,Picture
Public Property Get NormalPicture() As Picture
Set NormalPicture = imgNormal.Picture
End Property
Public Property Set NormalPicture(ByVal New_NormalPicture As Picture)
Set imgNormal.Picture = New_NormalPicture
PropertyChanged "NormalPicture"
End Property
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=imgPressed,imgPressed,-1,Picture
Public Property Get PressedPicture() As Picture
Set PressedPicture = imgPressed.Picture
End Property
Public Property Set PressedPicture(ByVal New_PressedPicture As Picture)
Set imgPressed.Picture = New_PressedPicture
PropertyChanged "PressedPicture"
End Property
'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=0,0,0,0
Public Property Get IsPressed() As Boolean
IsPressed = m_IsPressed
End Property
Public Property Let IsPressed(ByVal New_IsPressed As Boolean)
m_IsPressed = New_IsPressed
PropertyChanged "IsPressed"
End Property
'Initialize Properties for User Control
Private Sub UserControl_InitProperties()
m_IsPressed = m_def_IsPressed
End Sub
'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
UserControl.Enabled = PropBag.ReadProperty("Enabled", True)
Set Picture = PropBag.ReadProperty("NormalPicture", Nothing)
Set Picture = PropBag.ReadProperty("PressedPicture", Nothing)
m_IsPressed = PropBag.ReadProperty("IsPressed", m_def_IsPressed)
End Sub
Private Sub UserControl_Resize()
imgButton.Width = UserControl.Width
imgButton.Height = UserControl.Height
imgNormal.Width = UserControl.Width
imgNormal.Height = UserControl.Height
imgPressed.Width = UserControl.Width
imgPressed.Height = UserControl.Height
End Sub
'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True)
Call PropBag.WriteProperty("NormalPicture", Picture, Nothing)
Call PropBag.WriteProperty("PressedPicture", Picture, Nothing)
Call PropBag.WriteProperty("IsPressed", m_IsPressed, m_def_IsPressed)
End Sub
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 18.09.05 00:29
дело в том что Public Property Set NormalPicture вызывается только когда в IDE устанавливаешь свойство NormalPicture, в IDE оно и прорисовало картинку. Далее когда запускаешь программу читает свойства контролов
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
...
а здесь у тебя фигня
Set Picture = PropBag.ReadProperty("NormalPicture", Nothing)
Set Picture = PropBag.ReadProperty("PressedPicture", Nothing)
т.е. ты просто присвоил переменной Picture то что в PropBag.ReadProperty, а оно у тебя Nothing. Это не всё... ты ж присвоил только переменной Picture картинку (предположим что Nothing нестоит), а далее? где же какие-то присвоения изображения ImageBox'ам ??
Номер ответа: 13
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #13
Добавлено: 19.09.05 11:51
Всем спасибо. Проблема решена.
Номер ответа: 14
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #14
Добавлено: 19.09.05 19:04
покаж решение
Номер ответа: 15
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #15
Добавлено: 19.09.05 19:33
Да. Интересно же.