Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Работа с массивом объектов Добавлено: 26.01.07 07:09  

Автор вопроса:  sasha
Пишу прогу на vb чтот типо рисования схем...
Есть массив объектов.
Добавление...

load объект(индекс) ' индек увеличивается

удоление объекта...

unload обект(индекс)

Как сделать что бы индекс ишел по порядку? т.е. если мы
после удоления добовляем объект то значении индекс продолжает идти с того же значения что и до удоления...
если мы удоляем объект с индексом меньше последнего то получается пустое место... в дальнейшем ссылка на которое вызывает ошибку...
если делать смещение и упорядочевание индексА объекта то выдается ошибка...."Не может назначить свойство, свойство только для чтения".

Подскажите пожалуйста, как подругому можно изменять индекс массива объектов?

For индекс = ИндексУдоленногоОбъекта + 1 To МаксимальныйИндекс
объект(индекс).Index = индекс - 1
Next индекс

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #1
Добавлено: 26.01.07 09:29
"Не может назначить свойство, свойство только для чтения".
это сойство и есть только для чтения. его нельзя назначить

Подскажите пожалуйста, как подругому можно изменять индекс массива объектов?

Только unload

Совет, свяжи ссылки с индексами... если удаляешь индекс, соответственно изменяй ссылку ;)

Ответить

Номер ответа: 2
Автор ответа:
 Сашок



ICQ: 387093431 

Вопросов: 1
Ответов: 70
 Профиль | | #2 Добавлено: 26.01.07 22:12
Знаешь, я вообще-то не совсем люблю массивы. Мне проще использовать коллекции.
В колекцию можно много чего "впихнуть" - т.е. переменные разного типа, даже и сами массивы.

Вот краткий пример:


    Dim a As New Collection
    
    Dim s As New FileSystemObject
    
    Dim c(1) As Object
        
        Set c(0) = s
        Set c(1) = s
        
        a.Add (c)
        a.Add (c)
        a.Add (c)
        a.Remove (1)


Попробуй, и тебе понравится

Ответить

Номер ответа: 3
Автор ответа:
 Сашок



ICQ: 387093431 

Вопросов: 1
Ответов: 70
 Профиль | | #3 Добавлено: 26.01.07 22:14
Кроме того сразу решается проблема
Как сделать что бы индекс ишел по порядку?

Так что дерзай!

Ответить

Номер ответа: 4
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #4
Добавлено: 26.01.07 23:28
да, коллекции рулят

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 27.01.07 01:31
Я бы сделал так, если выгружаем не последний, то на самом деле не выгружаем его, а делаем visible=false. Соответственно проверяем при добавлении на незанятые контролы... если находим где-то в середине с visible=false, то вместо загрузки контрола, делаем его просто видимый...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам