powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Различие обращений к объектам в форме и в модуле
25 сообщений из 55, страница 2 из 3
Различие обращений к объектам в форме и в модуле
    #32476657
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Только не Form_frmForm, а Forms!frmForm. :^)
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476660
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно, не подумал :)
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476662
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькая поправочка.
синтаксис Func Me вполне легитимен, так как в этом случае Ме выступает синонимом Forms!frmForm, а вот внутри функции ( если она определена вне формы), Ме уже не доступен.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476667
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да работает все - и точка и "екскламэйшен марк".
все таки понять невозможно О ЧЕМ спрашивают, закипая.
может че другое не работает или перестает...?

ЗЫ1 передача объектных переменных - шибко тонкая и, кстати, плохо донесенная до шикорой общественности вещь. Важно понимать, где оно попадает по ссылке, а где по значению - иначе легко назакрытый объект оставить.

ЗЫ2 применительно к формам (объектам акксесс) - дважды тонкая. (тут я как-то "наблюл" в местном форуме). Вывод не окончательный, но, похоже, передача по ссылке с последующим манипулированием свойствами контролов,приводит к переходу в режим "контроля доступа". Передача по значению как будто проходит безбедно.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476669
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ох ты, я увидел, что он хочет в функции - он там Me хочет...
Какая радость, что его там нет.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476671
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Victosha
Да тут и без таких тонкостей все ясно. Товарищ просто не понимает разницу между глобальными и локальными переменными.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476672
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Точнее: между формальными и фактическими параметрами.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476675
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вот так бы сразу я не стал...
но, ясно, что человек либо поленился F1 нажать, либо не понял вот этого
(вырезка из хелп на ошибку)

Invalid use of Me keyword


The Me keyword can appear in class modules. This error has the following causes and solutions:

The Me keyword appeared in a standard module.
The Me keyword can't appear in a standard module because a standard module doesn't represent an object. If you copied the code in question from a class module, you have to replace the Me keyword with the specific object or form name to preserve the original reference.

The Me keyword appeared on the left side of a Set assignment, for example:
Set Me = MyObject ' Causes "Invalid use of Me keyword" message.

Remove the Set assignment.

Note The Me keyword can appear on the left side of a Let assignment, in which case the default property of the object represented by Me is set. For example:

Let Me = MyObject ' Valid assignment with explicit Let.
Me = MyObject ' Valid assignment with implicit Let.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476680
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не думаю, что он получил именно эту ошибку. Эта ошибка возникает все-таки внутри зоны видимости Me. А он пытался писать Me вне этой зоны.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476681
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не прав. Первая треть этого хелпа - это действительно оно.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476688
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, Саныч, ты порой блокируешься,как впрочем и многие,
да НЕ ПЫТАЛСЯ Я ПИСАТЬ Me ВНУТРИ ЗОНЫ ВИДИМОСТИ - ПОСМОТРИ НАЧАЛО
Private Sub Ввод_Click() - это функция формы!!!

Я не понимаю, что не понятно . Скажите, только если Me - это ссылка на объект, почему его я не могу передать в любое место и работать с этим объектом (ну разумеется через другую локальную переменную функции в любом месте приложения)
Да и вообще работает же все, только - синтаксис не тот!!!
См. внимательно первый мой пост!!!
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476690
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Так. Всё. Рассказывай все с самого начала. Потому что на все наши попытки что-то понять ты отвечаешь, что мы понимаем неправильно.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476691
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да , еще, я думаю разница в синтаксисе из-за того, что передавая Me в функцию я передаю не ссылку на объект Me, а его default'ное свойство
Во !!!
Хотя я еще толком не поня, что такое Me для формы, и что пойдет как его default'ное свойство.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476692
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обьект передать можешь куда хочешь, а ссылку Ме можешь использовать только в пределах самого обьекта.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476693
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ме для формы это ссылка на ДАННУЮ форму, поэтому МЕ будет работать ТОЛьКО в пределах модуля ДАННОЙ формы.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476695
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в третьих, у Ме нет свойства по умолчанию. Ме означает ссылку на данный обьект или же на его свойства.
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476697
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, все - все с ума посходили, читайте,хоть что пишу - не использую я ссылку Me за пределами формы

А теперь, внимание, правильный объект, точнее его продолжение -

смотрим, что такое Default'ное свойство у объекта Form, на который Me собстно говоря и указывает и видим, что это Controls, у которого разумеется
не может быть того, что я хотел в функции ( My.Requery или My.Form!Поле1 )
Не путайте, где у меня My, где Me !

и разумеется надо в функции использовать
f=My!Поле1
My.Parent.Form.Requery

Так, теперь еще остается понять - почему я передаю описанным образом (т.е самым, что ни на есть обыкновенным ) Default' ное свойство объекта, а не сам объект,
Т.е. как передать в функцию САМ объект , а не его свойство по умолчанию, (ну это уже любопытство проглядывает.)
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476698
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, "правильный объект" надо понимать как "правильный ответ"
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476699
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 EDUDK01
И в третьих, у Ме нет свойства по умолчанию. Ме означает ссылку на данный обьект или же на его свойства. >
Значит оно ТАК РАБОТАЕТ - при передаче параметра в функцию!
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476700
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-) для меня тоже оказалось небесполезно перечитать его, тем более, что про
Me=anotherObject, я, похоже, просто не знал (то есть, что Set не нужен). Между прочим, это практичеки ответ на его вопрос ПОЧЕМУ им () нельзя пользоваться в обычных модулях.
Который я теперь и готов дать в общем виде с комментарием.
--------------------------------------------------------------------------
Ответ
Разрешение использования Me в "обычных" модулях VB(A) с точки зрения управления исполнением кода является прямой дорогой к саморазрушающемуся коду (программе). Соображения безопасности в этом случае менее важны, но синтаксическая реализация такой возможности открывает дверь для "безопасной" подмены кода. Есть ли больший подарок для "вирусописателей" в условиях единства адресного простанства?
-----------------------------------------------------
Комментарий
Использование модулей при создании VB DLL, ( а также в "надстройках" mda) приводит к выводу, что "обычный" модуль - это класс специального типа, имеющий единственный инстанс. Собственно, почему бы и не быть у него Me, раз указатель на него (модуль) все равно как указатель на класс работает.
Возможность такого переуказания безопасна для объектов одного класса, по причине а) общности б) единственности модуля кода для такого класса.

Экземляр класса "обычного" модуля и так существует в единственном виде - ему просто не на кого безопасно переуказаться. Разрешение использования Me в "обычных" модулях, означает фактичекое переуказание на ЛЮБОЙ другой модуль с другим кодом, что и есть вероятность (то есть почти полная достоверность) краха для "нормальной" программы, и "встроенная по синтаксису" дорога для вирусописателей.
---------------------
вот ТАКОЙ комментарий -)
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476701
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
yuniki, ты зачем все время повторял, что с объектом My все работает???
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476702
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написал, почитал, и оказался вдвойне счастлив, от того, что его (Me) там (в обычных модулях) нет

;))
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476705
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч > Ну так объяснить пытался , вроде бы простую весчь,
ну ты с моим объяснением согласен (если наконец понял ,о чем я ) ?
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476706
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вы и настрочили, пока я тут изощрялся.
Честно говоря, совсем грустно стало пытаться понять, о чем человек спрашивает....
ЗЫ
Пойду велосипед с балкона снимать - сегодня сезон открываю.
Пока
...
Рейтинг: 0 / 0
Различие обращений к объектам в форме и в модуле
    #32476709
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И понял, и согласен. Но это ж надо было так путано объяснять... Если б я один не понял, то был бы я тупой. Но ведь никто не понял!

Показываю, как надо было задавать вопрос.

Передаю Me как параметр из формы в процедуру. И в этой процедуре с этим параметром не работает то, что работало с Me в модуле формы. И дальше хотя бы один пример того, что не работает.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Различие обращений к объектам в форме и в модуле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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