|
|
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Драсте... Пришел, почитал, жарааааа... В смысле ни че не понял... Вернее понял, что дело к драке... Садитесь ка ко мне на коленки, я вам сказку расскажу... Жили-были Туевохученожки. Жили они хорошо, прекрасно управлялись со всей свойе туевой хучей методов передвижения по этой гов%ной (жараааааааа) жизни, помогали другим Туевохученожкам учиться делать тоже, но... Но однажды пришла одна лубознательная Туевохученожка и спрасила: "А КАК?" Ну, или, типа что-та на подобе... Объяснили Туевохученожки, потом посмеялись, а затем и сами задумались: А КАК? КАК!!! К_А_К?!!! И вот когда они задумались, тогда... Ну ладно-ладно... Быстро спать! Завтра утром дорасскажу (на ночь кошмары не стоит рассказывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:01 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Ну держись, Саныч Это значит, что Implements вообще не работает. Правильно ли я тебя понял? Не совсем. Implements работает, иначе бы не получилось сделать Set cls = frm1. Но frm1.Huy() - не работает. В отличие от Set obj = frm1 : obj.Huy(). Значит, это даже не позднее связывание. Тогда что же это? Это было бы наследование, если бы Control включал полные описания всех своих свойств и методов, тогда как он включает только их шапки. Любой интерфейс (и Control, и TextBox) - только шапки. Абстрактный класс в терминологии C++. А уж объект , реализующий эти интерфейсы, и реализует эти методы (сори за тафтологию) "интерфейс Control и что угодно еще" обязательно является подмножеством интерфейса TextBox. То что мы видим - да. Но вообще-то они независимы. Как и любые два интерфейса. Разница в том, что у интерфейса Form могут оказаться свойства и методы, неизвестные на этапе компиляции. У интерфейса Form не может оказаться св-в, неизвестных на этапе компиляции. И ни у какого интерфейса с нормальной библиотекой типов. У объекта могут поддерживаться неизвестные на этапе компиляции интерфейсы, для этого и придумали позднее связывание . Так почему VB в одном случае прозводит попытку найти что-то ему неизвестное (интерфейс), что может реализовать нужный метод, а другом случае - нет? компилятор просто знает, что именно эти интерфейсы таковы И ЭТО ЕДИНСТВЕННЫЙ ВОПРОС КОТОРЫЙ МЕНЯ ИНТЕРЕСУЕТ! Откуда он это знает? Кто ему это сказал? И почему не работает frm.Huy() из примера для Нуфа? Хм.. вопрос вышел не единственным Все юзерские интерфейсы с точки зрения этого свойства одинаковы Пока я об этом не задумался - считал то что все интерфейсы с точки зрения этого свойства одинаковы. А тут блин чудеса необъяснимые. Пример не принят, потому что DAO.Recordset - не просто интерфейс, а класс с описанными методами Интерфейс - это и есть описание методов. Любой объект, реализующий любой интерфейс(ы) - это класс с описанными методами. Это как это? Ты можешь добавить к текстбоксу свои свойства и методы? Всё его "что угодно" - это только то, что входит в стандарт TextBox'а Что значит TextBox тоже не один? Ну вот тебе начало класса: Код: plaintext 1. 2. И реализуй все методы всех объектов. Можно даже реализацию методов не писать. Все равно получится объект, в котором и текстбокс - не единственный интерфейс, и DAO.Recordset просто интерфейс (безо всякого привычного набора данных), и объект является текстбоксом (TextBox), не являясь при этом контролом (Control), а еще объект этого класса является экземпляром невозможного по твоим словам класса Form. Вести себя этот класс будет не так, как ожидается от формы, рекордсета и текстбокса, но это уж как ты реализуешь все методы. Может и не отличить будет. А может и отличить. Вот, у формы Me.Recordset тоже странно себя ведет, это же не запрещает ему быть рекордсетом. Если хочешь - я тебе даже скажу как реализовать такой класс, чтобы он вел себя ровно так, как ты ожидаешь этого от любого нормального объекта. Ну или почти так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:13 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
О, привет Нуф! Что это ты отлыниваешь от всеобщего обсуждения вещей, которых не понимает никто из обсуждающих? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:14 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Нуф, ты мне эта... Таких кошмаров не рассказывай. Особливо на ночь. У меня на эту притчу рефлекс. Мне ее всегда рассказывают, когда видят, как я иврит преподаю. У меня все-все-все сформулировано и разложено по полочкам. На все вопросы ответ даден. Вот мне и говорят: неправильно ты, дядя Федор, язык преподаешь, человек не должен задумываться, человек языком должен интуитивно пользоваться. И вот ентую самую притчу рассказывают. И как не знали языка, так и не знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:15 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Блин, вот что значит сначала написал, а потом проверять пошел Хрен можно аксесовские интерфейсы имплеменитровать И адошные тоже Ладно, пойду читать сообщения об ошибках. Вот так нужные мне ключевые слова и найду.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:23 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Еп твою... Ну я бля и лох позорный "All classes implement at least one interface, which is considered the default interface of the class. In Visual Basic, any member that isn't explicitly a member of an implemented interface is implicitly a member of the default interface" RTFM, RTFM твою мать... Пойду напьюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:28 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
> Ну держись, Саныч Всегда! > Значит, это даже не позднее связывание. Тогда что же это? Очередной баг Майкрософта... > > Это было бы наследование, если бы Control включал полные описания всех своих свойств и методов, тогда как он включает только их шапки. > Любой интерфейс (и Control, и TextBox) - только шапки. Но согласись, что два интерфейса с совпадающими названиями методов можно написать просто руками, не пользуясь наследованием. > У интерфейса Form не может оказаться св-в, неизвестных на этапе компиляции. У объекта, описанного как Form, - могут. > Так почему VB в одном случае прозводит попытку найти что-то ему неизвестное (интерфейс), что может реализовать нужный метод, а другом случае - нет? Он производит такую попытку только тогда, когда перед ним класс из некоторого фиксированного списка (Form, Control и какие-нибудь еще). Для других он может производить такую попытку в некоторых заранее очерченных случаях, например с именами контролов на форме, поскольку в языке есть возможность создавать их программно. > > компилятор просто знает, что именно эти интерфейсы таковы > И ЭТО ЕДИНСТВЕННЫЙ ВОПРОС КОТОРЫЙ МЕНЯ ИНТЕРЕСУЕТ! Откуда он это знает? Кто ему это сказал? Список у него есть. Или у этих интерфейсов есть некое свойство, закрытое от нас, которым мы не можем наделить наши юзерские интерфейсы. > И почему не работает frm.Huy() из примера для Нуфа? Баг, однако. > Хм.. вопрос вышел не единственным - Больше вопросов не имею, - быстро проговорил молодой человек. И сейчас же задал новый вопрос: - В таком доме, да без невест? (С) И.Ильф, Е.Петров. Двенадцать стульев. > Implements Access.Form > Implements DAO.Recordset > Implements Access.TextBox И такой объект может быть описан как TextBox??? Баг, усохни моя душенька, баг... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:31 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
позор, позор на мою седую голову... порву на себе одежду, посыплю голову пеплом, сяду на площади и буду черепком скрести свою тушку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:34 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Кажется, наши понимания* начинают сближаться... ___ * Понимания - разновидность зоофилии (от пони + мания). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:35 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Мне кажется что Нуф-Нуф в чем то прав Если б Остап узнал, что он играет такие мудреные партии и сталкивается с такой испытанной защитой, он крайне бы удивился. (12 стульев) Если бы я знал ,что программируя на VB ,использую такие мудренные понятия как interface,late binding,early binding- я бы тоже очень удивился 2 В.С А ходить то они не разучились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:41 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Эта, Лох, я потомучто надо отлыниваю... В смысле не потому что надо, а мне надо потому и отлыниваю... Тьфу! Вообщем, на стройке я сейчас работаю, а там жараааааааа... Остыну, перечитаю все и (может быть) че нить кину в топку :) На счет раскладывания по полочкам, Володь, то я сам такой - человек-система. Понять и запомнить могу только систему :( Но данный топик, имхо, не тот случай. Лично мне все по сабжу понятно на подсознательном уровне, что-ли... Даже не знаю как пояснить (жарааааааа), но понятно :) //пошел туевохученожить, ибо соскучился по серому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:41 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Саныч Ну раз уж я еще не ушел нажираться - я тебя слегка поправлю в адном маленьком, но очень важном заблуждении. То, что контролы можно создавать программно и к ним можно обращаться - это еще не значит, что интерфейс класса динамически меняется. Просто у формы св-во по умолчанию - Controls. А у Controls св-во по умолчанию - Item. Так что когда ты пишешь frm!ИмяКонтрола - это на самом деле frm.Controls.Item("ИмяКонтрола"). Как видишь, в такой записи можно и обычными методами (динамически не создаваемыми) пользоваться. А frm!ИмяКонтрола приводится компилятором именно к frm.Controls.Item("ИмяКонтрола") - если верить Гетцу. Конечно, аксес создает одноименное св-во для каждого контрола, но даже если бы он не делал - все все равно бы работало. Ну да и хрен бы с ним. 2 Нуф-Нуф Да я тоже интуитивно все это понимал. Но объяснить не мог. Вот и чувствовал себя как собака - все понимаю, сказать ничего не могу. Ты это, на стройке копытца побереги, а то придется пятачком клаву топтать 2 VIG Да вообще-то такие вещи знать надо. И, программируя на VB, радоваться тому, что об этой херне можно не задумываться. Но базовые знания все равно необходимы. А это именно база. Все. Ушел жрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 20:49 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Л.П Приятного аппетита! Да вообще-то такие вещи знать надо Да вообще я знаю. Я даже знаю какой из типов связывания использует IDispatch,а какой-VTable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 21:35 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 VIG: Ходить - разучились, конечно. Но тут уж каждый выбирает для себя - или язык, или ходить. 2 Нуф-нуф: Сейчас посмотрим, кто из нас прав. Есть ли какие-то практически полезные следствия из понимания (тьфу, опять зоофилией занялся) внутреннего устройства компилятора. Думаю, есть. Тот, кто понимает, не будет постить в форум вопросы типа "а почему у меня не работает". Или будет, но все равно меньше. (Кстати, это не камень в огород основоположника этого топика, его вопрос был другой.) 2 Лох: Насчет коллекции контролов понял и прочувствовал. Но осталось ли у нас что-то недоразъясненное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 21:46 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 VIG Приятного аппетита! ИК! то есть спасибо! Да вообще я знаю тагда ПАЧЕМУ МАЛЧИШЬ??? Вах! Три раза ИКККК! 2 Саныч Но осталось ли у нас что-то недоразъясненное Судя по формулировке очень хочется чтобы осталось? Или где-то чего-то я не понял? Есть ли какие-то практически полезные следствия из понимания Есть. Собственно понимание. Оно нужно не только для того, чтобы вопросы не задавать. А нужно оно для того.... Ну хер знает зачем это понимание нужно. Кто что хочет от жизни (или от аксеса) - затем оно и нужно. Наверное. Ик. Вах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 02:14 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Сова, будь здорова. Ты, кажется, чихнула. > > Но осталось ли у нас что-то недоразъясненное > Судя по формулировке очень хочется чтобы осталось? Или где-то чего-то я не понял? Лох, это мне положено отвечать вопросом на вопрос, а не тебе. Мне хочется, чтобы не осталось, но для этого нужно, чтобы кто-нибудь меня распутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 10:55 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Л.П тагда ПАЧЕМУ МАЛЧИШЬ??? Есть много причин 1 Я МАЛЧИШЬка 2 Молчание-золото. 3 Молчание-знак согласия. 4 Я знаю только то ,что ничего не знаю. (нужное подчеркнуть,ненужное зачеркнуть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 14:32 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Лох: То есть пока мне кажется, что все понятно. Где я не прав? 2 VIG: Так чего же мы с Лохом не понимаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 15:07 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Саныч Да мне тоже теперь все понятно. Вернее, оно и раньше было понятно, но теперь я это еще и объяснить могу. Главное - RTFM В одной фирме при приеме на работу соискателей просили заполнить анкету, в которой надо было указать степень владения разными технологиями. Ответы были примерно следующими 1. Ни разу не слышал 2. Читал но не разу не пробовал 3. Могу использовать под руководством других 4. Владею свободно, могу ипользовать самостоятельно 5. Могу учить других Вот, теперь еще в одном кусочке аксеса я перешел с 4-й ступени на 5-ю Так чего же мы с Лохом не понимаем? Как ёжики размножаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 17:20 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
1. Эта градация неадекватна. Многие попадают на стадию 5 минуя все остальные. 2. Я чувствую, что что-то объяснял не так. Что именно? Можешь объяснить мне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 17:37 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Лох, а все-таки. Мои чайникообразные попытки объяснить действительность были очень наивны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 14:50 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Я уж было хотел ответить, но засомневался - правильно ли я сам все понял. Еще немного посомневаюсь и чего-нибудь рожу. По поводу попыток объяснить действительность. Вопрос был (перефразируя): Почему работая с объектом, реализующем некий интерфейс, через этот самый интерфейс можно вызывать методы, в него не входящие? Ты объяснял, что объект реализует кучу интерфейсов (что верное), что некоторые интерфейсы неполноценны (что не верно), что интерфейсы наследуют один от другого (что неверно), что компилятор имеет список волшебных/полноценных интерфейсов (что тоже как-то не очень правильно), что Contol - это не объект, а TextBox - это объект (тож неверно, оба не объекты, а интерфейсы) и т.п. Подниму литературу по C - сформулирую мысль и выложу ее сюда. Или не подниму литературу, само пусть в башке уляжется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 15:04 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
OK. Я буду тебе этот топик раз в неделю перетаскивать наверх. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 15:09 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Я сам буду его своими пятничными песнопениями поднимать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 15:10 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32200109&tid=1679439]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 344ms |

| 0 / 0 |
