Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> полученеие свойства из строки 
:(
    Опции темы
kb-nn
Дата 29.9.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



всем приветы!

допустим, название свойства у меня записано в строковой переменной.
dim s as string
s="name"

и есть какой-то объект, заведомо имеющий это свойство.

не подскажете, как обратиться к свойству объекта, используя имя переменной, его содержащей?


PM MAIL ICQ   Вверх
valex13
Дата 29.9.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Наверно, только вот так:
Код

select case s
  case "name1"
   object.name1 = "hello1"
 case "name2"
   object.name2 = "hello2"
end select

PM MAIL ICQ   Вверх
cardinal
Дата 29.9.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



kb-nn, я не понял, ты прикалываешься?
http://forum.vingrad.ru/index.php?showtopic=23785


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kb-nn
Дата 29.9.2004, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



да,я помню,что уже спрашивал об этом
мне кажется,это что-то не то.
я ничего не понял.

PM MAIL ICQ   Вверх
cardinal
Дата 29.9.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kb-nn
Дата 29.9.2004, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



Цитата

'Функция для получения свойства объекта из стринга
Private Function GetProperty(sourceObject As Object, destinationObject As Object, property As String)
Dim sc As ScriptControl
Set sc = New ScriptControl
With sc
.Language = "vbscript"                  'работаем с vbscript
.AddObject "source", sourceObject            'добавляем source объект
.AddObject "destination", destinationObject      'добавляем destination объект
.ExecuteStatement ("destination= source." & property)  'собственно выполняем действие
End With
End Function

'Пример вызова функции
Private Sub Command1_Click()
Dim s As String
s = "name"
Dim f As Form1
Set f = Me
GetProperty f, Text1, s
End Sub



и значение f.name запишется в text1 ?
PM MAIL ICQ   Вверх
cardinal
Дата 29.9.2004, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(kb @ 29.9.2004, 13:17)
и значение f.name запишется в text1 ?

Да. То есть name формы будет в TextBox Text1.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kb-nn
Дата 29.9.2004, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



в TextBox ?
а где там указано,что это textBox?
я думал это обычная переменная


PM MAIL ICQ   Вверх
cardinal
Дата 29.9.2004, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код
GetProperty f, Text1, s



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
-Mikle-
Дата 30.9.2004, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



А зачем ScriptControl для этих целей?

Код
s="caption"  'имя любого свойства
text1 = CallByName(Form1, s, vbGet)

так же можно записать значение
Код
CallByName Form1, "caption", vbLet, "Hello!!!"


или вызвать доступный метод у объекта
Код
'это в модуле формы
function mmm(s as string, d as Long) as string
  mmm = s & " - " & d
end function

'и где нить можно написать
msgbox CallByName (Me, "mmm", VbMethod, "Hello", 45) 'как ф-ию
'или просто
CallByName Me, "mmm", VbMethod, "Hello", 45 'как процедуру

В качестве первого параметра может выступать объект любого класса


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
cardinal
Дата 30.9.2004, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Прикольное решение smile.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 30.9.2004, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



kb-nn
Цитата(kb @ 29.9.2004, 15:17)
'Функция для получения свойства объекта из стринга
Private Function GetProperty(sourceObject As Object, destinationObject As Object, property As String)

Нельзя использовать имя GetProperty:
Цитата
To save state information in a DHTML application, you use the GetProperty and PutProperty functions to store and retrieve data.

Это раз - впрочем это лечится просто.

И потом - то ли ты спрашиваешь не то что хочешь спросить, то ли

Код
dim PropertyName as string
PropertyName = "name"
For Each OneObject in MyCollection
  debug.print OneObject.Properties(PropertyName)
Next


Это сообщение отредактировал(а) Akina - 30.9.2004, 08:58


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kb-nn
Дата 30.9.2004, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



ходили слухи,что не все объекты поддерживают свойство Properties.
это правда?


и еще вопрос-
а если у заданного объекта полученного из строки свойства не существует, то как можно как перехватить ошибку?
PM MAIL ICQ   Вверх
Akina
Дата 30.9.2004, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата
ходили слухи,что не все объекты поддерживают свойство Properties

Врут.

Цитата
если у заданного объекта полученного из строки свойства не существует, то как можно как перехватить ошибку?

Так же как и любую другую. Попробуй в конце концов, заодно узнаешь какой будет код ошибки.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kb-nn
Дата 30.9.2004, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.12.2003
Где: Нижний Новгород

Репутация: нет
Всего: 1



что-то я не сталкивался с перехватом ошибок.
может расскажешь, как это делать?
что- то я слышал on Error go to
но что и как- толком не понял.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.