Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: CallByName Добавлено: 07.06.05 13:02  

Автор вопроса:  Black Dragon | Web-сайт: в разработке | ICQ: 321186096 
Привет всем!

В общем, я юзаю функцию CallByName. Есть строковая переменная, strObject, которая содержит строковую ссылку на какое-то свойство (к примеру, "Label1.Font"). Как по этой строке получить объект Label1.Font?

Я проверял: юзая
Call CallByName(Label1.Font, "Bold", vbLet, True

Все получалось.

Помогите, плиз, ооооочень нужно!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #1 Добавлено: 07.06.05 13:48
Получить объект Label1 можно

Dim UserObject As Object ' Control
Set UserObject = Me.Controls(CStr(Split(strObject, ".";)(0)))

Получить ссылку на членов объекта, ИМХО, не удасться.

Ответить

Номер ответа: 2
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #2 Добавлено: 07.06.05 14:32
Option Explicit

Private Const foo As String = "Label1.Font"

Private Sub Command1_Click()
  GetLastObject(foo).Bold = True
End Sub

Private Function GetLastObject(s As String) As Object
  Dim v As Variant, i As Long
  
  v = Split(s, ".";)
  
  Set GetLastObject = Me.Controls(CStr(v(LBound(v))))
  
  For i = LBound(v) + 1 To UBound(v)
    Set GetLastObject = CallByName(GetLastObject, v(i), VbGet)
  Next
End Function

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 07.06.05 15:00
Да, воистину простые решения приходят последними :(

Ответить

Номер ответа: 4
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #4
Добавлено: 07.06.05 17:01
GSerg, не представляешь, как ты мне помог!!!
Выражаю огромную благодарность товарищу GSerg'у :)))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам