|
|
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Есть такая конструкция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Т.е. в зависимости от значения !Num, одной из переменных SDate1 ... SDate5 присваивается одно и тоже значение другой переменной (Dt). Можно ли как-то сократить код и имя (ссылку на него) нужной переменной из списка SDate1 ... SDate5 формировать динамически? Что-то типа: Код: plaintext 1. А затем одной строкой заменить все указанные выше: Код: plaintext 1. как, например, это можно делать для коллекций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:03 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
прогрессивное человечество давным давно придумало массивы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:06 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Отношусь к той части человечества, которая о массивах знает и их использует :). Но не подходят они для моего случая: пример в вопросе сильно упрощен. Только неделю назад точно видел на каком-то западном сайте способ, как это делать. Забыл на каком ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:12 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Eval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:13 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Возможно, не совсем понял намек, но у меня такая конструкция: Код: plaintext не работает. И по-моему это правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:25 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Eval тут вряд ли поможет - она только выражения вычисляет, но никому и ничего не присваивает. Можно, конечно, динамически текст функции менять, но это тоже есть извращение, хотя VBA такое и позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:34 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:44 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
гоню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:54 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Так от тож... Переменные там не очень-то "видны". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 11:55 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
2 ЛП Не, это тоже не работает. То есть присвоения внешней пременной таким способом не происходит. Только что проверил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 12:04 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
авторЕсть ли способ сослаться на переменную по ее имени? В чистом виде, я думаю, не получится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 12:14 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
используйте switch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 18:00 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Если бы это были не переменные, а контролы на форме, было бы легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 22:30 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
авторЕсли бы это были не переменные, а контролы на форме, было бы легче. Для формы или для модуля класса можно сослаться на объявленные в них Public переменные по их именам, используя CallByName (по моему) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 23:20 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov прав! К моему удивлению, прекрасно сработало следующее: В форме "Test1": Код: plaintext В любом месте программы: Код: plaintext 1. 2. 3. 4. 5. 6. А я, признаться, полагал, что такой трюк без написания процедуры Property Let не пройдёт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2004, 23:49 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
А для стандартного модуля никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:33 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
для стандартного модуля CallByName не прокатит В 97-м аксесе тоже не прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 13:21 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
В 97-м, полагаю, тоже прокатит, если вместо отсутствующей там функции CallByName написать свою, вызывая в ней функции из библиотеки TLI (TLBINF32.DLL). Мне пришлось так сделать - меня стандартная функция CallByName не устраивала - в её реализации, увы, есть ошибки. Кода совсем немного, единственное неудобство - ещё одна ссылка в References. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 21:19 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
А есть ли возможность написать эту свою функцию так, чтобы она работала и для обычных (не объектных) переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 21:23 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Боюсь, что нет, Владимир Саныч . Внутри своей функции я фактически вызываю вот это: Код: plaintext Hook to IDispatch::Invoke. ID is Name or MemberID. Arguments in ReverseArgList must be listed backwards. ByRef args not supported. То есть, так или иначе, эта библиотека имеет дело с объектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 21:38 |
|
||
|
Есть ли способ сослаться на переменную по ее имени? (см. внутри)
|
|||
|---|---|---|---|
|
#18+
авторА есть ли возможность написать эту свою функцию так, чтобы она работала и для обычных (не объектных) переменных? В общем случае - нет. И TLI, увы, не помогает. Когда мне подобное понадобилось, мне пришлось писать анализатор текста модулей (конечно, для mde не работает, но мне нужен был add-in как раз для VBE). Если это собственная программа, то легко все организовать через Select Case (как и приведено в первом письме). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 21:43 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1660&tid=1675798]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
288ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 610ms |

| 0 / 0 |
