UserControl не работает, помогите, pls/...

Создание, использование компонентов ActiveX
VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

UserControl не работает, помогите, pls/...

Сообщение VB-constructor » 06.08.2006 (Вс) 16:15

:?: Написал свой первый ActiveX Control, а он работать не хочет.
Задумка такая: нужно сделать что-то по типу shape-прямоугольник, (сам shape, как таковой меня не устраевает из-за того, что свойства width и height не могут быть отрицательными) из четырех line на UserControle/
Мои действия: сделал четыре свойства (не прикрепленные) x1,y1,x2,y2
Затем,
Код: Выделить всё
    With Line1
        .X1 = m_X1
        .X2 = m_X1
        .Y1 = m_Y1
        .Y2 = m_Y2
    End With

    With Line2
        .X1 = m_X1
        .X2 = m_X2
        .Y1 = m_Y2
        .Y2 = m_Y2
    End With
   
    With Line3
        .X1 = m_X2
        .X2 = m_X2
        .Y1 = m_Y1
        .Y2 = m_Y2
    End With

    With Line4
        .X1 = m_X1
        .X2 = m_X2
        .Y1 = m_Y1
        .Y2 = m_Y1
    End With

Поместил эту процедуру во все property let ///
По идее должен бы рисовать четыехуг, да не хочет.
(все line.visible = true, а их не видно при выполнении controla)
Человек рождён для того, чтобы достичь жизни...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.08.2006 (Вс) 18:03

ReadProperties и WriteProperties правильно реализовал?
Чтобы не ждать телепатов, лучше выложи полный код своего контрола.
Изображение

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 06.08.2006 (Вс) 18:24

ReadProperties и WriteProperties правильно реализовал?


У всех свойств оставил read/write, если об этом.

Чтобы не ждать телепатов, лучше выложи полный код своего контрола.

Код: Выделить всё
Option Explicit
'Default Property Values:
Const m_def_X1 = 4560
Const m_def_X2 = 2040
Const m_def_Y1 = 2760
Const m_def_Y2 = 2040
'Property Variables:
Dim m_X1 As Single
Dim m_X2 As Single
Dim m_Y1 As Single
Dim m_Y2 As Single

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=12,0,0,4560
Public Property Get X1() As Single
    X1 = m_X1
End Property

Public Property Let X1(ByVal New_X1 As Single)
    m_X1 = New_X1
    PropertyChanged "X1"
    DrawShape
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=12,0,0,2040
Public Property Get X2() As Single
    X2 = m_X2
End Property

Public Property Let X2(ByVal New_X2 As Single)
    m_X2 = New_X2
    PropertyChanged "X2"
    DrawShape
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=12,0,0,2760
Public Property Get Y1() As Single
    Y1 = m_Y1
End Property

Public Property Let Y1(ByVal New_Y1 As Single)
    m_Y1 = New_Y1
    PropertyChanged "Y1"
    DrawShape
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=12,0,0,2040
Public Property Get Y2() As Single
    Y2 = m_Y2
End Property

Public Property Let Y2(ByVal New_Y2 As Single)
    m_Y2 = New_Y2
    PropertyChanged "Y2"
    DrawShape
End Property

'Initialize Properties for User Control
Private Sub UserControl_InitProperties()
    m_X1 = m_def_X1
    m_X2 = m_def_X2
    m_Y1 = m_def_Y1
    m_Y2 = m_def_Y2
End Sub

'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

    m_X1 = PropBag.ReadProperty("X1", m_def_X1)
    m_X2 = PropBag.ReadProperty("X2", m_def_X2)
    m_Y1 = PropBag.ReadProperty("Y1", m_def_Y1)
    m_Y2 = PropBag.ReadProperty("Y2", m_def_Y2)
End Sub

'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

    Call PropBag.WriteProperty("X1", m_X1, m_def_X1)
    Call PropBag.WriteProperty("X2", m_X2, m_def_X2)
    Call PropBag.WriteProperty("Y1", m_Y1, m_def_Y1)
    Call PropBag.WriteProperty("Y2", m_Y2, m_def_Y2)
End Sub


Public Sub DrawShape()
    With Line1
        .X1 = m_X1
        .X2 = m_X1
        .Y1 = m_Y1
        .Y2 = m_Y2
    End With

    With Line2
        .X1 = m_X1
        .X2 = m_X2
        .Y1 = m_Y2
        .Y2 = m_Y2
    End With
   
    With Line3
        .X1 = m_X2
        .X2 = m_X2
        .Y1 = m_Y1
        .Y2 = m_Y2
    End With

    With Line4
        .X1 = m_X1
        .X2 = m_X2
        .Y1 = m_Y1
        .Y2 = m_Y1
    End With

End Sub

[/quote]
Человек рождён для того, чтобы достичь жизни...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.08.2006 (Вс) 18:45

VB-constructor писал(а):
ReadProperties и WriteProperties правильно реализовал?


У всех свойств оставил read/write, если об этом.

Не об этом. Но телепатия сработала, в ReadProperties ошибка :-)

замени её на этот код:
Код: Выделить всё
'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

    X1 = PropBag.ReadProperty("X1", m_def_X1)
    X2 = PropBag.ReadProperty("X2", m_def_X2)
    Y1 = PropBag.ReadProperty("Y1", m_def_Y1)
    Y2 = PropBag.ReadProperty("Y2", m_def_Y2)
End Sub


если хочешь, можешь аналогично подправить InitProperties
Изображение

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 06.08.2006 (Вс) 19:09

Сделал... Но - ничего. Может не в этом. (или не только в этом)?

Почему линии то на форме не видно?
Человек рождён для того, чтобы достичь жизни...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.08.2006 (Вс) 19:32

На моей видно. Но на всякий случай исправь InitProperties тоже -- вдруг и на твоей появятся.
Изображение

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 06.08.2006 (Вс) 21:54

А да, на моей тоже видно. Спасиба!
:D Самое смешное то, что я ее не увидел, потому что контрол не раздвинул...
Человек рождён для того, чтобы достичь жизни...


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList