Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Зоопарк в MSHTML / 5 сообщений из 5, страница 1 из 1
01.12.2004, 13:45:49
    #32807588
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зоопарк в MSHTML
В билиотеки MSHTML есть (в числе прочего!) набор объектов, имена которых начинаются с буквы I.
Эти объекты дублируют такие же, но с перламутровыми пуговицами ... сорри, - без оной буквы I.

Вопрос: кто-нибудь понимает, в чем смысл этого зоопарка, в чем квинтэссенция этого дублирования?

Верно ли такое предположение: все, что можно сделать, используя "I-объекты", можно сделать и используя "без-I-объекты", и наоборот? Только СТИЛЬ ПРОГРАММИРОВАНИЯ в этих случаях потребуется разный??
...
Рейтинг: 0 / 0
01.12.2004, 14:19:17
    #32807657
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зоопарк в MSHTML
Верно ли такое предположение: все, что можно сделать, используя "I-объекты", можно сделать и используя "без-I-объекты", и наоборот?
"I-объекты" это интерфейсы. Полностью избавиться от этого зоопарка не удастся.
например MSHTML.HTMLDocument допускает WithEvents, а MSHTML.IHTMLDocument - нет, но при этом (точно не помню) HTMLDocument не поддерживает метод write. Так что приходится использовать обоих.
...
Рейтинг: 0 / 0
01.12.2004, 14:52:48
    #32807750
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зоопарк в MSHTML
Спасибо за интерпретацию буквы "I" ...
"Интерфейсы" - означает, что ВНУТРИ них прикопаны соответсвующие без-I-объекты, я правильно понимаю?

А как такое возможно, чтобы у "интерфейса" появлялся некоторый СОДЕРЖАТЕЛЬНЫЙ метод, который отсутствует у соответсвующего ... ммм ... не-интерфейса?

Я понимаю (заметил), что I-объекты не имеют событий ... но если написать, например:
Код: plaintext
Public myDoc as MSHTML.HTMLDocument 
- без WithEvents, то их, этих событий, у myDoc и не будет ... как бы. То есть "событийность" - это, вроде, еще не повод, чтобы разводить зоопарк, - я хочу сказать!

Гипотеза, котрую мне хотелось бы или принять, или опровергнуть, состоит в том, что вся функциональность, которая доступна при помощи WithEvents (применительно к без-I-объектам), - доступна каким-то образом и БЕЗ декларации WithEvents, ... но с использованием объекта MSHTML.CEventObj или какого-то другого "объекта event" (как мне посоветовали в http://sql.ru/forum/actualthread.aspx?tid=142374 ).

А декларации WithEvents - это я и называю "СТИЛЬ ПРОГРАММИРОВАНИЯ"...
...
Рейтинг: 0 / 0
01.12.2004, 15:49:28
    #32807907
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зоопарк в MSHTML
Иван FXSСпасибо за интерпретацию буквы "I" ...
"Интерфейсы" - означает, что ВНУТРИ них прикопаны соответсвующие без-I-объекты, я правильно понимаю?
Нет не правильно.
Есть интерфейсы. А есть классы. И это принципиально не оно и тоже.
Классы имплементируют интерфейсы. Один класс может имплементировать много интерфейсов. И это не зоопарк, это просто разные вещи.

Про интерфейсы и классы можно почитать в MSDN или в любой книге по ООП
А пока вот:
http://www.header.km.ru/ Так вот об интерфейсах - идеология COM подразумевает, что:
Либо ты знаешь, какой интерфейс ты держишь.
Либо ты просишь у интерфейса другой, который тебе нужен.

Тут могу привести такую вот аллегорию:

Допустим, есть некое животное, например - осел. У него есть всякие ослиные наросты: уши, ноги, хвост. У самцов всякие там прочие ослиные достоинства. У ослиц имеются ихние, ослиные, титьки.

Дело происходит днем. Ты подходишь к ослу и хватаешь его, скажем, за уши. Ты видишь, что это уши. И ты знаешь что с ними делать. Ты прислоняешься к ним и что есть мочи, орешь. Осел, естественно, пучит глаза и убегает. Это был вполне ожидаемый результат, и ты, радостно улыбаясь, идешь по своим делам, удовлетворенный решением поставленной задачи.

Теперь ситуация другая. Дело происходит ночью. Ты идешь и натыкаешься на что-то теплое. Ты протягиваешь руки и кого-то за что-то хватаешь. И ты хочешь узнать, кого и за что ты схватил. Это и есть ситуация номер два.

По технологии, аналогичной COM, ты можешь попросить того, кого ты схватил, подставить тебе уши. Он подставляет, ты хватаешь, орешь, и, опять-же, удовлетворенный, уходишь.

Зачем тебе знать - что держат твои руки, если ты пришел с определенной целью? Иными словами, для решения задачи "наорать и уйти" нет нужды знать - за что ты держишься.

Задачу можно решить только двумя способами:

Придти днем, схватить осла за уши, и сделать свое дело.
Придти ночью, схватить осла за что придется, попросить подставить уши, и опять-же сделать свое дело.

Только так осел уйдет ошеломленный, а ты - удовлетворенный.

P.S. Осел - это компонент. Уши, хвост, ноги и пр. части осла - это интерфейсы.
...
Рейтинг: 0 / 0
01.12.2004, 16:35:10
    #32807993
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зоопарк в MSHTML
В общем правильнее (надёжнее) работать с интерфейсами, но быстрее с объектами. Это тоже "стиль программирования".
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Зоопарк в MSHTML / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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