|
|
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа, никак не могу вловить главной изюменки, для чего нужна эта прибамбаська в Access'е. Дань моде, что ли? Объекты в VBA "ущербные", не поддерживают унаследование и переопределения свойств, а без этого объект как бы и не объект. Вот недавно был примерчик с квадратиками. К лейбу (объект А) прицепляют другой объект пользователя (объект Б) получается связка двух объектов А+Б. При этом на каждый объект типа А создается объект типа Б. Почему просто не управлять объектом А через функции и процедуры? Зачем каждый раз создавать новый экземпляр программного кода? Ведь нельзя ж просто подменить в форме Label на MyLabel, а без этого какой смысл? Где тут красота программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:09 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
А вообще без классов было бы лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:20 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Объекты в VBA "ущербные", не поддерживают унаследование и переопределения свойств Да сам ты ущербный (шютка) В VB/VBA - COM-овская объектно-ориентированная модель. Это COM не поддерживает наследование реализации, ну а вслед за ним все com-объекты которыми мы пользуемся. У COM-овской модели свои плюсы, свои минусы. Не надо сравнивать толстое с теплым (C++ и COM). Почему то все считают, что есть только одна объектно-ориентированная схема - та, которая в C++. Так ведь это далеко не так. Это всего лишь одна из реализаций идеи ООП. Одна из самых распространенных. Далеко не факт что лучшая. Я не специалист по SmallTalk, но по-моему С++ отдыхает по сравнению с ним. Это так, к примеру. Скажу по секрету. Если ты заглянешь в VB.Net - ты потом будешь говорить что в C++ классы ущербные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:34 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
А вообще без классов было бы лучше? Да фиг его знает. Убедите что с ними лучше, а то уйду с вадей в монастырь. 2ЛП Повторяю вопрос: "Где тут красота программирования?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:44 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
вот и я спрашиваю: "В чем сила, брат?" (с) к/ф "Брат" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:49 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Где здесь? В твоем первом посте? Так почему бы и в C++ вместо конструкции ObjectName.SomeMethod() не использовать SomeFunction(ptrSomeObjectPointer)? Где тут красота - непонятно.... Зачем каждый раз создавать новый экземпляр программного кода Между прочем - он и не создается. Данные - новый экземпляр, а вот код адын на всех (если не SingleUse канешна). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:55 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
А что классы мешают жить? Убедите, что это так. И тогда тоже уйду с вадей и V. Motchulsky в монастырь (надеюсь в женский и вольнонаемником?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 15:00 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Не знаю как насчет красоты, но на основе одного модуля класса (и кучки обычных модулей), я сделал: 1. Ресайзинг формы под различное разрешение (из Гетца спер с незначительными доработками по ListView) 2. Единый итерфейс журналов 3. Управление настройками формы (шрифт, цвет и т.п.) 4. Управление отображением ListView (сохраняемая сортировка и размеры стобцов, отображение различных записей разным цветом) 5. Единообразное меню для управления данными из этого журнала (Открытие/Удаления любых выделнных записей, поиск в журнале, печать журнала, создание новых записей и т.п.) и главное- это занимает несколько строк в форме, создается за несколько минут путем копирования любого из журналов и простановкой нескольких свойств. Надо будет что-то дабавить - делаешь изменение в одном месте. Одним словом - нормализация. А это слово вам всем должно быть хорошо знакомо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 15:09 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Одним словом - нормализация. А это слово вам всем должно быть хорошо знакомо Угу. Я как сказал начальнику, что собираюсь заниматься нормализацией кода - он сначала поулыбался, а теперь этот термин сам вовсю использует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 15:16 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
2Лоху Ну и как закончил нормализацию кода? Думаю - нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 16:06 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Она идет непрерывно уже этак года полтора :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 16:16 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
а можно ли какими - нибудь ухищрениями используя модули класса или альтернативные активХ контролы сделать привязку картинки к источнику данных из рекордсета формы ? грубо говоря добавить свойство дата в которое нужно поместить имя источника данных из которого брать содержимое файла для свойства picturedata ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 17:03 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
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 (в общем то наверное хватит, но если там порыться, то ещё можно найти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 18:43 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
А что такое "нормализация кода"? (Простите за дремучесть). Я слышал только про нормализацию структуры БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 20:03 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Это когда ни один оператор в программе не повторяется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 20:15 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Уважаемый fedd, вы пропустили первый уровень нормализации КОДА - атомарность :) А вообще-то, wara, этот термин "нормализация" по отношению к коду только в местными гуру употребляется, ибо и так понимают, об чем речь... Обычно, все же, используется термин "оптимизация кода"... //а fedd - шутнииик Кстати, у меня вопрос, попадающий в тему топика: "В чем смысл жизни?" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 20:43 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 21:57 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
"- Видишь суслика? - Нет! - И я не вижу. А он есть!..." (с) ДМБ P.S. Кстати, ты привел хороший пример, ведь объект, по большому счету, это и есть экземпляр класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 22:56 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Продолжаю о сусликах. Посмотрел пример: (самый простой и читабельный) http://am.rusimport.ru/msaccess/topic.aspx?ID=22 Вот альтернатива: Код: plaintext 1. 2. 3. 4. 5. 6. 7. В свойстве OnOpen формы frm_sub пишем "=OpenMyForm([Form])", при этом модуль в форме не нужен и текста писать меньше. На мой взгляд проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 00:20 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
З.Ы. Да, забыл добавить, вместо MsgBox соответствующие процедуры, хотя и так понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 00:22 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Сможет ли кто, мне также просто пояснить ипользование классов в VBA А то что ты привел - оно что, на джабе что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 00:52 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
2ЛП Я то привел, но куда его в ACCESS'е прицепить, так что б красиво, не знаю. В Access'е есть отчет, его переопределить нельзя, ну фиг с ним. Но блин и контрол нельзя переопределить. Но если контрол объект, то по идеи его в любое время можно вынуть или всунуть в collection. А дзысь. Весь смысл от такого ООП практически теряется. Да и мой пример от 00:20. В нем текста меньше чем в исходном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 01:13 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
2V. Motchulsky >Уверен, что все 5 пунктов можно сделать и без модуля класса, без повторения кода При всем моем уважение к тебе - ты не прав (или не понял что делают эти 5 пунктов) Вся фишка классов (у меня) в возможности создание на основе одного и того же кода разные исполняемые версии кода. Если же вызывать обычный модуль класса, то в его переменных будет ссылка на текущую форму (переменные и т.п.), а теперь откроем еще одну - значения будут затерты - это всего лишь один из примеров полезности классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 09:19 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Да, забыл: модуль формы - это тоже модуь класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 09:21 |
|
||
|
Модуль класса - нужен ли он нам?
|
|||
|---|---|---|---|
|
#18+
Посмотрел пример: (самый простой и читабельный) 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 раз форму продублируешь? Ну в общем навязывать то тебе никто их не собирается, когда проникнешься - сам будешь с удовольствием их юзать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 09:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32183656&tid=1681057]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 359ms |

| 0 / 0 |
