Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,734
1

Установка объекта в значение Nothing при создании класса отменяется?

01.10.2011, 17:18. Показов 3060. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub UserForm_Initialize()
    Dim ButtonCount As Integer
    Dim ctl As Control
    
'   Создание объектов кнопок
    ButtonCount = 0
    For Each ctl In UserForm1.Controls
        If TypeName(ctl) = "CommandButton" Then
            If ctl.Name <> "OKButton" Then 'Пропуск кнопки OKButton
                ButtonCount = ButtonCount + 1
                ReDim Preserve Buttons(1 To ButtonCount)
                Set Buttons(ButtonCount).ButtonGroup = ctl
            End If
        End If
    Next ctl
    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set Buttons() = Nothing
End Sub
действительно отменяется или пишется в строке 17 Set Buttons() = Nothing по другому???
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2011, 17:18
Ответы с готовыми решениями:

Использование объекта одного класса при создании нового класса
Добрый вечер. У меня такая проблема. Есть готовый класс L2 - список, на его основе нужно создать...

Ошибка при создании объекта класса
Здравствуйте. В коде ниже при попытке вывести код на экран возникает следующая ошибка: prog.cpp:...

Ошибка при создании объекта класса
Приветствую, форумчане! Возник вопрос при создании объекта класса String. Что самое интересное,...

Ошибка при создании объекта класса
Есть класс, создаю объект, выходит ошибка &quot;cannot allocate an object of abstract type 'Cat'&quot; Что...

3
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.10.2011, 20:18 2
Как объявлен массив Buttons? Что такое .ButtonGroup? Для очистки массива используйте
Visual Basic
1
Erase Buttons
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,734
01.10.2011, 20:25  [ТС] 3
видимо ответ на вопрос установка объекта в значение Nothing при создании класса отменяется???отменяется!!!
пробовал по Вашей подсказке
Цитата Сообщение от Казанский Посмотреть сообщение
Erase Buttons
не жуётся
Вложения
Тип файла: xls Демонстрация модуля класса multiple buttons.xls (46.5 Кб, 72 просмотров)
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.10.2011, 00:13 4
Так зачем тут пытаться очистить массив в конце процедуры? Ведь смысл в том, чтобы он оставался в памяти, пока существует форма, поэтому он объявлен в модуле формы, а не в процедуре.
Кстати, можно создать не массив, а коллекцию контролов. Это не дает никаких преимуществ в данном случае, но более "объектно ориентировано":
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Dim Buttons As New Collection
 
Private Sub UserForm_Initialize()
    Dim BtnClsIns As BtnClass
    Dim ctl As Control
    
'   Создание объектов кнопок
    For Each ctl In UserForm1.Controls
        If TypeName(ctl) = "CommandButton" Then
            If ctl.Name <> "OKButton" Then      'Пропуск кнопки OKButton
                Set BtnClsIns = New BtnClass    'новый экземпляр класса BtnClass
                Set BtnClsIns.ButtonGroup = ctl 'связывание его с контролом
                Buttons.Add BtnClsIns           'добавление его к коллекции
            End If
        End If
    Next ctl
End Sub
1
02.10.2011, 00:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2011, 00:13
Помогаю со студенческими работами здесь

Ошибка при создании объекта класса
Привет! Чтобы на протяжении всего поста было понятно о чём я говорю,в конце поста прикреплю код....

Не выводит свойство класса при создании объекта
class Test { public $b; public function __construct() { echo $this-&gt;b; } }...

Наследование от класса, передаваемого при создании объекта
Как сделать что то типа этого? public class cl&lt;T&gt; : T {}

При создании объекта класса обнуляется массив
При создании объекта одного класса в другому, в первом классе массив обнуляется, все значения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru