powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ControlType
98 сообщений из 98, показаны все 4 страниц
ControlType
    #32199011
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо узнать, какой вид контрола на форме. Компонент ControlType к классу Controls не отностится, через точку он не виден, но тем не менее если написать

dim ctl as control
set ctl=Me!ctl1
debug.print ctl.controlType

Значение константы преспокойно прочитается. В чем тут дело?
...
Рейтинг: 0 / 0
ControlType
    #32199035
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если описать нечто как Control, то через точку будет виден самый минимум. Если описать как TextBox, CommandButton и т.п., то будет видно гораздо больше. Однако работать все будет в обоих случаях. Возможно, ControlType из таких.
...
Рейтинг: 0 / 0
ControlType
    #32199040
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так в том то и дело, что нет у класса Control компонента ControlType, я и в браузере объектов смотрел. Если для него нет такого компонта, то почему оно работает? Я уже не первый раз с такой штукой сталкиваюсь - в браузере нет, а в справке - примерчик, рабочий. Они что там, в Майкрософт "секретные свойства" что-ли используют?
...
Рейтинг: 0 / 0
ControlType
    #32199045
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Повторяю еще раз. Например, DefaultValue у TextBox'а есть, а у просто Control'а нет. Это значит, что оно у TextBox'а свое, а не унаследованное от Control'а. Но это не мешает писать MyControl.DefaultValue тогда, когда MyControl описан как Control, Object или Variant. Вот и ControlType так же (уже не "возможно", а точно: у TextBox'а и т.п. оно через точку появляется).
...
Рейтинг: 0 / 0
ControlType
    #32199048
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здрасте... Санычь, можно я тоже попробую? :)

Control - это, как бы, абстрактный класс, поэтому в нем фигурируют только те свойства и методы, которые используются во всех типах контролов данного приложения (Access, например).
Когда ты присваиваешь своей переменной ctl конкретный контрол, то эта переменная уже не является "абстрактным понятием", а ссылкой на абсолютно конкретный объект со всеми его методами и свойствами.
Попробуй заменить свою дим на эту: "dim ctl as Checkbox". В данном случае система будет абсолютно точно знать, что за свойства и методы использует данный конкретный объект и вывалит тебе не только КонтролТайп, но и еще дох%рища того, чего ты ну никак не увидишь используя Control...

//млин... день прошедший без поста в форум - зря прожитый день
...
Рейтинг: 0 / 0
ControlType
    #32199049
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне непонятно, почему в браузере выбрав класс Control я не вижу напротив него компонент ControlType. Когда я определяю тип контрола, я еще не знаю, textbox это или что-то иное. Короче, косяк у них в браузере объектов.
...
Рейтинг: 0 / 0
ControlType
    #32199051
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин... ь=" "
сорри... :)
...
Рейтинг: 0 / 0
ControlType
    #32199052
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуф, да откуда я знаю, что это CheckBox то, черт подери. Я и хочу узнать, что это за контрол через класс Control. А в чертовом браузере между ними нет соответствия. Откуда я должен догадаться, что Control.ControlType работает? Я ж не телепат.
...
Рейтинг: 0 / 0
ControlType
    #32199054
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Короче, косяк у них в браузере объектов.
Угу :)

//не будет спорить... давича мне сказали что Логистика занимается ТОЛЬКО учетом товарных запасов (или что-то в этом роде), так я согласился
...
Рейтинг: 0 / 0
ControlType
    #32199056
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Третья попытка. :^)

DefaultValue, ControlType и десятки других не описаны ни в Control, ни в Object, ни в Variant. Однако если данная переменная, описанная как Control, Object или Variant, ссылается на объект типа TextBox и т.п., то у нее появляются DefaultValue, ControlType и десятки других.

Нуф, привет!
...
Рейтинг: 0 / 0
ControlType
    #32199057
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуф, так чего ты со всем соглашаешься, если не согласен? У тебя чего, своего мнения нет? Почему я думаю, что у них косяк в браузере я обосновал - обоснуй теперь ты, почему там не косяк.
...
Рейтинг: 0 / 0
ControlType
    #32199059
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда почему вот это работает

dim ctl as control
for each ctl in me. controls
debug.print ctl.ControlType
next

Тут тоже ctl на кого-то ссылается?
...
Рейтинг: 0 / 0
ControlType
    #32199060
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Откуда я должен догадаться, что Control.ControlType работает? Я ж не телепат.

Просто это значит, что у Control'a этого свойства нет. Оно сделано у всех классов, которые наследуют свойства Control'a, однако это свойство у каждого из них свое, а не унаследованное. Кстати, Left и Top, которые тоже могли бы быть созданы на уровне класса Control, тоже там отсутствуют.
...
Рейтинг: 0 / 0
ControlType
    #32199061
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще у Control'a нет св-ва Value
Однако я его постоянно использую.
И еще много чего нет
Зато оно есть в производный типах.
То ли это хитрое делегирование, то ли это не менее хитрое позднее связывание. Вот.
...
Рейтинг: 0 / 0
ControlType
    #32199062
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, бардак у них там полный. Снаружи кажется, что все гладко, а если копнуть...
...
Рейтинг: 0 / 0
ControlType
    #32199063
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Тут тоже ctl на кого-то ссылается?

Конечно. На тот контрол, ControlType которого выдается на очередном обороте цикла.
...
Рейтинг: 0 / 0
ControlType
    #32199064
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wara, свое мнения я высказываю только один раз. Если от этого что-то зависит в моей жизни, то я могу высказать и обосновать его оч.много раз. Что зависит в моей жизни от того, что ты думаешь по поводу Логистики или по поводу броузера? Прааааальна :)
Тебе дали ответ на твое "почему" чтобы ты знал и более не парился над этим. Как распорядиться этими знаниями - другой вопрос.
Мне тоже случай с ControlType кажется достаточно нелогичным (ибо любой контрол должен уметь отвечать что он за зверь, а значит должен иметь такое свойство). Но лично я непарюсь... Видимо, не все контролы, поподающие под семейство Controls могут иметь данное свойство. Или просто есть что-то еще, чего я не знаю. Но это НЕ МЕШАЕТ мне спокойно работать с данным свойством...
Чего и вам желаю...
...
Рейтинг: 0 / 0
ControlType
    #32199066
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, нет в COM-е наследования. Просто нет. Есть имплементация. Так что твое объяснение не катит.
Да, может - это хитрые ограниченные интерфейсы? Наподобие IUnknown, который есть у всех, но нигде не показывается?
...
Рейтинг: 0 / 0
ControlType
    #32199067
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 wara:

Вот я пишу:

dim ctl as variant
for each ctl in me. controls
debug.print ctl. DefaultValue
next

Тут есть что-то странное или тут нет?
...
Рейтинг: 0 / 0
ControlType
    #32199068
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, здравствуй Нуф!
...
Рейтинг: 0 / 0
ControlType
    #32199069
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох:

Если есть только имплементация, то все еще проще. Просто забыли у Control'а добавить строчку описания.
...
Рейтинг: 0 / 0
ControlType
    #32199070
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный,
А где мне надо было эти "производные типы" смотреть?
...
Рейтинг: 0 / 0
ControlType
    #32199072
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> А где мне надо было эти "производные типы" смотреть?

TextBox
CommandButton
и т.д. (их штук 15, наверно)
...
Рейтинг: 0 / 0
ControlType
    #32199073
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Думаешь в библиотеку типов просто не включили? Это подло с их стороны. Только вчера читал, что в дотнет у Int32 описали 5 методов из 20. Какие падлецы
...
Рейтинг: 0 / 0
ControlType
    #32199074
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут есть что-то странное или тут нет?
Для меня есть. Почему этого DefaultValue не видно в браузере если выбран класс Control? Это не логично.
...
Рейтинг: 0 / 0
ControlType
    #32199075
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох:

Африка, дикие люди, однако... А вот интересно, что у Control'а есть ItemData, хотя оно нужно только для ComboBox'а и ListBox'а.
...
Рейтинг: 0 / 0
ControlType
    #32199076
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Человек из Кемерово
А где мне надо было эти "производные типы" смотреть?
Та там же и смотри - в Object Browser
Всякие текстбоксы и т.д.
Кстати, "производные" действительно надо было взять в кавычки. Дабы не вводить ортодоксов ООП в заблуждение.
...
Рейтинг: 0 / 0
ControlType
    #32199077
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,
TextBox
CommandButton
и т.д. (их штук 15, наверно

Это я и сам знаю, я спрашивал : "Где смотреть?"
...
Рейтинг: 0 / 0
ControlType
    #32199080
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wara, я написал не Control, а Variant. У Variant'а тоже должны быть все мыслимые в мире свойства?
...
Рейтинг: 0 / 0
ControlType
    #32199081
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, что-то дискуссия слишком быстро идет.
Я за ней не успеваю
Пойду атдахну аднака
...
Рейтинг: 0 / 0
ControlType
    #32199083
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Это я и сам знаю, я спрашивал : "Где смотреть?"

Вот у них и смотреть. Что значит где? В Object Browser'е у классов TextBox, CommandButton и т.д.
...
Рейтинг: 0 / 0
ControlType
    #32199085
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALL
Куда мне ткнуть в браузере объектов, чтобы увидеть все компоненты, производные от класса Control?
...
Рейтинг: 0 / 0
ControlType
    #32199087
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте (в ответ на ответы :)

Лох, (млин!!! Если не хочешь менять ник, то хотя бы придумай себе для нас ласкательное какое-нить обращение, а то набирая эти три буквы такой внутренний дискомфорт чуйствую:) эта, спасибо за отклик по поводу "мыши"... Ежли б не ты с Феддом, то вообще пошел бы и повесился...

//вываливается из дискуссии...
...
Рейтинг: 0 / 0
ControlType
    #32199088
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Никуда. Такой возможности нет.
...
Рейтинг: 0 / 0
ControlType
    #32199089
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человеку из Кемерово
Вот блин. Я же сказал - производные в кавычки.
Нет наследования
Есть интерфейсы
Они то и отображаются в OB
Читай теорию.
...
Рейтинг: 0 / 0
ControlType
    #32199090
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Нуф-Нуф
Да не, вешаться тупо. Разве что на доску почета
Хочешь я тебе чемодан прозакса привезу? Будешь вслед за King Crimson петь Prozakc Blues
...
Рейтинг: 0 / 0
ControlType
    #32199092
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч
Тогда откуда я должен был догадаться, что в момент обращение к контролу через класс котрол можно прочитать значение "производного" класса? Корче, чтобы программировать на Access надо быть телепатом - таков мой общий вывод.
...
Рейтинг: 0 / 0
ControlType
    #32199093
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wara, но ведь тот же вопрос спрашивается, если мы описываем нечто как Variant. Почему в случае с Variant'ом тебе это не мешает? Тоже надо быть телепатом. Не хочешь быть телепатом - описывай как TextBox и т.п.
...
Рейтинг: 0 / 0
ControlType
    #32199094
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я торчу
Однако, до появления фичи IntelliSens все программеры были телепатами

Лох не... Спасибо... У меня ни слуха ни голоса нету для блюзов
//точно ушел... чтобы не заторчаться до смертюги :)
...
Рейтинг: 0 / 0
ControlType
    #32199101
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вара, не хочу что бы ты обиделся и не хочу продолжать дискуссию и не хочу говорить элементарные (вроде) вещи и не хо... НО! И не хочу, чтобы ты думал и говорил (!!!) кому-нибудь, что Акс - дуст... Даже не Акс, а ВБА в целом!
Тот список, который тебе вываливается после "точки" - это всего-лишь подспорье, возможная помощь программеру.
На счет ТЕЛЕПАТОВ - это было круто! Чес.слово!!! Ты зачем написал "Dim ctl As Control"? Просто так угадал? Стелепатировал? Имхо нет. Ты написал это потому что знаешь, что такое дим и зачем вообще эта строка. А зачем ты написал "Set"? Тоже телепатия? Так вот и с этими долбаными свойствами - программист, прежде чем работать с объектами должен З_Н_А_Т_Ь их свойства и методы. Не телепатировать, а ЗНАТЬ!!!
Control не является, ну как бы это сказать, самостоятельным объектом - это некий абстрактный контейнер. Контейнером для конкретных объектов! У него вообще, в принципе свойств не должно быть...
А ОбжектБроузер и выпадающий список - просто в помощь. Через них нельзя программировать, а только можно ускорять написание программы (за счет меньшего нажатия клавиш). И если ты не ЗНАЕШЬ свойств и методов объектов, с которыми собираешься работать, то КАК ты вообще собираешься работать?

Всем пока...
//точно-при-точно соскачил...
...
Рейтинг: 0 / 0
ControlType
    #32199104
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуф,
Может ты меня еще в угол поставишь?
...
Рейтинг: 0 / 0
ControlType
    #32199108
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, с новыми силами....
Все таки вопрос хороший

Если описываем что-то как объект, реализующий конкретный интерфейс (Dim blablabla As SomeObject), то должно применятся раннее связывание. При попытке обращения к методу, который не описан в библиотеке типов - должна быть ошибка на этапе компиляции.
Если описываем что-то как Object (или Variant), то должно применятся позднее связывание. Вызвать можно что угодно, при компиляции ошибок не будет, будут ошибки времени выполнения.

Есть Control. Control - имя интерфейса. В нем есть методы и св-ва.
Есть TextBox. TextBox - имя интерфейса. В нем есть методы и св-ва.
Оба находятся в одной библиотеке. Описания обоих - в одной библиотеке типов.
С точки зрения COM - одна фигня. Братья близнецы однояйцевые.

Почему в таком куске кода:
Код: plaintext
1.
2.
3.
    Dim ctl As Control
    Debug.Print ctl.huy
    Dim tbx As TextBox
    Debug.Print tbx.huy

при компиляции выдается ровно одна ошибка? а не две? и не ноль?
Аналогично
Код: plaintext
1.
2.
3.
    Dim frm As Form
    Debug.Print frm.huy
    Dim frm1 As Form_Форма1
    Debug.Print frm1.huy


Знатоки COM! Ответьте мне, какое ключевое слово я пропустил при изучении этой технологии??? Где зарыта разница в описании интерфейсов?
...
Рейтинг: 0 / 0
ControlType
    #32199134
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не знаток, но я не понял. (Ух, как прозвучало... Надо записать.) Я не понял, в чем вопрос. По-моему, на нашем уровне все объяснимо.

1. TextBox и Form_Форма1 - это конкретные классы, у которых есть известно какие свойства и методы.

(Кстати, между ними есть разница: сисок контролов Form_Форма1 на этапе компиляции известен не полностью, поэтому я могу написать

Dim f As New Form_Форма1
f!MyTextBox = 1

и это пройдет компиляцию, даже если контрола по имени MyTextBox на этой форме нет. А вот

f.MyTextBox = 1

пройдет только при условии, что такой контрол либо свойство есть. Короче, я отвлекся.)

2. Супротив тому, Form, Control, Object и Variant - это не конкретные классы, а, как ты сам и сказал, только интерфейсы. Когда создается объект, он всегда будет не просто Form, Control, Object или Variant, а нечто конкретное. (Если на меня надавить, я уберу из этого списка Variant, но это ничего не изменит в ходе рассуждений.)

3. Теперь так. Если мы описываем переменную сразу как объект конкретного класса (1), то компайлер знает, чтО ему нужно проверять, ибо у него есть список свойств и методов этого класса. (Да и то вот список контролов формы может меняться динамически, поэтому синтаксис с ! на этапе компиляции не проверяется.) Ежели же мы ее описываем как некий интерфейс (2), то компайлер до момента позднего связывания не проверяет ничего, ибо отсутствие свойства в интерфейсе еще не означает, что этого свойства так и не будет у того объекта, на который во время исполнения сошлется наша переменная.
...
Рейтинг: 0 / 0
ControlType
    #32199224
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох, эта, по поводу твоего примера от вчера 22:04...

Представь, что в одной из форм есть такой код:
Код: plaintext
1.
2.
Public Property get huy() as Loooooooong
huy =  150  'длинна в сантиметрах' :)
End Property

Ну прикинь, ежли б компилятор выдавал ошибку и на Form , то я указав в переменной данную форму один хрен не смог бы обратиться к этому ее свойству (huy), которое отсутствует у других форм, но у одной я сам его прописал. Ошибка во время компиляции и все на этом...
А если указана Form_blablabla , то компилер туда может сразу заглянуть и проверить, есть ли там такое...

//топик напоминает старый добрый анекдот про программера и шампунь
...
Рейтинг: 0 / 0
ControlType
    #32199245
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
TextBox и Form_Форма1 - это конкретные классы
Хрен там. Это конкретные интерфейсы, а никак не классы.
Есть некий объект. Он реализует кучу интерфейсов - IUnkown, IDispatch, Control, TextBox и еще кучу всякой срани.
Так почему если мы берем у этого объекта интерфейс TextBox, то мы можем вызывать только те методы, которые в этом интерфейсе присутствуют, а если мы у того же объекта берем интерфейс Control, то вызываем все что угодно, независимо от того, есть оно в определении интерфейса или нет?

2 Нуф-Нуф
Я могу у формы прописать интерфейс явно. Т.е. сделать класс Class1 с методом "public function Huy() As String". В форме1 прописать "Implements Class1". И даже эту функцию туда написать.
После чего
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim frm As Form ' Метод есть, но компилятор об этом не знает'
Set frm = New Form_Форма1 
Debug.Print frm.Huy ' Ошибки нет '

Dim frm1 As Form_Форма1' Метод есть, и компилятор об этом знает (если хочет) '
Set frm1 = frm ' Объект тот же самый '
Debug.Print frm1.Huy ' Но ошибка есть '
Debug.Print frm1.Class1_Huy ' И так тоже есть ошибка '

Dim cls as Class1 ' Метод есть, компилятор об этом знает'
Set cls = frm1 ' объект тот же самый '
Debug.Print cls.Huy ' но ошибки нет' 


2 All
Пробую переформулировать вопрос
Как нужно описать интерфейс Control (или Form), чтобы VB вел себя следующим образом:
Если обращаемся к методу, присутствующему в описании Control (в библиотеке типов), то направлять этот метод собственно интерфейсу (используя раннее связывание)
Если обращаемся к методу, отсутствующему в описании Control, то перенаправляем этот метод интерфейсу IDispatch (позднее связывание)
?????
Похожий механизм исползуется при агрегации объектов (в реализации IUnkown::QueryInterface), но применяется к интерфейсам целиком, а не к отдельным методам.
...
Рейтинг: 0 / 0
ControlType
    #32199260
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправочки и пояснения к предыдущему посту

2 Саныч
И Control, и TextBox - суть интерфейсы. Могут присутствовать у одного и того же объекта. Взяли у объекта интерфейс Control - работает с ним как с контролом, взяли интерфейс TextBox - работаем как с текстбоксом.
Но поведение VB (на этапе компиляции) различается в случае если мы работает с объектом как с контролом или как с текстбоксом. Почему? Видимо потому, что в интерфейсах есть какое-то принципиальное отличие, но как оно называется (и на что еще влияет) я не знаю.

2 Нуф-Нуф
Примерчик не совсем корректный. "Debug.Print frm.Huy" при компиляции не ругается, но ругается при выполнении. Что еще больше запутывает ситуацию. Выходит, тут даже не позднее связывание, ибо IDispatch для объекта один, и должен успешно отрабатывать вызом метода (Class1.Huy()) независимо от того, к какому интерфейсу он принадлежит. Это можно подтвердить добавив в конец строчки
Код: plaintext
1.
2.
3.
Dim obj As Object ' Ну здесь уж точно позднее связывание '
Set obj = cls ' Объект тот же самый'
Debug.Print obj.huy() ' и обшибки нет, ни при компиляции, ни при выполнении'
...
Рейтинг: 0 / 0
ControlType
    #32199502
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ау!
Аль перевелись бухатыри на Руси?
...
Рейтинг: 0 / 0
ControlType
    #32199747
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сова, открывай, медведь пришел. Лох, привет. На мой взгляд (собсаря, я это и имел в виду, но невнятно изъяснился), дело вот в чем.

TextBox и Form_Форма1 - это непосредственно то, чем данный объект является. Называй хоть классом, хоть интерфейсом. (Кстати, у класса тоже есть свой интерфейс, сиречь список его свойств и методов, включая синтаксис обращения к ним.) По описанию TextBox и Form_Форма1, содержащемуся соответственно в компайлере и в файле mdb, компайлер однозначно и полностью видит весь интерфейс объекта и знает, что с этим объектом можно делать (кроме списка контролов формы, который на этапе компиляции не проверяется, если писать через !).

С другой стороны, Form, Control, Object и Variant - это всего лишь некие кусочки интерфейса объекта либо даже менее того. Объект, описанный как TextBox, поддерживает весь интерфейс Control'а и плюс что-то свое. Но объект, описанный как просто Control, - это нонсенс, его можно описать, но с ним ничего нельзя сделать, пока он не сослан на конкретный TextBox и т.п. А попытка описать что-то As New Object вообще обречена - строчка красится красным. Именно поэтому у таких переменных компайлер знает только то, что он ничего не знает, и оставляет проверку синтаксиса до момента связывания.
...
Рейтинг: 0 / 0
ControlType
    #32199851
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Медведь, ховайся в бульбу. Ща разорву на тысячу маленьких медвежат

TextBox и Form_Форма1 - это непосредственно то, чем данный объект является
Нет. Это только одна из граней объекта. В примере, данным Нуф-Нуфу Форма1 являлась еще и Class1.
По описанию TextBox и Form_Форма1, содержащемуся соответственно в компайлере и в файле mdb, компайлер однозначно и полностью видит весь интерфейс объекта и знает...
Нет. Неоднозначно и не полностью. См. пример Нуф-Нуфу и поправку.
По описанию TextBox компилятор однозначно и полностью видит только интерфейс TextBox. По описанию Control компилятор однозначно и полностью видит только интерфейс Control. Только для контрола то, что он (компилятор) не видит - он почему то отправляет в IDispatch, а для текстбокса - нет.
Form, Control, Object и Variant - это всего лишь некие кусочки интерфейса
Это полноценные интерфейсы. Просто одна из граней объекта. Не единственная, ну так и TextBox тоже не один у объекта.
А попытка описать что-то As New Object вообще обречена
Любой объект можно описать как Public Not Createble (в VB), и его тоже нельзя будет создать через New. DAO.Recordset тому пример. Ты ведь не будешь утверждать, что DAO.Recordset не существует, раз его нельзя создать руками?
Объект, описанный как TextBox, поддерживает весь интерфейс Control'а и плюс что-то свое
Нет. Это было бы наследование, а его нихт. Объект может поддерживать интерфейс TextBox, интерфейс Control и что угодно еще. Методы в разных интерфейсах могут даже называться одинакого, ну и что с того? Ты ведь не скажешь, что ADO.Recordset - это DAO.Recordset плюс что-то свое? А методы у них одинакого называются многие.
Но объект, описанный как просто Control, - это нонсенс, его можно описать, но с ним ничего нельзя сделать
Объект, описанный как TextBox - тоже нонсенс. Его тоже можно описать, но ничего с ним нельзя сделать, пока он не сослан на конкретный TextBox. Или даже на некий объект, который может быть чем угодно, при условии что он еще и текстбокс.

Я не тупой. Я прекрасно понимаю, что интерфейсы отличаются. Но чем?
Дайте мне ключевое слово. Я по нему чего-нибудь да найду.
Слова "конкретный экземпляр, компилятор видит все св-ва, и т.п." не катят. Потому как надо "конкретный интерфейс" (Form_Форма1), "компилятор видит все методы этого интерфейса" (function huy()). Ну так и Form - конкретый интерфейс. И компилятор тоже видит все его методы.
Почему два интерфейса ведут себя по разному? Причем на этапе компиляции . На этапе выполнения хрен бы с ним - как написан объект, так он себя и ведет, но как интерфейсу удается сказать компилятору, что он ни хера не интерфейс, а так, херня какая-то? Типа что в нем не нашли - то может быть есть где-нибудь еще, ищете в IDispatch.

Если я хочу сделать такое же на VB (VC) какое слово я должен искать в словаре? Типа делаю я свой класс. Причем есть другие классы, реализующие его интерфейс. Ну и, разумеется, свои собственные интерфейсы. Что нужно сделать, чтобы язык типа VB не найдя метод в библиотеке типов не ругался при компиляции?
...
Рейтинг: 0 / 0
ControlType
    #32200028
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Мммммммм... Лох, ты меня ввел в задумчивость.

> > TextBox и Form_Форма1 - это непосредственно то, чем данный объект является
> Нет. Это только одна из граней объекта. В примере, данным Нуф-Нуфу Форма1 являлась еще и Class1.

Это не "еще и". Я провожу разницу между окончательным классом (или полным интерфейсом) и кусочками интерфейса. Если переменная описана как кусочек, то ошибок компиляции выдается меньше. Class1 - это кусочек Формы1.

> Dim frm1 As Form_Форма1' Метод есть, и компилятор об этом знает (если хочет) '
> Set frm1 = frm ' Объект тот же самый '
> Debug.Print frm1.Huy ' Но ошибка есть '

Это значит, что Implements вообще не работает. Правильно ли я тебя понял?

> По описанию TextBox компилятор однозначно и полностью видит только интерфейс TextBox. По описанию Control компилятор однозначно и полностью видит только интерфейс Control. Только для контрола то, что он (компилятор) не видит - он почему то отправляет в IDispatch, а для текстбокса - нет.

Потому что Control - это кусочек, требующий конкретизации. А TextBox - это окончательный интерфейс, который весь может быть проверен на этапе компиляции.

> > Form, Control, Object и Variant - это всего лишь некие кусочки интерфейса
> Это полноценные интерфейсы. Просто одна из граней объекта. Не единственная, ну так и TextBox тоже не один у объекта.

Что значит TextBox тоже не один?

> Любой объект можно описать как Public Not Createble (в VB), и его тоже нельзя будет создать через New.

OK.

> > Объект, описанный как TextBox, поддерживает весь интерфейс Control'а и плюс что-то свое
> Нет. Это было бы наследование, а его нихт.

Это не наследование, а просто интерфейс TextBox'а написан так, что он включает в себя интерфейс Control'а. Это было бы наследование, если бы Control включал полные описания всех своих свойств и методов, тогда как он включает только их шапки.

> Объект может поддерживать интерфейс TextBox, интерфейс Control и что угодно еще.

Но обрати внимание, что "интерфейс Control и что угодно еще" обязательно является подмножеством интерфейса TextBox.

> Методы в разных интерфейсах могут даже называться одинакого, ну и что с того? Ты ведь не скажешь, что ADO.Recordset - это DAO.Recordset плюс что-то свое? А методы у них одинакого называются многие.

Пример не принят, потому что DAO.Recordset - не просто интерфейс, а класс с описанными методами.

> Объект, описанный как TextBox - тоже нонсенс. Его тоже можно описать, но ничего с ним нельзя сделать, пока он не сослан на конкретный TextBox.

Но это ничего не меняет с точки зрения того, какими его свойствами и методами разрешено пользоваться.

> Или даже на некий объект, который может быть чем угодно, при условии что он еще и текстбокс.

Это как это? Ты можешь добавить к текстбоксу свои свойства и методы? Всё его "что угодно" - это только то, что входит в стандарт TextBox'а.

> Потому как надо "конкретный интерфейс" (Form_Форма1), "компилятор видит все методы этого интерфейса" (function huy()). Ну так и Form - конкретый интерфейс. И компилятор тоже видит все его методы.

Разница в том, что у интерфейса Form могут оказаться свойства и методы, неизвестные на этапе компиляции.

> но как интерфейсу удается сказать компилятору, что он ни хера не интерфейс, а так, херня какая-то?

Поскольку и Form, и Control - это интерфейсы, созданные не юзером, то компилятор просто знает, что именно эти интерфейсы таковы. Все интерфейсы, созданные юзером, считаются полными, потому что во время исполнения программы у них не могут возникать новые свойства и методы, за исключением изменений в коллекции Controls.

> Что нужно сделать, чтобы язык типа VB не найдя метод в библиотеке типов не ругался при компиляции?

Не факт, что это существует. Все юзерские интерфейсы с точки зрения этого свойства одинаковы.

Вот.
...
Рейтинг: 0 / 0
ControlType
    #32200043
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте... Пришел, почитал, жарааааа... В смысле ни че не понял... Вернее понял, что дело к драке... Садитесь ка ко мне на коленки, я вам сказку расскажу...
Жили-были Туевохученожки. Жили они хорошо, прекрасно управлялись со всей свойе туевой хучей методов передвижения по этой гов%ной (жараааааааа) жизни, помогали другим Туевохученожкам учиться делать тоже, но... Но однажды пришла одна лубознательная Туевохученожка и спрасила: "А КАК?" Ну, или, типа что-та на подобе...
Объяснили Туевохученожки, потом посмеялись, а затем и сами задумались: А КАК? КАК!!! К_А_К?!!!
И вот когда они задумались, тогда... Ну ладно-ладно... Быстро спать! Завтра утром дорасскажу (на ночь кошмары не стоит рассказывать :)
...
Рейтинг: 0 / 0
ControlType
    #32200048
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну держись, Саныч

Это значит, что 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.
Implements Access.Form
Implements DAO.Recordset
Implements Access.TextBox

И реализуй все методы всех объектов. Можно даже реализацию методов не писать. Все равно получится объект, в котором и текстбокс - не единственный интерфейс, и DAO.Recordset просто интерфейс (безо всякого привычного набора данных), и объект является текстбоксом (TextBox), не являясь при этом контролом (Control), а еще объект этого класса является экземпляром невозможного по твоим словам класса Form.
Вести себя этот класс будет не так, как ожидается от формы, рекордсета и текстбокса, но это уж как ты реализуешь все методы. Может и не отличить будет. А может и отличить. Вот, у формы Me.Recordset тоже странно себя ведет, это же не запрещает ему быть рекордсетом.
Если хочешь - я тебе даже скажу как реализовать такой класс, чтобы он вел себя ровно так, как ты ожидаешь этого от любого нормального объекта. Ну или почти так :)
...
Рейтинг: 0 / 0
ControlType
    #32200049
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, привет Нуф!
Что это ты отлыниваешь от всеобщего обсуждения вещей, которых не понимает никто из обсуждающих?
...
Рейтинг: 0 / 0
ControlType
    #32200050
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Нуф, ты мне эта... Таких кошмаров не рассказывай. Особливо на ночь. У меня на эту притчу рефлекс. Мне ее всегда рассказывают, когда видят, как я иврит преподаю. У меня все-все-все сформулировано и разложено по полочкам. На все вопросы ответ даден. Вот мне и говорят: неправильно ты, дядя Федор, язык преподаешь, человек не должен задумываться, человек языком должен интуитивно пользоваться. И вот ентую самую притчу рассказывают. И как не знали языка, так и не знают.
...
Рейтинг: 0 / 0
ControlType
    #32200051
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, вот что значит сначала написал, а потом проверять пошел
Хрен можно аксесовские интерфейсы имплеменитровать
И адошные тоже
Ладно, пойду читать сообщения об ошибках. Вот так нужные мне ключевые слова и найду....
...
Рейтинг: 0 / 0
ControlType
    #32200054
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еп твою...
Ну я бля и лох позорный
"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 твою мать...
Пойду напьюсь.
...
Рейтинг: 0 / 0
ControlType
    #32200055
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Ну держись, Саныч

Всегда!

> Значит, это даже не позднее связывание. Тогда что же это?

Очередной баг Майкрософта...

> > Это было бы наследование, если бы Control включал полные описания всех своих свойств и методов, тогда как он включает только их шапки.
> Любой интерфейс (и Control, и TextBox) - только шапки.

Но согласись, что два интерфейса с совпадающими названиями методов можно написать просто руками, не пользуясь наследованием.

> У интерфейса Form не может оказаться св-в, неизвестных на этапе компиляции.

У объекта, описанного как Form, - могут.

> Так почему VB в одном случае прозводит попытку найти что-то ему неизвестное (интерфейс), что может реализовать нужный метод, а другом случае - нет?

Он производит такую попытку только тогда, когда перед ним класс из некоторого фиксированного списка (Form, Control и какие-нибудь еще). Для других он может производить такую попытку в некоторых заранее очерченных случаях, например с именами контролов на форме, поскольку в языке есть возможность создавать их программно.

> > компилятор просто знает, что именно эти интерфейсы таковы
> И ЭТО ЕДИНСТВЕННЫЙ ВОПРОС КОТОРЫЙ МЕНЯ ИНТЕРЕСУЕТ!
Откуда он это знает? Кто ему это сказал?

Список у него есть. Или у этих интерфейсов есть некое свойство, закрытое от нас, которым мы не можем наделить наши юзерские интерфейсы.

> И почему не работает frm.Huy() из примера для Нуфа?

Баг, однако.

> Хм.. вопрос вышел не единственным

- Больше вопросов не имею, - быстро проговорил молодой человек.
И сейчас же задал новый вопрос:
- В таком доме, да без невест?

(С) И.Ильф, Е.Петров. Двенадцать стульев.

> Implements Access.Form
> Implements DAO.Recordset
> Implements Access.TextBox

И такой объект может быть описан как TextBox??? Баг, усохни моя душенька, баг...
...
Рейтинг: 0 / 0
ControlType
    #32200058
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
позор, позор на мою седую голову...
порву на себе одежду, посыплю голову пеплом, сяду на площади и буду черепком скрести свою тушку...
...
Рейтинг: 0 / 0
ControlType
    #32200060
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, наши понимания* начинают сближаться...

___
* Понимания - разновидность зоофилии (от пони + мания).
...
Рейтинг: 0 / 0
ControlType
    #32200061
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется что Нуф-Нуф в чем то прав
Если б Остап узнал, что он играет такие
мудреные партии и сталкивается с такой испытанной защитой,
он крайне бы удивился.
(12 стульев)
Если бы я знал ,что программируя на VB ,использую такие мудренные понятия как interface,late binding,early binding- я бы тоже очень удивился
2 В.С
А ходить то они не разучились?
...
Рейтинг: 0 / 0
ControlType
    #32200062
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта, Лох, я потомучто надо отлыниваю... В смысле не потому что надо, а мне надо потому и отлыниваю... Тьфу! Вообщем, на стройке я сейчас работаю, а там жараааааааа... Остыну, перечитаю все и (может быть) че нить кину в топку :)
На счет раскладывания по полочкам, Володь, то я сам такой - человек-система. Понять и запомнить могу только систему :( Но данный топик, имхо, не тот случай. Лично мне все по сабжу понятно на подсознательном уровне, что-ли... Даже не знаю как пояснить (жарааааааа), но понятно :)

//пошел туевохученожить, ибо соскучился по серому...
...
Рейтинг: 0 / 0
ControlType
    #32200067
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Ну раз уж я еще не ушел нажираться - я тебя слегка поправлю в адном маленьком, но очень важном заблуждении.
То, что контролы можно создавать программно и к ним можно обращаться - это еще не значит, что интерфейс класса динамически меняется.
Просто у формы св-во по умолчанию - Controls. А у Controls св-во по умолчанию - Item.
Так что когда ты пишешь frm!ИмяКонтрола - это на самом деле frm.Controls.Item("ИмяКонтрола"). Как видишь, в такой записи можно и обычными методами (динамически не создаваемыми) пользоваться. А frm!ИмяКонтрола приводится компилятором именно к frm.Controls.Item("ИмяКонтрола") - если верить Гетцу.
Конечно, аксес создает одноименное св-во для каждого контрола, но даже если бы он не делал - все все равно бы работало.
Ну да и хрен бы с ним.

2 Нуф-Нуф
Да я тоже интуитивно все это понимал. Но объяснить не мог. Вот и чувствовал себя как собака - все понимаю, сказать ничего не могу.
Ты это, на стройке копытца побереги, а то придется пятачком клаву топтать

2 VIG
Да вообще-то такие вещи знать надо. И, программируя на VB, радоваться тому, что об этой херне можно не задумываться.
Но базовые знания все равно необходимы. А это именно база.

Все. Ушел жрать.
...
Рейтинг: 0 / 0
ControlType
    #32200076
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Л.П
Приятного аппетита!
Да вообще-то такие вещи знать надо
Да вообще я знаю. Я даже знаю какой из типов связывания использует IDispatch,а какой-VTable.
...
Рейтинг: 0 / 0
ControlType
    #32200079
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 VIG:

Ходить - разучились, конечно. Но тут уж каждый выбирает для себя - или язык, или ходить.

2 Нуф-нуф:

Сейчас посмотрим, кто из нас прав. Есть ли какие-то практически полезные следствия из понимания (тьфу, опять зоофилией занялся) внутреннего устройства компилятора. Думаю, есть. Тот, кто понимает, не будет постить в форум вопросы типа "а почему у меня не работает". Или будет, но все равно меньше. (Кстати, это не камень в огород основоположника этого топика, его вопрос был другой.)

2 Лох:

Насчет коллекции контролов понял и прочувствовал. Но осталось ли у нас что-то недоразъясненное?
...
Рейтинг: 0 / 0
ControlType
    #32200109
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 VIG
Приятного аппетита!
ИК!
то есть спасибо!
Да вообще я знаю
тагда ПАЧЕМУ МАЛЧИШЬ???
Вах!
Три раза ИКККК!

2 Саныч
Но осталось ли у нас что-то недоразъясненное
Судя по формулировке очень хочется чтобы осталось?
Или где-то чего-то я не понял?
Есть ли какие-то практически полезные следствия из понимания
Есть. Собственно понимание. Оно нужно не только для того, чтобы вопросы не задавать. А нужно оно для того.... Ну хер знает зачем это понимание нужно.
Кто что хочет от жизни (или от аксеса) - затем оно и нужно. Наверное.
Ик.
Вах.
...
Рейтинг: 0 / 0
ControlType
    #32200131
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сова, будь здорова. Ты, кажется, чихнула.

> > Но осталось ли у нас что-то недоразъясненное
> Судя по формулировке очень хочется чтобы осталось? Или где-то чего-то я не понял?

Лох, это мне положено отвечать вопросом на вопрос, а не тебе. Мне хочется, чтобы не осталось, но для этого нужно, чтобы кто-нибудь меня распутал.
...
Рейтинг: 0 / 0
ControlType
    #32200177
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Л.П
тагда ПАЧЕМУ МАЛЧИШЬ???
Есть много причин
1 Я МАЛЧИШЬка
2 Молчание-золото.
3 Молчание-знак согласия.
4 Я знаю только то ,что ничего не знаю.
(нужное подчеркнуть,ненужное зачеркнуть)
...
Рейтинг: 0 / 0
ControlType
    #32200185
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох:

То есть пока мне кажется, что все понятно. Где я не прав?

2 VIG:

Так чего же мы с Лохом не понимаем?
...
Рейтинг: 0 / 0
ControlType
    #32200202
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Да мне тоже теперь все понятно. Вернее, оно и раньше было понятно, но теперь я это еще и объяснить могу. Главное - RTFM

В одной фирме при приеме на работу соискателей просили заполнить анкету, в которой надо было указать степень владения разными технологиями. Ответы были примерно следующими
1. Ни разу не слышал
2. Читал но не разу не пробовал
3. Могу использовать под руководством других
4. Владею свободно, могу ипользовать самостоятельно
5. Могу учить других

Вот, теперь еще в одном кусочке аксеса я перешел с 4-й ступени на 5-ю

Так чего же мы с Лохом не понимаем?
Как ёжики размножаются
...
Рейтинг: 0 / 0
ControlType
    #32200209
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
1. Эта градация неадекватна. Многие попадают на стадию 5 минуя все остальные.

2. Я чувствую, что что-то объяснял не так. Что именно? Можешь объяснить мне?
...
Рейтинг: 0 / 0
ControlType
    #32203289
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, а все-таки. Мои чайникообразные попытки объяснить действительность были очень наивны?
...
Рейтинг: 0 / 0
ControlType
    #32203319
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уж было хотел ответить, но засомневался - правильно ли я сам все понял.
Еще немного посомневаюсь и чего-нибудь рожу.
По поводу попыток объяснить действительность.
Вопрос был (перефразируя):
Почему работая с объектом, реализующем некий интерфейс, через этот самый интерфейс можно вызывать методы, в него не входящие?
Ты объяснял, что объект реализует кучу интерфейсов (что верное), что некоторые интерфейсы неполноценны (что не верно), что интерфейсы наследуют один от другого (что неверно), что компилятор имеет список волшебных/полноценных интерфейсов (что тоже как-то не очень правильно), что Contol - это не объект, а TextBox - это объект (тож неверно, оба не объекты, а интерфейсы) и т.п.

Подниму литературу по C - сформулирую мысль и выложу ее сюда. Или не подниму литературу, само пусть в башке уляжется.
...
Рейтинг: 0 / 0
ControlType
    #32203329
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
OK. Я буду тебе этот топик раз в неделю перетаскивать наверх. :^)
...
Рейтинг: 0 / 0
ControlType
    #32203330
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сам буду его своими пятничными песнопениями поднимать
...
Рейтинг: 0 / 0
ControlType
    #32203331
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Жалко, что переименовать топик нельзя...

(Ой. Ща атор топика обидится.)
...
Рейтинг: 0 / 0
ControlType
    #32203389
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что интерфейсы наследуют один от другого (что неверно )
Спорный вопрос.Цитирую:
"Каждый определяемый для СОМ-компонента интерфейс должен быть унаследован от IUnknown или от интерфейса ,который сам в свою очередь порожден от IUnknown. Этот принцип называется наследованием интерфейсов"
Visual C++ и MFC. Дэвид Уайт,Кенн Скрайбнер,Юджин Олафсен.

Кстати то же самре относится и к диспинтерфейсам,которые все унаследованы от Dispatch/
...
Рейтинг: 0 / 0
ControlType
    #32206345
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, с прошедшей пятницей тебя! Ты тут собирался чего-то сформулировать...
...
Рейтинг: 0 / 0
ControlType
    #32206348
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня после пятницы формулировалка отвалилась
Усе будет.
...
Рейтинг: 0 / 0
ControlType
    #32206350
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Блин, прозевал я пятницу, прозевал, абзац на мою седую голову...
...
Рейтинг: 0 / 0
ControlType
    #32209140
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А вот вопрос на засыпку. Функция typename что возвращает? Если объект одновременно и то, и другое, и пятое, и десятое, - кого из них она вернет? Значит, есть среди этих пятых и десятых нечто одно, которое действительно Сам Объект. А всё остальное - это просто интерфейсы.
...
Рейтинг: 0 / 0
ControlType
    #32209164
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да все оно просто интерфейс.
Просто какой-то один из них - особенный. Причем какой-то один - для каждого объекта свой. Т.е. объект сам выбирает, какой из своих интерфейсов почтить особой честью
TypeName вернет имя этого интерфейса.
Если будем работать с объектом через какой-либо другой интерфейс (интерфейс1), то все методы, не входящие в интерфейс1 будут отправлятся компилятором в этом самый особенный интерфейс. Если метода нет и там - то будет ошибка времени выполнения. Даже если этот метод есть еще в каком-либо интерфейсе у объекта.
Блин, своего Роджерса про%бал куда-то (ну правильно, 5 лет не читал)... Вот и сижу теперь как мудак. Все понимаю, но на пальцах. Опять хочу умное слово вспомнить
Как же эта хрень называется...
...
Рейтинг: 0 / 0
ControlType
    #32212597
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тяпница! :^) Лох, я пришел к тебе.
...
Рейтинг: 0 / 0
ControlType
    #32212600
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет мне покоя...
Поеду завтра за про%банным Роджерсоном
Стану опять умным.
Главное его найти, а то ж книга с прошлом тысячелетии издавалась в последний раз..
...
Рейтинг: 0 / 0
ControlType
    #32216703
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то объясняли мне, объясняли, а я все равно ничего не понял. Вот давеча столкнулся с тем же самым. Понадобилось мне перебрать все поля рекордсета и поискать совпадения с заданными названиями. Я написал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
dim atrib( 10 ) as string
dim rst as recordset
dim i as long

set rst=...
for i= 0  to  10 
  for each field in rst.fields
   if rst.fields.field.name=atrib(i) then
    msgbox( "Нашел" )
   end if
  next
next

Естественно, не работает
А вот если написать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
dim atrib( 10 ) as string
dim rst as recordset
dim i as long
dim fld as field
set rst=...
for i= 0  to  10 
  for each fld in rst.fields
   if fld.name=atrib(i) then
    msgbox( "Нашел" )
   end if
  next
next


То все работает. Где тут собака порылась?
...
Рейтинг: 0 / 0
ControlType
    #32216714
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да потому что х%ню ты написал в первом примере

for each field in rst.fields
field - это у тебя что, имя переменной такое??

rst.fields. field
field - это у тебя что, св-во коллекции Fields? или "field" - такое поле в рекордсете?

Тебе бы это... справку по VB почитать для начала..
Тогда и собаки рыться перестанут
...
Рейтинг: 0 / 0
ControlType
    #32216729
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
field - это, по логике вещей как-бы экземпляр класса fields. Чего же он в браузере при выборе fields не отображается?
И чем второй вариант принципиально отличается от первого?
...
Рейтинг: 0 / 0
ControlType
    #32216736
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Козе понятно, что в рекордсете есть класс полей, "поле" и его название. Нет, ты должен явно переменную ввести ЗдроавствуйтеЯПоле, и через нее обращаться к свойствам конкретного поля. Ерунда какая-то.
...
Рейтинг: 0 / 0
ControlType
    #32216749
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Козе понятно - ну значит на козе и программируй.
Если не хочешь явно описывать переменные - убери из модулей Option Explicit. Колхоз - дело добровольное. Но тогда ты сам себе буратинка.
...
Рейтинг: 0 / 0
ControlType
    #32216751
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что по твоему должно выражать твое
rst.fields.field.name ?
fields-это коллекция
а field - это чего?
уж либо fields("name") либо fields(number)
тогда пожалуйте, а так полная чушь.
...
Рейтинг: 0 / 0
ControlType
    #32216767
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, в условии надо на конкретное поле ссылаться (либо явно, либо через переменную)
Но ведь это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
dim atrib( 10 ) as string
dim rst as recordset
dim i as long
dim fld as field
set rst=...
for i= 0  to  10 
  for each field in rst.fields
   if fld.name=atrib(i) then
    msgbox( "Нашел" )
   end if
  next
next

тоже не работает
...
Рейтинг: 0 / 0
ControlType
    #32216776
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще наверное объяснять так: слово "field" - не является ЗАРЕЗЕРВИРОВАННЫМ, и поэтому, если только не встречается в описаниях после AS, ничего не означает, кроме как неописанную переменную
...
Рейтинг: 0 / 0
ControlType
    #32216782
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, как это не зарезервированное?
Библиотека DAO, класс field, в нем куча компонентов, в том числе и Name.
...
Рейтинг: 0 / 0
ControlType
    #32216815
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 wara:
тормоз.
смотри в хелп хотя бы
For Each элемент In группа
[инструкции]
[Exit For]
[инструкции]
Next [элемент]
, где
Элемент- Обязательный. Переменная, используемая для выполнения итераций по элементам семейства или массива . Для семейств элемент может быть только переменной типа Variant, универсальной объектной переменной или переменной, представляющей любой конкретный объект . Для массивов элемент может быть только переменной типа Variant.

какого хрена ты вместо переменной типа объект
суешь само название класса объекта.
и еще хочешь чтобы все заработало.
...
Рейтинг: 0 / 0
ControlType
    #32216837
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж, точно, заклинило, прочел повнимательнее справку и разобрался...
...
Рейтинг: 0 / 0
ControlType
    #32265471
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Итак, до меня дошли слухи, что Лох хочет вернуться к этой дискуссии...
...
Рейтинг: 0 / 0
ControlType
    #32265474
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горе мне, бедному еноту...
Теперь каждую пятницу... вместо того чтоб пиво пить... буду книфку умную искать...
А когда же петь???
...
Рейтинг: 0 / 0
ControlType
    #32265494
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А ты пой молча. То есть не в форум.

А насчет енотов - это мысль. 1 большой енот по имени Лох = 100 обычных енотов...
...
Рейтинг: 0 / 0
ControlType
    #32265597
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тьфу. Это называется не молча, а устно!
...
Рейтинг: 0 / 0
98 сообщений из 98, показаны все 4 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ControlType
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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