powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аксесс сам подменяет имена контролов
35 сообщений из 35, показаны все 2 страниц
Аксесс сам подменяет имена контролов
    #32529696
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Во чего у нас люди заметили. Создаешь контрол, даешь ему имя с пробелами. И видишь в списке свойств, что оно осталось с пробелами. Но в Object Browser'е оно стоит уже с подчеркиваниями вместо пробелов. И код лучше работает, когда пишешь это имя с подчеркиваниями (а не с пробелами и квадратными скобками).
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529785
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"лучше" - это быстрей, или надежней?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529786
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Поскольку я этим занимался не сам, то боюсь эффекта испорченного телефона, но мне сказали, что с квадратными скобками и пробелами какие-то команды просто не работают.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529789
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-)))
не отстану
-)))

не работают при обращении к контролу по ссылке (!) или по вызову метода (.) ?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529792
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я согласен, что я должен был узнать это подробно, прежде чем постить это в форум. Завтра попробую выяснить.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529795
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не "достать" хотел - просто любопытсвовал.
Информация - хорошая.
Возможно, далее, сознательно именно ТАК и надо делать - давать контролам имена с "пробелами" уже вполне мознательно.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529796
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мознательно=сознательно
(я не знаю, откуда там м взялась)
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32529797
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
М взялась с клавиатуры. :^)

Не думаю, что надо это делать сознательно. Лучше, чем с обычными именами, все равно не будет.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531385
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Возвращаю долг. Отвечаю на вопрос, что именно не работало с пробелами и квадратными скобками. Не работали обращения просто по имени контрола, без предшествующего Me или Controls.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531429
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК

авторЛучше, чем с обычными именами, все равно не будет.

Так все-таки - будет лучше или нет?
-))
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531431
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А с какой стати?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531439
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(скромненько так ) я не знаю, это вопрос был.

А СТАТЬ, например, может оказаться следующей.
Почему я НЕ МОГУ считать, что, обращаясь в модуле класса формы к имени контрола без указания Me, Form!тратата и т.п., я обращаюсь на самом деле к (неявно) объявленной локальной переменной этого же класса.
Не намекает ли возможность избежания/уменьшения косвенности при таком обращении на увеличение "эффективности" в смысле скорости доступа к значению переменной. Типа к таблице имен раз доступ прямее, значит он быстрее.

ИЛИ НЕ ЗНАЧИТ?
(Собственно в этом примерно и был вопрос)
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531453
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа! Пишите все имена латинскими буквами и цифрами, без пробелов, апострофов и всяческих служебных символов.
Совет старого ламера
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531454
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, я теперь понял вопрос. Но тогда:

1. Вопрос не в том, давать ли имена с пробелами или без, а в том, писать ли Me. По этому поводу Geo занимался измерениями.

/topic/37453&pg=2#245300

Правда, вариант, начинающийся прямо с имени контрола, у него не рассмотрен.

2. Из того факта, что это переменная, не обязано что-то следовать. Она может быть совершенно виртуальная и реализованная через все тот же контрол. Ведь если мы вместо Me.BorderStyle можем писать просто BorderStyle, это все равно не значит, что BorderStyle - это какая-то отдельная переменная.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531456
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А с Лифчиком я полностью согласен.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531464
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531572
Бред! Какому нармальному челу прийдёт в голову давать имя с " " или ещё какимито значками???
Ты ещё попробуй букву "Зю" вместо пробелов поставить! Может поможет...я конечно не пробывал.....но если что то полуится дай знать :))
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531575
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты файлы до сих пор называешь в формате 8+3 или уже перешел на длинные имена?
А то мало ли что вдруг... :)

Если что-то поддерживается и поддерживается без всяких "иногда", то почему бы не использовать.
BTW: сам я никогда уже не буду называть переменные русскими названиями и темболее вставлять пробелы. Но так категорично - тоже перегиб.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531576
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я согласен, что это бред. Но иногда бывает, что дают на доработку программу, написанную кем-то.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531578
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И нет у меня уверенности, что это поддерживается "без всяких "иногда"".
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531581
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И у меня нет - поэтому и не использую :)
А вот в операторе ! почему-то есть, хотя могу использовать стандартную точку...
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531583
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В каком операторе есть ! ?
Или что есть в операторе ! ?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531588
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Me ! ctlName.Value = 1
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531591
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И что? Это описание возможностей Аксесса или чьего-то стиля программирования?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531596
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример, правда, не совсем удачный...
но говорит и о том и о другом (и о возможностях и о стиле).

А по поводу различных нововведений - взять, например, декларацию переменных - не только в начале ф-ии/процедуры (как в VBS), а в любом месте.

Жить без этого - можно, но не пользоваться - глупо.
В чистом "C" - декларация возможна тоже только в начале ф-ии, что очень сильно раздражает после С++ (где декларировать можно в любом блоке).
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32531727
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я вот всегда стараюсь соломку постелить дополнительно, хотя новые технологии изготовления парашютов вроде обещают мягкую посадку. Например - пользователей учу ВСЕГДА давать файлам имена ТОЛЬКО из латинских букв,цифр и подчеркиваний. Патамушта если в теле письма (Plain text & Rich) оформлять псевдогиперссылку (не знаю, как по науке называется), начинающуюся c file: или \\, то она Микрософтом обрубится на первом неправильном символе или пробеле. Может я конечно настроек каких-то не знаю, но мне легче людей убедить соблюдать кое-какую гигиену, чем потом неизвестно когда и в каком месте, но наступить на эти грабли
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32533039
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вспомнил.
траблы были с событиями контролов:
например есть 2 контрола
если первый
[btn 1]
то второй уже не назвать
[btn_1]
или
[btn.1]
потому как и там и там обработчики были бы
btn_1_Click()

чтобы переименовать
[btn.1]
в
[btn_1] или [btn 1]
надо сначала переименоват во что-то другое, и только потом в то, что хочется (т.е., как я понял создается 2 имени, name и EventProcPrefix, оба должны быть уникальны, при добавлении/переименовании проверяется именно EventProcPrefix)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
?forms( 0 ).controls( 0 ).name
btn  1 
?forms( 0 )![btn  1 ].properties( 1 ).name
Name
?forms( 0 )![btn  1 ].properties( 0 ).name
EventProcPrefix
?forms( 0 )![btn  1 ].properties( 0 )
btn_1
?forms( 0 ).controls( 0 ).name = "btn_1"
Ложь
вот наскоко (в приложениях, да и кое где в аксессе) реализовано обращение (и работа с процедурами) исключительно через EventProcPrefix, а не (как видимо может быть) через Name, это вопрос. (Я когда-то ничтоже сумняшеся искал процедуры как .Name & "_" & EventName - что, ес-сно с такими именами не сработатет)
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32533047
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да. То, что при этом возникают проблемы с EventProcPrefix, я понял сразу, когда мне это показали.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540026
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, есть точная формулировка того, что происходит.

1. Если мы обращаемся к такому контролу по полному синтаксису (Me!MyControl или Forms!MyForm!MyControl или и т.п.), то надо писать имя как есть. Если в нем есть пробелы, то надо писать именно пробелы и добавлять квадратные скобки.

2. Если мы обращаемся к нему из его формы и без полного синтаксиса, просто как к переменной, то надо заменять пробелы на подчеркивания.

3. Отступать от пп. 1 и 2 и писать наоборот нельзя.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540120
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
про ! - понято.
Me. в такой ситуации должна пользовать _ ? или Me.[тра та та] тоже допустимо?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540125
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я понял так, что водораздел проходит следующим образом: с одной стороны полный синтаксис (из той же формы и не из той, с точкой и воскл.знаком), с другой неполный (из той же формы, как переменная).
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540130
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок
осталось только понять - список имен (контролов) - он всегда двойной? все вышерассказанное как будто на это указывает...
При наличии двойного списка один из вариантов обращения может оказаться "эффективней" в смысле скорости, а второй, который окажется медленнее, скорее всего, может быть "ускорен" почти до первого.
Может быть все это и не так (скорость) - все-таки надо как-нибудь собраться, пару "экспериментов" провесть.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540139
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, похоже, что он двойной. Но при "нормальных" именах оба варианта совпадают.

Короче, вопрос в том, какой из вариантов быстрее при обращении из той же формы. В уже упоминавшемся топике такого сравнения нет. Восполняю пробел.

Me("MyControl") -> 11.57
Me!MyControl -> 11.57
Me.MyControl -> 16.20
MyControl -> 15.05

Мораль: как и ожидалось, выпендриваться бесполезно.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32542878
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч

про выпендриваться
Компания Microsoft официально подтверждает правильность именно такого словоупотребления применительно к пробелам в именах следующей статьей из KB:

http://support.microsoft.com/?kbid=826763

(не рекомендованные к применению в именах символы.)

Саныч, и почему ты всегда прав? ;))
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32542975
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А я на самом деле и сам не понял, что имел в виду...
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аксесс сам подменяет имена контролов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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