Как уничтожить Shape?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Jin
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 19.11.2004 (Пт) 17:13

Как уничтожить Shape?

Сообщение Jin » 14.12.2004 (Вт) 15:37

Здравствуйте!
На форме имеется некоторое количество Shape и Line. Нужно их уничтожить.
Set line1 = Nothing
не помогает. Из-за чего и как Быть?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.12.2004 (Вт) 16:03

Невидимыми делай...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Jin
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 19.11.2004 (Пт) 17:13

Сообщение Jin » 14.12.2004 (Вт) 16:18

Невидимыми не хочется - их там много, нечего их плодить, да и удалять нужно не все, а некоторые группы, боюсь, если делать невидимыми такая путаница начнется!

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 14.12.2004 (Вт) 17:00

Создавай массивы shape'ов и unload'ом их.. По другому - никак.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Jin
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 19.11.2004 (Пт) 17:13

Сообщение Jin » 14.12.2004 (Вт) 17:59

Попробую, но хочется понять почему не работает Set line1 = Nothing

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

Сообщение tyomitch » 14.12.2004 (Вт) 18:04

Потому что нельзя!
Потому что Line1 - это read-only свойство твоей формы.
Потому что такой язык.
Изображение

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 14.12.2004 (Вт) 18:05

А что по твоему значит конструкция вида :?
Код: Выделить всё
Set SomeObject = Nothing


Shape, это вообще иструкции VM basic'а рисовать через API фигуры

[edit]tyomitch, сорь за дублирование, я второй, как обычно :roll: [/edit]

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение tyomitch » 14.12.2004 (Вт) 18:30

xolod, так бы работало:
Код: Выделить всё
Dim s As Shape
Set s = Line1
Set s = Nothing

Так что дело не в том, инструкции это или не инструкции. Просто s - это переменная, а Line1 - read-only свойство.
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.12.2004 (Вт) 18:38

[offtop]tyomitch, а эта проблема не решается с помощью твоей чудо-обёртки!? :([/offtop]

Jin
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 19.11.2004 (Пт) 17:13

Сообщение Jin » 14.12.2004 (Вт) 18:46

Какое же это свойство, когда пишу:
Код: Выделить всё
Dim Line1 as Line
Dim c as Control
Set Line1 = Controls.Add("VB.Line", "Line1")
Set Line2 = Controls.Add("VB.Line", "Line2")
...
Set Line99 = Controls.Add("VB.Line", "Line99")
....
For Each c In Me.Controls
    if TypeName(c)="Line" then Set c = Nothing
Next

По-моему это все-таки объект, а не свойство

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 14.12.2004 (Вт) 18:49

Ты бы сразу сказал.. Все-таки стоит использовать Controls.Remove :wink:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение tyomitch » 14.12.2004 (Вт) 18:50

Что мешает свойству быть объектом?
Может быть числом, может - строкой, а может - объектом, как в этом случае. Никаких проблем.
Изображение

Jin
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 19.11.2004 (Пт) 17:13

Сообщение Jin » 14.12.2004 (Вт) 19:11

Всем спасибо.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 25

    TopList  
cron