|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
авторЕсли для объекта не определено свойство по умолчанию, то возвращающая его функция не может оказаться слева. подразумавается - в обсуждаемом контексте не может, т.е. не может без дополнительных квалификаторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2011, 23:40 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
just another tutor... Если для объекта не определено свойство по умолчанию, то возвращающая его функция не может оказаться слева. Не так категорично. Может, но с явным указанием свойства объекта. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:00 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Долго писал, сори. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:01 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
just another tutorв VBA еще Calendar Посмотрите в просмотрщик объектов. Date и Time - там описаны не как функции, а как property. Раз не сказано, что read-only property, значит могут как отдавать так и принимать значения. Если для для объекта определено одновременно и свойство get и свойство set/let? то имя свойства может быть как слева так и справа в операторе присваивания значения. Этак можно и до обычных переменных дойти. Dim a As Integer a = 8 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:03 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Владимир Саныч... обычных переменных ... :) А через функцию с "обычной" переменной не "дойдем". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:15 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
авторЭтак можно и до обычных переменных дойти можно и дойти, если это по какой-то причине плохо или хорошо. Пока мне не удается расшифровать смысл твоего высказывания. так написать можно Код: plaintext 1.
а так нельзя авторDim a As Integer 8=a и так нельзя авторDim a As Integer 8=a Хорошо было бы определиться - что нам необходимо сделать: осудить самы возможность использования Date и Time в качестве приемника значения или научиться понимать, что происходит или может происходить, когда кто-то способен выступать в качестве приемника значения. Подвох во всей этой истории только в том, что Mid = a&b&c - не имеет ничего общего с Date = #литерал или выражение# хотя и выглядит похожим образом ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:17 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
nord-woolfВладимир Саныч... обычных переменных ... :) А через функцию с "обычной" переменной не "дойдем". Once more, please? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:18 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
автори так нельзя автор Dim a As Integer 8=a подразумевалось Dim 8 As Integer 8=a ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:20 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
2 Владимир Саныч, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:23 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
just another tutorможно и дойти, если это по какой-то причине плохо или хорошо. Пока мне не удается расшифровать смысл твоего высказывания. Мы ищем вещи, которые обычно используются справа, но допускают и использование слева, что может явиться сюрпризом для неискушенных. Функция (например, Mid) этому критерию отвечает. Переменная, даже если она является свойством объекта, - вряд ли. just another tutorа так нельзя авторDim a As Integer 8=a Нет, про константы я такого не говорил. Хотя сюрприз тоже был бы, если бы. just another tutorи так нельзя авторDim a As Integer 8=a У меня дежа-вю или тут действительно написано два раза одно и то же? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:23 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
иподразумевалось Dim 8 As Integer 8=a Ну ваще. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:24 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
nord-woolf GetA = 5 А что, кому-то здесь неизвестно, что так нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:26 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Владимир Саныч, А я почем знаю? Я вот только сегодня узнал, что переменные бывают "обычными". Наверно и "необычные" бывают. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:35 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Тьфублин. Ну а как назвать переменную, чтобы было понятно, что имеется в виду именнопеременнаяанефункцияинесвойствоинеещечтонибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:37 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
авторПеременная, даже если она является свойством объекта, - вряд ли. Я Вам как человек необразованный скажу. Остановиться, оно конечно, обязательно где-то надо. Иначе глупости не избежать. В Vba переменная-член класса и свойство могут вести себя сходным образом, но не являются синонимами. Это самостоятельные конструкты с несовпадающей семантикой. С публичными переменными-членами класса можно обходиться так, как показал nord-woolf Визуально это не должно вызывать вероятного удивления, в отличие от удивления, представленного в цитируемом тексте studierenВладимир Саныч... Здесь ничего чудесного нет. Главное то, что объект Range имеет свойство по умолчанию Value. Поэтому если мы ставим такой объект слева от знака присваивания, то мы фактически присваиваем что-то его свойству Value. Точно так же можно поступить, например, с объектом Control. Добрый вечер уважаемый Саныч! Вы не знаете почему такой эффект возможен только с теми пользовательскими функциями, которые возвращают объектный переменный? Вот если функция возвращает число, дату, текст или ещё что-то, то её уже невозможно использовать с левой стороны. Да и что касается свойства объекта по умолчанию, я думаю Вы правы на все 100 %. :) P.S. Цена вопроса чисто "спортивный интерес", не более того. :)) Если я правильно понимаю, предмет удивления - в отсутствии квалификации приемника. Тем самым в присутствии свойства по умолчанию. Иначе просто видно глазами - кто что кому присваивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:42 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Владимир Саныч, Ну надо-же по брюзжать на ночь глядя? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:46 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
just another tutorЯ Вам как человек необразованный А вот это не надо, это не надо. Я тут своей необразованностью много кого переплюну. just another tutorВ Vba переменная-член класса и свойство могут вести себя сходным образом, но не являются синонимами. Это понятно. Но очевидно, что свойство МОЖЕТ вести себя как переменная. Причем не где-нибудь, а в простейшем случае. Так что удивления тут не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:49 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
nord-woolfВладимир Саныч, Ну надо-же по брюзжать на ночь глядя? :) Да! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 00:49 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Владимир Саныч... Ну а как назвать переменную, чтобы было понятно, что имеется в виду именнопеременнаяанефункцияинесвойствоинеещечтонибудь? Может так?: Свойство, описанное переменной vs Свойство описанное процедурами(процедурой) свойств. ps. Все-все, ушел спать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 01:15 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
nord-woolfСвойство, описанное переменной Это в ответ на "переменная, а не свойство"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 02:03 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Чтобы превратить строку в тип данных "дата" нужно использовать функцию CDate или DateValue . Но тут есть одна засада: данные функции в зависимости от региональных настроек Windows возвращают разные результаты, а иногда вообще ошибку. Допустим, у нас есть строка в американском стиле и мы хотим в любом случае получить соответствующую дату. Я для этого создал функцию "ConvDate", где есть необязательный параметр "Style". Если в параметре указать "EN" или "English" или "US", то функция попытается преобразовать строку в дату сначала в американском стиле. Если не получится, то с помощью CDate. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
А вот и результат экспериментов: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 10:03 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
(для текстов, совпадающих с текущей локалью) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
поищите - на форуме есть примеры, как подменить локаль на время выполнения процедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 11:37 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
booby(для текстов, совпадающих с текущей локалью) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
поищите - на форуме есть примеры, как подменить локаль на время выполнения процедуры Вы наверное не поняли мой пост. Я попытался создать универсальную функцию, которая по возможности все строки в любом формате превращает в дату вне зависимости от настройки Windows. К примеру, допустим у Вас Windows настроен на русскую интерпретацию даты, но в тоже время у Вас строка на английский лад. Как Вы собираетесь преобразовать строку? Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 12:54 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
Вы правы. я действительно не понял. Не рассмотрел ваш код. Это одна сторона монеты. Другие стороны состоят вот в чем: 1) Вы заставили на русской локали работать Код: plaintext
Код: plaintext
Подразумевается, что английский язык всегда установлен. Сможете тем же способом заставить, без установленного немецкого, правильно отработать Код: plaintext
Код: plaintext
Код: plaintext
2) то что Код: plaintext 1. 2.
5 марта, а не 3 мая. PS Это не претензии. Ваша функция хорошая. Другое дело, что я, как пользователь "библиотечного кода", предпочел бы функцию с явно задаваемым форматом преобразования и, может быть, явными языковыми идентификаторами в качестве параметров. В любом случае спасибо. Поведение eval в этом месте любобытно и малоизвестно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 14:00 |
|
интересные факты / наблюдения / анализ чужих и собственных решений
|
|||
---|---|---|---|
#18+
boobyДругое дело, что я, как пользователь "библиотечного кода", предпочел бы функцию с явно задаваемым форматом преобразования и, может быть, явными языковыми идентификаторами в качестве параметров. Забыл написать 1 деталь. В SQL Server если в строке указать дату в формате 'yyyymmdd', то вне зависимости от настроек сервера всегда дата будет интерпретироваться одинаково: Код: plaintext
Такое же свойство имеется и у Access / VBA, но только чуть-чуть по другому. Если в строке указать дату в формате "yyyy-mm-dd" (вместо "-" также допускается пробел или слеш "/"), то вне зависимости от региональных настроек функция CDate и Datevalue (да и DateAdd) возвращает ВСЕГДА одинаковую дату. Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext
P.S. Как не странно, но в FAQе об этом вообще ни слова. И там не указана ещё одна деталь: даты в Access / VBA можно указать и таким образом: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2011, 08:46 |
|
|
start [/forum/topic.php?fid=45&msg=37553292&tid=1610226]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 142ms |
0 / 0 |