|
|
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Надо узнать, какой вид контрола на форме. Компонент ControlType к классу Controls не отностится, через точку он не виден, но тем не менее если написать dim ctl as control set ctl=Me!ctl1 debug.print ctl.controlType Значение константы преспокойно прочитается. В чем тут дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 19:32 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Если описать нечто как Control, то через точку будет виден самый минимум. Если описать как TextBox, CommandButton и т.п., то будет видно гораздо больше. Однако работать все будет в обоих случаях. Возможно, ControlType из таких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:13 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Так в том то и дело, что нет у класса Control компонента ControlType, я и в браузере объектов смотрел. Если для него нет такого компонта, то почему оно работает? Я уже не первый раз с такой штукой сталкиваюсь - в браузере нет, а в справке - примерчик, рабочий. Они что там, в Майкрософт "секретные свойства" что-ли используют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:20 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Повторяю еще раз. Например, DefaultValue у TextBox'а есть, а у просто Control'а нет. Это значит, что оно у TextBox'а свое, а не унаследованное от Control'а. Но это не мешает писать MyControl.DefaultValue тогда, когда MyControl описан как Control, Object или Variant. Вот и ControlType так же (уже не "возможно", а точно: у TextBox'а и т.п. оно через точку появляется). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:26 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Всем здрасте... Санычь, можно я тоже попробую? :) Control - это, как бы, абстрактный класс, поэтому в нем фигурируют только те свойства и методы, которые используются во всех типах контролов данного приложения (Access, например). Когда ты присваиваешь своей переменной ctl конкретный контрол, то эта переменная уже не является "абстрактным понятием", а ссылкой на абсолютно конкретный объект со всеми его методами и свойствами. Попробуй заменить свою дим на эту: "dim ctl as Checkbox". В данном случае система будет абсолютно точно знать, что за свойства и методы использует данный конкретный объект и вывалит тебе не только КонтролТайп, но и еще дох%рища того, чего ты ну никак не увидишь используя Control... //млин... день прошедший без поста в форум - зря прожитый день ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:31 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Мне непонятно, почему в браузере выбрав класс Control я не вижу напротив него компонент ControlType. Когда я определяю тип контрола, я еще не знаю, textbox это или что-то иное. Короче, косяк у них в браузере объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:31 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
млин... ь=" " сорри... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:34 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Нуф-нуф, да откуда я знаю, что это CheckBox то, черт подери. Я и хочу узнать, что это за контрол через класс Control. А в чертовом браузере между ними нет соответствия. Откуда я должен догадаться, что Control.ControlType работает? Я ж не телепат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:34 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
>Короче, косяк у них в браузере объектов. Угу :) //не будет спорить... давича мне сказали что Логистика занимается ТОЛЬКО учетом товарных запасов (или что-то в этом роде), так я согласился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:36 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Третья попытка. :^) DefaultValue, ControlType и десятки других не описаны ни в Control, ни в Object, ни в Variant. Однако если данная переменная, описанная как Control, Object или Variant, ссылается на объект типа TextBox и т.п., то у нее появляются DefaultValue, ControlType и десятки других. Нуф, привет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:39 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Нуф-нуф, так чего ты со всем соглашаешься, если не согласен? У тебя чего, своего мнения нет? Почему я думаю, что у них косяк в браузере я обосновал - обоснуй теперь ты, почему там не косяк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:39 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Тогда почему вот это работает dim ctl as control for each ctl in me. controls debug.print ctl.ControlType next Тут тоже ctl на кого-то ссылается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:43 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
> Откуда я должен догадаться, что Control.ControlType работает? Я ж не телепат. Просто это значит, что у Control'a этого свойства нет. Оно сделано у всех классов, которые наследуют свойства Control'a, однако это свойство у каждого из них свое, а не унаследованное. Кстати, Left и Top, которые тоже могли бы быть созданы на уровне класса Control, тоже там отсутствуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:43 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
А еще у Control'a нет св-ва Value Однако я его постоянно использую. И еще много чего нет Зато оно есть в производный типах. То ли это хитрое делегирование, то ли это не менее хитрое позднее связывание. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:44 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Короче, бардак у них там полный. Снаружи кажется, что все гладко, а если копнуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:44 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
> Тут тоже ctl на кого-то ссылается? Конечно. На тот контрол, ControlType которого выдается на очередном обороте цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:44 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
wara, свое мнения я высказываю только один раз. Если от этого что-то зависит в моей жизни, то я могу высказать и обосновать его оч.много раз. Что зависит в моей жизни от того, что ты думаешь по поводу Логистики или по поводу броузера? Прааааальна :) Тебе дали ответ на твое "почему" чтобы ты знал и более не парился над этим. Как распорядиться этими знаниями - другой вопрос. Мне тоже случай с ControlType кажется достаточно нелогичным (ибо любой контрол должен уметь отвечать что он за зверь, а значит должен иметь такое свойство). Но лично я непарюсь... Видимо, не все контролы, поподающие под семейство Controls могут иметь данное свойство. Или просто есть что-то еще, чего я не знаю. Но это НЕ МЕШАЕТ мне спокойно работать с данным свойством... Чего и вам желаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:45 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Саныч, нет в COM-е наследования. Просто нет. Есть имплементация. Так что твое объяснение не катит. Да, может - это хитрые ограниченные интерфейсы? Наподобие IUnknown, который есть у всех, но нигде не показывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:47 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 wara: Вот я пишу: dim ctl as variant for each ctl in me. controls debug.print ctl. DefaultValue next Тут есть что-то странное или тут нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:48 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Кстати, здравствуй Нуф! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:49 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Лох: Если есть только имплементация, то все еще проще. Просто забыли у Control'а добавить строчку описания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:50 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Лох Позорный, А где мне надо было эти "производные типы" смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:51 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
> А где мне надо было эти "производные типы" смотреть? TextBox CommandButton и т.д. (их штук 15, наверно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:53 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Саныч Думаешь в библиотеку типов просто не включили? Это подло с их стороны. Только вчера читал, что в дотнет у Int32 описали 5 методов из 20. Какие падлецы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:53 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Тут есть что-то странное или тут нет? Для меня есть. Почему этого DefaultValue не видно в браузере если выбран класс Control? Это не логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:54 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Лох: Африка, дикие люди, однако... А вот интересно, что у Control'а есть ItemData, хотя оно нужно только для ComboBox'а и ListBox'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:55 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Человек из Кемерово А где мне надо было эти "производные типы" смотреть? Та там же и смотри - в Object Browser Всякие текстбоксы и т.д. Кстати, "производные" действительно надо было взять в кавычки. Дабы не вводить ортодоксов ООП в заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:56 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, TextBox CommandButton и т.д. (их штук 15, наверно Это я и сам знаю, я спрашивал : "Где смотреть?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:56 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
wara, я написал не Control, а Variant. У Variant'а тоже должны быть все мыслимые в мире свойства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:56 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Блин, что-то дискуссия слишком быстро идет. Я за ней не успеваю Пойду атдахну аднака ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:57 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
> Это я и сам знаю, я спрашивал : "Где смотреть?" Вот у них и смотреть. Что значит где? В Object Browser'е у классов TextBox, CommandButton и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 20:58 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
ALL Куда мне ткнуть в браузере объектов, чтобы увидеть все компоненты, производные от класса Control? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:00 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Драсте (в ответ на ответы :) Лох, (млин!!! Если не хочешь менять ник, то хотя бы придумай себе для нас ласкательное какое-нить обращение, а то набирая эти три буквы такой внутренний дискомфорт чуйствую:) эта, спасибо за отклик по поводу "мыши"... Ежли б не ты с Феддом, то вообще пошел бы и повесился... //вываливается из дискуссии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:01 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Никуда. Такой возможности нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:01 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Человеку из Кемерово Вот блин. Я же сказал - производные в кавычки. Нет наследования Есть интерфейсы Они то и отображаются в OB Читай теорию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:02 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 Нуф-Нуф Да не, вешаться тупо. Разве что на доску почета Хочешь я тебе чемодан прозакса привезу? Будешь вслед за King Crimson петь Prozakc Blues ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:04 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Тогда откуда я должен был догадаться, что в момент обращение к контролу через класс котрол можно прочитать значение "производного" класса? Корче, чтобы программировать на Access надо быть телепатом - таков мой общий вывод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:05 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
wara, но ведь тот же вопрос спрашивается, если мы описываем нечто как Variant. Почему в случае с Variant'ом тебе это не мешает? Тоже надо быть телепатом. Не хочешь быть телепатом - описывай как TextBox и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:08 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Я торчу Однако, до появления фичи IntelliSens все программеры были телепатами Лох не... Спасибо... У меня ни слуха ни голоса нету для блюзов //точно ушел... чтобы не заторчаться до смертюги :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:12 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
вара, не хочу что бы ты обиделся и не хочу продолжать дискуссию и не хочу говорить элементарные (вроде) вещи и не хо... НО! И не хочу, чтобы ты думал и говорил (!!!) кому-нибудь, что Акс - дуст... Даже не Акс, а ВБА в целом! Тот список, который тебе вываливается после "точки" - это всего-лишь подспорье, возможная помощь программеру. На счет ТЕЛЕПАТОВ - это было круто! Чес.слово!!! Ты зачем написал "Dim ctl As Control"? Просто так угадал? Стелепатировал? Имхо нет. Ты написал это потому что знаешь, что такое дим и зачем вообще эта строка. А зачем ты написал "Set"? Тоже телепатия? Так вот и с этими долбаными свойствами - программист, прежде чем работать с объектами должен З_Н_А_Т_Ь их свойства и методы. Не телепатировать, а ЗНАТЬ!!! Control не является, ну как бы это сказать, самостоятельным объектом - это некий абстрактный контейнер. Контейнером для конкретных объектов! У него вообще, в принципе свойств не должно быть... А ОбжектБроузер и выпадающий список - просто в помощь. Через них нельзя программировать, а только можно ускорять написание программы (за счет меньшего нажатия клавиш). И если ты не ЗНАЕШЬ свойств и методов объектов, с которыми собираешься работать, то КАК ты вообще собираешься работать? Всем пока... //точно-при-точно соскачил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:27 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Нуф-нуф, Может ты меня еще в угол поставишь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 21:37 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Ну, с новыми силами.... Все таки вопрос хороший Если описываем что-то как объект, реализующий конкретный интерфейс (Dim blablabla As SomeObject), то должно применятся раннее связывание. При попытке обращения к методу, который не описан в библиотеке типов - должна быть ошибка на этапе компиляции. Если описываем что-то как Object (или Variant), то должно применятся позднее связывание. Вызвать можно что угодно, при компиляции ошибок не будет, будут ошибки времени выполнения. Есть Control. Control - имя интерфейса. В нем есть методы и св-ва. Есть TextBox. TextBox - имя интерфейса. В нем есть методы и св-ва. Оба находятся в одной библиотеке. Описания обоих - в одной библиотеке типов. С точки зрения COM - одна фигня. Братья близнецы однояйцевые. Почему в таком куске кода: Код: plaintext 1. 2. 3. при компиляции выдается ровно одна ошибка? а не две? и не ноль? Аналогично Код: plaintext 1. 2. 3. Знатоки COM! Ответьте мне, какое ключевое слово я пропустил при изучении этой технологии??? Где зарыта разница в описании интерфейсов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 22:04 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Я не знаток, но я не понял. (Ух, как прозвучало... Надо записать.) Я не понял, в чем вопрос. По-моему, на нашем уровне все объяснимо. 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), то компайлер до момента позднего связывания не проверяет ничего, ибо отсутствие свойства в интерфейсе еще не означает, что этого свойства так и не будет у того объекта, на который во время исполнения сошлется наша переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2003, 23:56 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Лох, эта, по поводу твоего примера от вчера 22:04... Представь, что в одной из форм есть такой код: Код: plaintext 1. 2. Ну прикинь, ежли б компилятор выдавал ошибку и на Form , то я указав в переменной данную форму один хрен не смог бы обратиться к этому ее свойству (huy), которое отсутствует у других форм, но у одной я сам его прописал. Ошибка во время компиляции и все на этом... А если указана Form_blablabla , то компилер туда может сразу заглянуть и проверить, есть ли там такое... //топик напоминает старый добрый анекдот про программера и шампунь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 08:41 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
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. 2 All Пробую переформулировать вопрос Как нужно описать интерфейс Control (или Form), чтобы VB вел себя следующим образом: Если обращаемся к методу, присутствующему в описании Control (в библиотеке типов), то направлять этот метод собственно интерфейсу (используя раннее связывание) Если обращаемся к методу, отсутствующему в описании Control, то перенаправляем этот метод интерфейсу IDispatch (позднее связывание) ????? Похожий механизм исползуется при агрегации объектов (в реализации IUnkown::QueryInterface), но применяется к интерфейсам целиком, а не к отдельным методам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 09:18 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Поправочки и пояснения к предыдущему посту 2 Саныч И Control, и TextBox - суть интерфейсы. Могут присутствовать у одного и того же объекта. Взяли у объекта интерфейс Control - работает с ним как с контролом, взяли интерфейс TextBox - работаем как с текстбоксом. Но поведение VB (на этапе компиляции) различается в случае если мы работает с объектом как с контролом или как с текстбоксом. Почему? Видимо потому, что в интерфейсах есть какое-то принципиальное отличие, но как оно называется (и на что еще влияет) я не знаю. 2 Нуф-Нуф Примерчик не совсем корректный. "Debug.Print frm.Huy" при компиляции не ругается, но ругается при выполнении. Что еще больше запутывает ситуацию. Выходит, тут даже не позднее связывание, ибо IDispatch для объекта один, и должен успешно отрабатывать вызом метода (Class1.Huy()) независимо от того, к какому интерфейсу он принадлежит. Это можно подтвердить добавив в конец строчки Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 09:43 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Ау! Аль перевелись бухатыри на Руси? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 12:14 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Сова, открывай, медведь пришел. Лох, привет. На мой взгляд (собсаря, я это и имел в виду, но невнятно изъяснился), дело вот в чем. TextBox и Form_Форма1 - это непосредственно то, чем данный объект является. Называй хоть классом, хоть интерфейсом. (Кстати, у класса тоже есть свой интерфейс, сиречь список его свойств и методов, включая синтаксис обращения к ним.) По описанию TextBox и Form_Форма1, содержащемуся соответственно в компайлере и в файле mdb, компайлер однозначно и полностью видит весь интерфейс объекта и знает, что с этим объектом можно делать (кроме списка контролов формы, который на этапе компиляции не проверяется, если писать через !). С другой стороны, Form, Control, Object и Variant - это всего лишь некие кусочки интерфейса объекта либо даже менее того. Объект, описанный как TextBox, поддерживает весь интерфейс Control'а и плюс что-то свое. Но объект, описанный как просто Control, - это нонсенс, его можно описать, но с ним ничего нельзя сделать, пока он не сослан на конкретный TextBox и т.п. А попытка описать что-то As New Object вообще обречена - строчка красится красным. Именно поэтому у таких переменных компайлер знает только то, что он ничего не знает, и оставляет проверку синтаксиса до момента связывания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 14:37 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Медведь, ховайся в бульбу. Ща разорву на тысячу маленьких медвежат 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 не найдя метод в библиотеке типов не ругался при компиляции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 15:47 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Мммммммм... Лох, ты меня ввел в задумчивость. > > 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 не найдя метод в библиотеке типов не ругался при компиляции? Не факт, что это существует. Все юзерские интерфейсы с точки зрения этого свойства одинаковы. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2003, 19:14 |
|
||
|
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 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Жалко, что переименовать топик нельзя... (Ой. Ща атор топика обидится.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 15:14 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
что интерфейсы наследуют один от другого (что неверно ) Спорный вопрос.Цитирую: "Каждый определяемый для СОМ-компонента интерфейс должен быть унаследован от IUnknown или от интерфейса ,который сам в свою очередь порожден от IUnknown. Этот принцип называется наследованием интерфейсов" Visual C++ и MFC. Дэвид Уайт,Кенн Скрайбнер,Юджин Олафсен. Кстати то же самре относится и к диспинтерфейсам,которые все унаследованы от Dispatch/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2003, 15:54 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Лох, с прошедшей пятницей тебя! Ты тут собирался чего-то сформулировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2003, 16:06 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
У меня после пятницы формулировалка отвалилась Усе будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2003, 16:12 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Блин, прозевал я пятницу, прозевал, абзац на мою седую голову... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2003, 16:13 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
А вот вопрос на засыпку. Функция typename что возвращает? Если объект одновременно и то, и другое, и пятое, и десятое, - кого из них она вернет? Значит, есть среди этих пятых и десятых нечто одно, которое действительно Сам Объект. А всё остальное - это просто интерфейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 01:18 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Да все оно просто интерфейс. Просто какой-то один из них - особенный. Причем какой-то один - для каждого объекта свой. Т.е. объект сам выбирает, какой из своих интерфейсов почтить особой честью TypeName вернет имя этого интерфейса. Если будем работать с объектом через какой-либо другой интерфейс (интерфейс1), то все методы, не входящие в интерфейс1 будут отправлятся компилятором в этом самый особенный интерфейс. Если метода нет и там - то будет ошибка времени выполнения. Даже если этот метод есть еще в каком-либо интерфейсе у объекта. Блин, своего Роджерса про%бал куда-то (ну правильно, 5 лет не читал)... Вот и сижу теперь как мудак. Все понимаю, но на пальцах. Опять хочу умное слово вспомнить Как же эта хрень называется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 02:19 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Тяпница! :^) Лох, я пришел к тебе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2003, 20:08 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Нет мне покоя... Поеду завтра за про%банным Роджерсоном Стану опять умным. Главное его найти, а то ж книга с прошлом тысячелетии издавалась в последний раз.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2003, 20:11 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Что-то объясняли мне, объясняли, а я все равно ничего не понял. Вот давеча столкнулся с тем же самым. Понадобилось мне перебрать все поля рекордсета и поискать совпадения с заданными названиями. Я написал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Естественно, не работает А вот если написать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. То все работает. Где тут собака порылась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:09 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Да потому что х%ню ты написал в первом примере for each field in rst.fields field - это у тебя что, имя переменной такое?? rst.fields. field field - это у тебя что, св-во коллекции Fields? или "field" - такое поле в рекордсете? Тебе бы это... справку по VB почитать для начала.. Тогда и собаки рыться перестанут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:17 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
field - это, по логике вещей как-бы экземпляр класса fields. Чего же он в браузере при выборе fields не отображается? И чем второй вариант принципиально отличается от первого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:23 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Козе понятно, что в рекордсете есть класс полей, "поле" и его название. Нет, ты должен явно переменную ввести ЗдроавствуйтеЯПоле, и через нее обращаться к свойствам конкретного поля. Ерунда какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:27 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Козе понятно - ну значит на козе и программируй. Если не хочешь явно описывать переменные - убери из модулей Option Explicit. Колхоз - дело добровольное. Но тогда ты сам себе буратинка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:33 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
и что по твоему должно выражать твое rst.fields.field.name ? fields-это коллекция а field - это чего? уж либо fields("name") либо fields(number) тогда пожалуйте, а так полная чушь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:34 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Ладно, в условии надо на конкретное поле ссылаться (либо явно, либо через переменную) Но ведь это Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. тоже не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:42 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Проще наверное объяснять так: слово "field" - не является ЗАРЕЗЕРВИРОВАННЫМ, и поэтому, если только не встречается в описаниях после AS, ничего не означает, кроме как неописанную переменную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:46 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Лифчик, как это не зарезервированное? Библиотека DAO, класс field, в нем куча компонентов, в том числе и Name. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:49 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
2 wara: тормоз. смотри в хелп хотя бы For Each элемент In группа [инструкции] [Exit For] [инструкции] Next [элемент] , где Элемент- Обязательный. Переменная, используемая для выполнения итераций по элементам семейства или массива . Для семейств элемент может быть только переменной типа Variant, универсальной объектной переменной или переменной, представляющей любой конкретный объект . Для массивов элемент может быть только переменной типа Variant. какого хрена ты вместо переменной типа объект суешь само название класса объекта. и еще хочешь чтобы все заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 13:07 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Да уж, точно, заклинило, прочел повнимательнее справку и разобрался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 13:19 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Итак, до меня дошли слухи, что Лох хочет вернуться к этой дискуссии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 17:42 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
Горе мне, бедному еноту... Теперь каждую пятницу... вместо того чтоб пиво пить... буду книфку умную искать... А когда же петь??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 17:45 |
|
||
|
ControlType
|
|||
|---|---|---|---|
|
#18+
А ты пой молча. То есть не в форум. А насчет енотов - это мысль. 1 большой енот по имени Лох = 100 обычных енотов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 18:04 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1679439]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
139ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 499ms |

| 0 / 0 |
