Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VB: дерево 
:(
    Опции темы
lorien
Дата 26.4.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



Помогите плиз. Надо реализовать именно на VBA кое-какой алгоритм, но не в алгоритме дело.
В общем я хочу реализовать дерево (у каждого узла может быть несколько веток)

Как это ваще на бэйсике то делать? :-/ Я на бэйсике никогда не программил - так что вообще в непонятках полных.
PM WWW   Вверх
Naghual
Дата 26.4.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



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

Создай класс TreeItem со всеми необходимыми свойствами.
Создай класс ItemsCollection который будет хранить в себе Collection класса TreeItem.
В класс TreeItem, добавь свойство Childrens as ItemsCollection.
А в класс ItemsCollection добавь свойство Parent as TreeItem.

Вот, примерно, и вся структура дерева.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
cardinal
Дата 26.4.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Откуда не помню, но вот она - структура:

Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  Tree_Structure.zip


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
lorien
Дата 26.4.2005, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



А где можно почитать про ООП в VB6 ?
Чё-то не получается.
Сделал класс:
Код

Public parent As Tree
Public label As String
Public Childs As Collection

Public Function Show()
    Dim str As String
    For Each child In Childs
        str = str & child.Show()
    Next
Show = str
End Function

Потом в таком коде вылазит ошибка:
Код

Dim head As New Tree

Sub Test3()
    head.label = "1"
    Dim item As New Tree
    item.label = "33"
    head.Childs.Add(item, "33")  'Тут вылазит ошибка Object variable or With block variable not set (Error 91)
    MsgBox head.Show
End Sub


Пардон, если там полная фигня, ну не работал я раньше с VB...

Это сообщение отредактировал(а) lorien - 26.4.2005, 23:56
PM WWW   Вверх
Naghual
Дата 27.4.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Вероятнее всего, у тебя не проинициализированна Childs.
Тебе в VB или VBA нужно?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
lorien
Дата 27.4.2005, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



А разве есть разница? Я тут скачал. "vb and vba in a nutshell" о'рейли.. Вроде проясняться стало всё... Хотя там тоже что-то про ООП мало написано, а может и писать то нечего? %-)
Я не понял как конструктор сделать...
Код
 Вероятнее всего, у тебя не проинициализированна Childs.

Да, ты прав. Всё заработало после замены public Childs As Collection на public Childs as new Collection

Это сообщение отредактировал(а) lorien - 27.4.2005, 09:46
PM WWW   Вверх
Naghual
Дата 27.4.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Цитата
А разве есть разница?

Да есть. И принципиальная.
Хотя, для твоего вопроса наверное таки нет разницы. smile


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Exception
Дата 27.4.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Вообще-то VB 6/VBA не особо оопэшные. Для таких целей больше подходит VB .NET (если под дотнет) или C++ / Delphi. Просто если тебе нужно наследование и все такое... конструкторы, деструкторы...
PM   Вверх
lorien
Дата 27.4.2005, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



Мне ничего не нужно. Просто написать эту программу и забыть VB как страшный сон. Я фрилансер и зачем-то поставил бид на проект на VB.
PM WWW   Вверх
lorien
Дата 27.4.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



Хочу рекурсивную процедуру написать. Передаю в процедуру объекта, а басик ругаецца:
Код

Set node = New Tree
node.label = records(1).value
buffer.add records(1).value
For Each link In records(1).links
    node.Childs.add link
Next
    
test (node)

Object doesn't support this property or method

Как передавать объекты в процедуры?
PM WWW   Вверх
Naghual
Дата 27.4.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Нужно смотреть что такое link и что такое links.
Да и вообще, мало информации. Кто тебя знает, что ты там за дерево наваял.
Добавлено @ 14:31
И потом. Функция Add у тебя параметризованная - к примеру Function Add(Caption as String, Key as String).
Создай дополнительную функцию:
Function AddObject(ChildNode as Tree)




--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
lorien
Дата 27.4.2005, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.11.2004
Где: omsk

Репутация: нет
Всего: 3



Так там всё страшно, я уже всё понял и осознал.
Скажите теперь лучше как можно коллекцию скопировать?
PM WWW   Вверх
Exception
Дата 27.4.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Поконкретнее можешь?
PM   Вверх
Naghual
Дата 27.4.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Передачей параметру функции объявленного ByVal.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
cardinal
Дата 27.4.2005, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Модератор: Пожалуйста, один топик - один вопрос.
Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.