Страница: 1 |
Короче объявляю так: Private Type TPE Caption As String Group As String PodEl() As TPE 'хрень полная End Type А он мне, мол, так нельзя. А я ему по-другому: Private Type TPE2 El() As OCX_MenuXP_element_type End Type Private Type TPE Caption As String Group As String PodEl() As TPE2 End Type А он мне на TPE2 говорит что тип ещё не объявлен. Но как??? И ещё: Как меню добавить(где добавить там и удалить, где удалить там и...)?! ХЭЭЭЭЭЛП! С APIсковыми ф-ми возня непонятная, стандартные ср-ва урезанные!
Все используемые типы в типе должны быть объявлены в тексте ПЕРРЕД объявлением того самого типа Кто понял что я сморозил ? Да что ему надо это я понял, но вот как это забацать???? Вообще мне надо-то первый случай отделать(с 1м типом), чтоб он указывал сам на себя(но это не бесконечная рекурсия). А во 2м случае как ни крути всёравно error получается P.S. Я понял чё ты там сморозил. Тогда я не понял что сморозил ты Короче проба снимается, пришлось организовать с помощью класса, но хотелось бы найти решение - интересно знать. Но вижу что форумяне этого незнать. Значит так, объясняю: НАДО (повторяю - НАДО) ВОТ ТАК - ''''''''''''''''''''''''''''''''''' 1 Private Type TPE 2 Caption As String 3 Group As String 4 PodEl() As TPE 'хрень полная 5 End Type '''''''''''''''''''''''''''''''''''' Это понятно? Ладно, потом ответишь... Next Вот попробуй так написать, компиляра тебе в морду даст следующее (переведено) "Здравствуй Вася, пишу тебе из далекого процессора. Вот тут ты неправильно сделал,-указывает на строку 4,-быра сделай по-другому!" Понял??? т.е. тип "вызывает" сам себя и комп боится что это будет до бесконечности, а это сам знаешь чем грозит. Но прикол в том, что это до бесконечности не будет! N-ый массив PodEl() - будет EMPTY!!! Смешно? Понятно? Ну и загнул А зачем тебе такой изврат-то хоть ? Ума ни приложу куда это можно "засунуть" :D Военная тайна... Если скажу, то придется тебя убить... Тогда лучше промолчать уж оччень жить хоч Слуш, ну это ж бред полный, сам то хоть пойми что пишешь. Как ты надеешься определить тип на основе самого себя? Все поля в типе должны быть объявлены!!! Ты же хочешь реализовать бесконечную рекурсию, да еще и на основе неопределенного типа. Вот такая штука пройдет Private Type TPE Caption As String Group As String End Type Private Type TPE2 Caption As String Group As String PodEl() As TPE End Type А насчет Private Type TPE2 El() As OCX_MenuXP_element_type End Type он и будет говорить если OCX_MenuXP_element_type не объявлен! Верно, НО(опять это е@баное НО), по твоему плану: объявил я Per1 as TPE2 И что имею: per1.group per1.caption А вот per1.podel() уже нету! Это почему это? Option Explicit Private Type TPE Caption As String Group As String End Type Private Type TPE2 Caption As String Group As String PodEl() As TPE End Type Private Sub Form_Load() Dim Per1 As TPE2 Per1.Caption = "Hello" Per1.Group = "World" ReDim Per1.PodEl(10) Per1.PodEl(5).Caption = "Bye" Per1.PodEl(3).Group = "Ok" End Sub Хе, Не. Я наверно недописал. Смотри мне надо > Per.Podel().PeodEl().Podel()... хоть до смерти печатай. А получается как? А вот так > (верно podel есть ) per1.podel().Podel - нет! в типе TPE podel - нет! А, ну это ты размечтался... Делай массивом. Это тебе не функция, тут рекурсив не прокатит. VB это не поддерживает тема закрыта и что тут флудить. Читал как то в своё время МСДН +) Страница: 1 |
Вопрос: Рекурсивный тип
Добавлено: 01.05.04 18:26
Автор вопроса: Дмитрий Щапов
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 01.05.04 23:09
Номер ответа: 2
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #2
Добавлено: 02.05.04 07:04
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 02.05.04 12:09
Что вообще требуется, что есть такое рекурсивный тип, и почему два раза объявляется TPE... Я попросту не могу понять что же вообще требуется, объясни бестолковому
Номер ответа: 4
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #4
Добавлено: 02.05.04 22:11
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 03.05.04 01:41
Номер ответа: 6
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #6
Добавлено: 03.05.04 17:22
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 03.05.04 22:57
ится
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 05.05.04 10:06
Номер ответа: 9
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #9
Добавлено: 05.05.04 11:33
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 05.05.04 14:24
Номер ответа: 11
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #11
Добавлено: 06.05.04 13:49
Номер ответа: 12
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #12
Добавлено: 06.05.04 14:50
Номер ответа: 13
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #13
Добавлено: 06.05.04 18:47