|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
Это даже не вопрос, а приглашение к обсуждению. Наследования в прямом смысле НЕТ, но можно обмануть железную дорогу и... Иногда так хочется, или ОЧЕНЬ нужно. Итак, Вариант 1: Предок сам создает потомка. Это не по стандартам ООП, но мы же в Аксе. Модуль класса mDoc - будущий предок Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Потомок создает предка. Это по стандартам ООП. ...... Продолжение в следующей серии :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 19:42 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
OMi, А где, собственно, постановка задачи, терминология, описание адресуемых проблем, и т. д.? Пока это не приглашение к обсуждению, а монолог. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 22:14 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
Сферические кони уже проглядываются. Осталось еще вакуум к ним подрисовать. PS потомок, создавший предка - это вам не белые дыры с ручками - этому даже любители современной астофизики позавидуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 23:42 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
астрофизики ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 23:42 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
Бенедикт, прошу прощения, вошел черте знает откуда. Пароля с собой нет. Дата последнего найденного мной обсуждения темы где-то 2004 год. Аксесный народ, похоже мало интересуется этой темой на форумах. Или я плохо искал. Точка приложения (из названий классов) - документ сообще и документы конкретные. Просто как родное ложится на наследование, а в Аксе нет. Ни кто ничего не пишет. Пришла в голову шальная мысль - вот поэтому и монолог. Что смущает: - Вся конструкция через On Error (exception). Слава Богу, есть гениальное On Error Resume Next. Может можно как-то "по-хорошему", не через исключение? - Есть такая ф-ция AdressOf (вроде так). Возвращает какой-то указатель. Вне Акс,понятно какой, а что это такое с точки зрения Акс? В принципе, что нужно? Объект есть, имя требуемого метода известно, указатель на метод (точка входа) есть. А как запустить? - Есть еще возможность наследовать класс как интерфейс. Там свои законы, неудобно. Сам в VBA не пробовал, но народ в сети пишет,что работает. Что обсуждать? - Эта тема хоть кого-то интересует? - Есть ли какие-то раскопки в этом направлении? - Нет предела совершенству. Хочется, чтобы было удобнее, надежнее и красиво, в конце концов. OMi (как Guest) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 00:06 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
старенький эх, Наверно,совсем старенький... Когда формочку свою городишь, родную собственную, ведь она потомок некоего объекта Form. При этом, еще, пользуешься interface этой самой Form. (не путать с лицом). Почитай в Википедии (не путать с ...), что такое Объектно-Ориентированное Программирование (ООП). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 00:18 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
OMi (as Guest)старенький эх, Наверно,совсем старенький... Когда формочку свою городишь, родную собственную, ведь она потомок некоего объекта Form. При этом, еще, пользуешься interface этой самой Form. (не путать с лицом). Почитай в Википедии (не путать с ...), что такое Объектно-Ориентированное Программирование (ООП). верно. совсем старенький. Википедии читать - мне моих старых мозгов не хватит. я даже начинать не буду. Подожду пока - вдруг ты мне своими собственными словами объяснишь, что это за зверь такой. Особенно про то, как потомки порождают порождают предков. (Попкорном я уже запасся) Бенедикт тебе уже как бы намекнул, что в отсутсвии конкретной задачи, малек вне контекста словеса про "наследование". Астронавт ты наш яхонтовый. ЗЫ по своей беспросветной старости подозреваю, что задача сведется к "хочу поднимать свою форму для строки таблицы, в зависимотси от того, чей она <потомок>". Попкорна и на другие варианты хватит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 00:54 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
OMi (как Guest), уж ночь, чисто для затравки. Класс CDoc: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: plaintext 1. 2.
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 01:23 |
|
Наследование классов в VBA врукопашную
|
|||
---|---|---|---|
#18+
2 Бенедикт (Раз уж это нехорошее слово - "наследование" - прозвучало) Вероятно ты написал то, что ожидает увидеть топткстартер. Однако, твой пример содержит ошибку, т.к. прямо противоречит пониманию наследования в языках типа Java. Показанный тобой класс CDocChild не является наследником cDoc. Стандартное (для типа Java языков) заключается в том, что при приведении к предку на переменной супертипа должен вызываться переопределенный в потомке метод. Т.е. метод фактического экземпляра объекта, а не метод, определенный в супертипе. (Т.е. если на переменной супертипа отдать приказ "документу" - сохранись, или "отобразись" будет как-то печально увидеть порезанную визуалку или обнаружить, что строка сохранилась не в ту таблицу или были сохранены не все поля.) Твой пример должен быть переписан таким оразом; Класс CDocChild: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Вот теперь мы имеем "честного" потомка в смысле приведения к типу предка. Не надо учить людей плохому. А так - сплошная красота и полный ООПздец. PS похоже, сайт был недоступен некоторое время. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 03:22 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1634757]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 393ms |
0 / 0 |