Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
uncle_gm

Проблема доступа к Default Property в VB6sp6

28.02.2007, 13:32. Показов 1728. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пусть имеется класс (например, ArrayClass), полем которого является массив:
Code
1
2
3
4
5
6
7
Private mArr(24, 24) As Boolean
Public Property Get Arr(x As Byte, y As Byte) As Variant
Arr = mArr(x, y)
End Property
Public Property Let Arr(x As Byte, y As Byte, ByVal vNewValue As Variant)
Let mArr(x, y) = vNewValue
End Property
Причем, свойство Arr - Default Property
Тогда код,типа :
Code
1
2
3
4
5
6
Dim tmp As New ArrayClass
...
tmp(0, 0) = True
tmp(1, 1) = True
Debug.Print "tmp(0, 0) =" & tmp(0, 0)
Debug.Print "tmp(1, 1) =" & tmp(1, 1)
работает без проблем. Т.е. без проблем производится присвоение и чтение элементов массива посредством Default Property - Arr.
Если же мы включаем ArrayClass в качестве поля данных в другой класс, например(ContClass):
Code
1
Public mArrayClass As New ArrayClass
то попытка присвоения, типа:
Code
1
2
Dim tmp As New ContClass
tmp.mArrayClass(0, 0) = True
вызывает ошибку времени во время исполнения "Wrong number of arguments or invalid property assignment".
Хотя чтение происходит без проблем:
Code
1
debug.print "tmp.mArrayClass(0, 0)=" & tmp.mArrayClass(0, 0)
Проблема решается путем явного указания свойства:
Code
1
tmp.mArrayClass.Arr(0, 0) = True
Но код при этом теряет свою читабельность.
Это особенно заметно при большем уровне вложенности классов.
Кто-нибудь может подсказать способ решения данной проблемы?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2007, 13:32
Ответы с готовыми решениями:

Ошибка: Class does not have a default property
Выдает ошибку "E2149 Class does not have a default property" на ' G:=StrToFloat(StringGrid2); ' .Не могу понять почему. Весь код ниже ...

Ошибка: E2149 class does not have a default property
не понимаю где ошибка procedure TForm2.Button1Click(Sender: TObject); var iq: integer; begin listbox1.MultiSelect:=true; ...

Проблема коннекта через ODBC: Data source name not found and no default driver specified /sbms/main.asp, line 72
Помогите. На Windows 98 все работало просто замечательно. Поставил Windows XP и IIS 5.0 При попытке выполнить следующий код: Set Conn...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2007, 13:32
Помогаю со студенческими работами здесь

Где код предпочтительнее писать? Default.aspx.vb или Default.aspx?
не так давно сел за NET и сразу же на FW2. Пишу неболшое приложение на ASP.NET (VB) И обратил внимание на следующий момент:...

Property Get и Property Let Странное поведение
Здравствуйте, Господа. Сразу к делу. Написал UserControl, объявил в нём весьма безобидные свойства: Dim FDisplayedField As String ...

Проблема с установкой прав доступа
День добрый! Подскажите в чем может быть проблема: при закачке архива на VPS, и его последующей распаковке стали автоматически...

Проблема: нет доступа к файлу.
Sozdaju programmno file Excel dlja exporta dannih iz Grida: fileExcel = 'C: est.xls' objFileStream = New FileStream(fileExcel,...

Проблема с правами доступа к файлам
Всем доброго времени суток. Недавно обновился на Lion, после чего возникла необходимость создать в системе вторую учетную запись, под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru