|
|
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
'код модуля класса clsControlSH Public SH_Toggle As Boolean Public SH_form As frmSH 'в коде есть форма frmSH 'создаю экземпляр класса Set ControlSH = New clsControlSH '(сам экземпляр) ControlSH.SH_Togglee = True '(устанавливаю свойство) Set ControlSH.SH_form = New frmSH (то есть при создании экземпляра класса создается также экземпляр формы, который принадлежит экземпляру этого класса) Как из формы обратиться к свойствам и методам экземпляра класса, в котором содержится эта форма? Через имя_экземпляра_класса нельзя, так как экземпляр не один. Я так понимаю, надо как то получить ссылку на текущий экземпляр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 15:57 |
|
||
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
testing22, да, нужно получить ссылку. Можно ввести в модуле формы свойство, ссылающееся на экземпляр класса (получается жёсткая взаимная ссылка). Либо можно сделать в форме событие, при обработке которого класс возвращает форме ссылку на себя. Эта связь мягче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 18:11 |
|
||
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
Бенедикт, Cпасибо! Теперь полная ясность, буду делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 21:07 |
|
||
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
Бенедикт, Что-то не получается у меня сделать такое свойство формы. Я объявляю в форме паблик свойство с типом в виде класса, ссылку на экземпляр которого нужно туда записать, или с типом Object. Public MyObject As Object При создании экземпляра класса я записываю ссылку в это свойство: Set имя_экз_класса.form.MyObject = имя_экз_класса В обработчиках кнопок формы обращение к свойства экземпляра вот такого типа: Private Sub ToggleButton2_Click() MyObject.MyToggle = False 'устанавлаю булевое свойство экземпляра класса в false End Sub Но при создании и инициализации формы я получаю ошибку, так как при инициализации форма не знает что такое MyObject, а передать ссылку в виде параметра при создании формы я не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2009, 13:27 |
|
||
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
testing22Но при создании и инициализации формы я получаю ошибку, так как при инициализации форма не знает что такое MyObject, а передать ссылку в виде параметра при создании формы я не могу.Не знает, но а) зачем торопиться, почему нельзя выполнить эти действия не в Initialize, а позже (но перед показом формы), б) если уж невтрепёж, ссылку, как и любой другой параметр, можно передать неявно, например через глобальную сущность (переменную/функцию/свойство Get/объект). Пара замечаний: 1) По Код: plaintext 1. 2. 3. 2) По Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2009, 12:26 |
|
||
|
Как получить ссылку на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
Бенедикт, Спасибо! Советы Ваши обязательно учту. Со свойством не получалось потому, что у меня была ошибка в коде. При инициализации формы я устанавливал дефолтные значения контролов на ней, а в обработчиках этих контролов были события Change. Вот и получалось что у меня при создании формы срабатывал код из обработчиков, а в обработчках использовалось свойство формы, которое должно было содержать ссылку на экземпляр класса. А так как это свойство еще не было установлено, то получалась ошибка. Еще раз большое спасибо за помощь, вопрос исчерпан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2009, 15:28 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=180&tid=2178867]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 404ms |

| 0 / 0 |
