powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модуль класса - нужен ли он нам?
27 сообщений из 27, показаны все 2 страниц
Модуль класса - нужен ли он нам?
    #32183196
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа, никак не могу вловить главной изюменки, для чего нужна эта прибамбаська в Access'е. Дань моде, что ли? Объекты в VBA "ущербные", не поддерживают унаследование и переопределения свойств, а без этого объект как бы и не объект. Вот недавно был примерчик с квадратиками. К лейбу (объект А) прицепляют другой объект пользователя (объект Б) получается связка двух объектов А+Б. При этом на каждый объект типа А создается объект типа Б. Почему просто не управлять объектом А через функции и процедуры? Зачем каждый раз создавать новый экземпляр программного кода? Ведь нельзя ж просто подменить в форме Label на MyLabel, а без этого какой смысл? Где тут красота программирования?
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183216
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А вообще без классов было бы лучше?
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183229
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объекты в VBA "ущербные", не поддерживают унаследование и переопределения свойств
Да сам ты ущербный (шютка)
В VB/VBA - COM-овская объектно-ориентированная модель. Это COM не поддерживает наследование реализации, ну а вслед за ним все com-объекты которыми мы пользуемся. У COM-овской модели свои плюсы, свои минусы. Не надо сравнивать толстое с теплым (C++ и COM).
Почему то все считают, что есть только одна объектно-ориентированная схема - та, которая в C++. Так ведь это далеко не так. Это всего лишь одна из реализаций идеи ООП. Одна из самых распространенных. Далеко не факт что лучшая. Я не специалист по SmallTalk, но по-моему С++ отдыхает по сравнению с ним. Это так, к примеру.
Скажу по секрету. Если ты заглянешь в VB.Net - ты потом будешь говорить что в C++ классы ущербные
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183247
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще без классов было бы лучше?
Да фиг его знает. Убедите что с ними лучше, а то уйду с вадей в монастырь.

2ЛП
Повторяю вопрос: "Где тут красота программирования?"
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183253
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я спрашиваю: "В чем сила, брат?" (с) к/ф "Брат"
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183260
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где здесь? В твоем первом посте? Так почему бы и в C++ вместо конструкции ObjectName.SomeMethod() не использовать SomeFunction(ptrSomeObjectPointer)? Где тут красота - непонятно....
Зачем каждый раз создавать новый экземпляр программного кода
Между прочем - он и не создается. Данные - новый экземпляр, а вот код адын на всех (если не SingleUse канешна).
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183268
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что классы мешают жить?
Убедите, что это так. И тогда тоже уйду с вадей и V. Motchulsky в монастырь (надеюсь в женский и вольнонаемником?).
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183282
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю как насчет красоты, но на основе одного модуля класса (и кучки обычных модулей), я сделал:
1. Ресайзинг формы под различное разрешение (из Гетца спер с незначительными доработками по ListView)
2. Единый итерфейс журналов
3. Управление настройками формы (шрифт, цвет и т.п.)
4. Управление отображением ListView (сохраняемая сортировка и размеры стобцов, отображение различных записей разным цветом)
5. Единообразное меню для управления данными из этого журнала (Открытие/Удаления любых выделнных записей, поиск в журнале, печать журнала, создание новых записей и т.п.)

и главное- это занимает несколько строк в форме,
создается за несколько минут путем копирования любого из журналов и простановкой нескольких свойств.
Надо будет что-то дабавить - делаешь изменение в одном месте.
Одним словом - нормализация. А это слово вам всем должно быть хорошо знакомо.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183293
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одним словом - нормализация. А это слово вам всем должно быть хорошо знакомо
Угу. Я как сказал начальнику, что собираюсь заниматься нормализацией кода - он сначала поулыбался, а теперь этот термин сам вовсю использует.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183375
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лоху

Ну и как закончил нормализацию кода?
Думаю - нет...
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183396
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она идет непрерывно уже этак года полтора :)
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183476
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно ли какими - нибудь ухищрениями используя модули класса или альтернативные активХ контролы сделать привязку картинки к источнику данных из рекордсета формы ?

грубо говоря добавить свойство дата в которое нужно поместить имя источника данных из которого брать содержимое файла для свойства picturedata ?
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183587
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky:
Если всё ещё интересно - глянь пару примерчиков и попробуй переделать их так, чтобы не использовать модуль класса. Думаю так тебе будет наиболее наглядно и понятно ;)

http://am.rusimport.ru/msaccess/topic.aspx?ID=216
http://am.rusimport.ru/msaccess/topic.aspx?ID=248
http://am.rusimport.ru/msaccess/topic.aspx?ID=187
http://am.rusimport.ru/msaccess/topic.aspx?ID=22
(в общем то наверное хватит, но если там порыться, то ещё можно найти)
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183651
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое "нормализация кода"? (Простите за дремучесть). Я слышал только про нормализацию структуры БД...
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183656
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это когда ни один оператор в программе не повторяется
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183672
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый fedd, вы пропустили первый уровень нормализации КОДА - атомарность :)
А вообще-то, wara, этот термин "нормализация" по отношению к коду только в местными гуру употребляется, ибо и так понимают, об чем речь... Обычно, все же, используется термин "оптимизация кода"... //а fedd - шутнииик

Кстати, у меня вопрос, попадающий в тему топика: "В чем смысл жизни?" :)
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183705
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2am (a_mitin)
Пока примерчики не читал, но все еще интересно. С++ не знаю. Поэтому на абстрактном языке (судя по всему на С++ также)
К примеру есть процедура

Procedure PrintData(A as object, B as object)
А.Print
B.Print
End Procedure

Удобно. Красиво. Процедуру пишем один раз, в зависимости от того как появляется новый тип объекта, пишем новый метод Print и передаем новый объект в качестве аргумента. Без объектов пришлось бы каждый раз переписывать процедуру. Пример простой. Сможет ли кто, мне также просто пояснить ипользование классов в VBA?
2 Senin Viktor.
Уверен, что все 5 пунктов можно сделать и без модуля класса, без повторения кода.
2 Витал
А что классы мешают жить?
Нет конечно. Только пока потребности в них не вижу. "Сижу в 95" а хотелось бы хотя бы в 98.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183712
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"- Видишь суслика?
- Нет!
- И я не вижу. А он есть!..." (с) ДМБ

P.S. Кстати, ты привел хороший пример, ведь объект, по большому счету, это и есть экземпляр класса.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183720
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжаю о сусликах.
Посмотрел пример: (самый простой и читабельный)
http://am.rusimport.ru/msaccess/topic.aspx?ID=22
Вот альтернатива:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function OpenMyForm(F As Form)
MsgBox  "Делаем настройку полей." , ,  "Loading" 
F.OnClose =  "=SaveMyForm([Form])" 
End Function

Public Function SaveMyForm(F As Form)
MsgBox  "Сохраняем настройку полей" , ,  "Saving" 
End Function

В свойстве OnOpen формы frm_sub пишем "=OpenMyForm([Form])", при этом модуль в форме не нужен и текста писать меньше. На мой взгляд проще.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183721
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
З.Ы. Да, забыл добавить, вместо MsgBox соответствующие процедуры, хотя и так понятно.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183726
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сможет ли кто, мне также просто пояснить ипользование классов в VBA
А то что ты привел - оно что, на джабе что-ли?
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183728
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2ЛП
Я то привел, но куда его в ACCESS'е прицепить, так что б красиво, не знаю. В Access'е есть отчет, его переопределить нельзя, ну фиг с ним. Но блин и контрол нельзя переопределить. Но если контрол объект, то по идеи его в любое время можно вынуть или всунуть в collection. А дзысь. Весь смысл от такого ООП практически теряется. Да и мой пример от 00:20. В нем текста меньше чем в исходном.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183801
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky
>Уверен, что все 5 пунктов можно сделать и без модуля класса, без повторения кода

При всем моем уважение к тебе - ты не прав (или не понял что делают эти 5 пунктов)
Вся фишка классов (у меня) в возможности создание на основе одного и того же кода разные исполняемые версии кода. Если же вызывать обычный модуль класса, то в его переменных будет ссылка на текущую форму (переменные и т.п.), а теперь откроем еще одну - значения будут затерты - это всего лишь один из примеров полезности классов.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183806
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл: модуль формы - это тоже модуь класса.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32183834
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел пример: (самый простой и читабельный)
http://am.rusimport.ru/msaccess/topic.aspx?ID=22
Вот альтернатива:
Public Function OpenMyForm(F As Form)
MsgBox "Делаем настройку полей.", , "Loading"
F.OnClose = "=SaveMyForm([Form])"
End Function
Public Function SaveMyForm(F As Form)
MsgBox "Сохраняем настройку полей", , "Saving"
End Function

Посмотри повнимательней - совсем не альтернатива... Например, как ты думаешь, там совсем не нужна обработка события OnCurrent?
Потом, а представь - ты используешь то что ты написал в 300ах формах из 500от в своем приложении. И теперь обнаружилось, что при переключении из табличного режима в режим формы они ведут себя некорректно. Ты обнаруживаешь проблему и решаешь, что надо повесить ещё обработчик на Form_Current. Всего то ничего работы - зайти в 300 форм и прописать :)
А как удобно и красиво будет в классе - дописываешь в одном месте и все...
Ты конечно можешь сказать, что я не буду руками заходить и напишу программульку которая это сделает - но где красивость тогда? ;)


Ну ты и остальные примеры посмотри, попробуй тоже переделать :)
И сравни удобство и красивость решений


Procedure PrintData(A as object, B as object)
А.Print
B.Print
End Procedure
Удобно. Красиво.
Ну вот в VBA как раз так и можешь сделать...
Но блин и контрол нельзя переопределить.
В какой то степени всё же можно!
Вот например задача - необходимо чтобы на форме все обязательные поля были с желтым фоном если они не заполнены и белым если в них чтонть введено. Как будешь решать?

Вся фишка классов (у меня) в возможности создание на основе одного и того же кода разные исполняемые версии кода.
И ещё одна фишка - то что на ряду с кодом в объекте (экземпляре класса) могут храниться данные.
Да, забыл: модуль формы - это тоже модуь класса.
Вот, кстати, еще задача. Допустим у тебя есть формочка, где отображаются данные о клиенте. В режиме формы одновременно могут отображены данные об 1 клиенте. Так к тебе приходит заказчик и грит - хочу одновременно видеть 2х(3х) клиентов. Как решать будешь? n раз форму продублируешь?

Ну в общем навязывать то тебе никто их не собирается, когда проникнешься - сам будешь с удовольствием их юзать.
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32184826
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, недали уйти в монастырь.

Отдельная благодарность am (a_mitin)

З.Ы. Мог бы еще поспорить, да цель не та.
З.Ы.Ы. С++ начинает нравится, VB.NET еще больше, но куда денишся с подводной лодки?
...
Рейтинг: 0 / 0
Модуль класса - нужен ли он нам?
    #32184922
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2V. Motchulsky

>VB.NET еще больше, но куда денишся с подводной лодки?

Твоя "подводная лодка" случайно не проплывала мимо берегов "Visual Studio Tools для Microsoft Office System ". Лично моя - нет, но судя по рекламе "Набор инструментов предназначен для разработчиков, которые используют Visual Studio при создании приложений под Office с использованием Visual Basic .NET и Visual C# .NET. Также он будет полезен разработчикам приложений под Access, которые начали изучать Visual Basic .NET и используют его для создания приложений под Office" - это может тебе пригодиться. Если высадишься на этот берег - поделишся впечатлениями?
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модуль класса - нужен ли он нам?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]