| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > VB: дерево |
| Автор: lorien 26.4.2005, 20:00 |
| Помогите плиз. Надо реализовать именно на VBA кое-какой алгоритм, но не в алгоритме дело. В общем я хочу реализовать дерево (у каждого узла может быть несколько веток) Как это ваще на бэйсике то делать? :-/ Я на бэйсике никогда не программил - так что вообще в непонятках полных. |
| Автор: Naghual 26.4.2005, 20:14 |
| При помощи классов, я думаю, будет проще, нагляднее и понятнее. Создай класс TreeItem со всеми необходимыми свойствами. Создай класс ItemsCollection который будет хранить в себе Collection класса TreeItem. В класс TreeItem, добавь свойство Childrens as ItemsCollection. А в класс ItemsCollection добавь свойство Parent as TreeItem. Вот, примерно, и вся структура дерева. |
| Автор: cardinal 26.4.2005, 20:47 |
| Откуда не помню, но вот она - структура: |
| Автор: lorien 26.4.2005, 23:55 | ||||
| А где можно почитать про ООП в VB6 ? Чё-то не получается. Сделал класс:
Потом в таком коде вылазит ошибка:
Пардон, если там полная фигня, ну не работал я раньше с VB... |
| Автор: Naghual 27.4.2005, 09:17 |
| Вероятнее всего, у тебя не проинициализированна Childs. Тебе в VB или VBA нужно? |
| Автор: lorien 27.4.2005, 09:42 | ||
| А разве есть разница? Я тут скачал. "vb and vba in a nutshell" о'рейли.. Вроде проясняться стало всё... Хотя там тоже что-то про ООП мало написано, а может и писать то нечего? %-) Я не понял как конструктор сделать...
Да, ты прав. Всё заработало после замены public Childs As Collection на public Childs as new Collection |
| Автор: Naghual 27.4.2005, 09:57 | ||
Да есть. И принципиальная. Хотя, для твоего вопроса наверное таки нет разницы. |
| Автор: Exception 27.4.2005, 10:04 |
| Вообще-то VB 6/VBA не особо оопэшные. Для таких целей больше подходит VB .NET (если под дотнет) или C++ / Delphi. Просто если тебе нужно наследование и все такое... конструкторы, деструкторы... |
| Автор: lorien 27.4.2005, 10:45 |
| Мне ничего не нужно. Просто написать эту программу и забыть VB как страшный сон. Я фрилансер и зачем-то поставил бид на проект на VB. |
| Автор: lorien 27.4.2005, 14:06 | ||
Хочу рекурсивную процедуру написать. Передаю в процедуру объекта, а басик ругаецца:
Object doesn't support this property or method Как передавать объекты в процедуры? |
| Автор: Naghual 27.4.2005, 14:28 |
| Нужно смотреть что такое link и что такое links. Да и вообще, мало информации. Кто тебя знает, что ты там за дерево наваял. Добавлено @ 14:31 И потом. Функция Add у тебя параметризованная - к примеру Function Add(Caption as String, Key as String). Создай дополнительную функцию: Function AddObject(ChildNode as Tree) |
| Автор: lorien 27.4.2005, 15:42 |
| Так там всё страшно, я уже всё понял и осознал. Скажите теперь лучше как можно коллекцию скопировать? |
| Автор: Exception 27.4.2005, 15:45 |
| Поконкретнее можешь? |
| Автор: Naghual 27.4.2005, 16:03 |
| Передачей параметру функции объявленного ByVal. |
| Автор: cardinal 27.4.2005, 19:36 |
| Модератор: Пожалуйста, один топик - один вопрос. Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27 |
| Автор: lorien 1.5.2005, 08:39 | ||||
Ты хочешь чтобы я засорил форум кучей чайниковых вопросов, что ли?
Неа, коллекция изменяется.Вот пример
Получим сообщение "13,666" |