С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131

Как узнать, что ActiveControl имеет свойство Text?

01.06.2011, 21:15. Показов 1323. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вылетает ошибка во время выполнения программы '438:
Объект не поддерживает это свойство или метод.

Всё понятно почему.
Я в таймер вписал:

Visual Basic
1
2
3
4
5
Status_what ActiveControl.Text
 
Private Sub Status_what(ku As String)
sta1.Panels(2) = ku
End Sub
Вылетает ошибка когда нажимаю на Button или DTPicker.

Вопрос: Как узнать, что ActiveControl имеет свойство Text?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2011, 21:15
Ответы с готовыми решениями:

Как заставить свойство "Text" компонента Label забиндиться на свойство TheChar из пользовательского класса
Здравствуйте, не получается заставить свойство "Text" компонента Label забиндиться на свойство TheChar из моего класса, основанного на...

Верно ли, что свойство классов не имеет параметров
Помгите плз Печатайте задания в пост, никаких картинок. Предупреждение

Как взять свойство text у списка?
У меня на форме есть объект типа СПИСОК, такого типа: <SELECT name='seler'> <option value='' SELECTED></option> ...

7
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
02.06.2011, 01:44
гы... самый простой способ - через On Error Resume next. Т.е. вот так:
Visual Basic
1
2
3
4
on error resume next
Status_what ActiveControl.Text
if err.number<> 0 then msgbox "нет свойства Text"
on error goto 0
0
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
03.06.2011, 11:18  [ТС]
Девушк! Вы наверное самый умный.
Сначала у себя это проверь,а потом отвечай...
On Error goto err любому придёт первое в голову...
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
03.06.2011, 13:27
Парень, ты или дибил, или претворяешься, не знаю, но больше к первому склоняюсь.
Code
1
2
3
4
5
6
7
8
9
10
11
Private Sub Command1_Click()
   MsgBox ActiveControl.Name
   On Error Resume Next
   statUs_what ActiveControl.Text
   If Err.Number <> 0 Then MsgBox 'нет свойства Text'
   On Error GoTo 0
End Sub
 
Sub statUs_what(txt As String)
   MsgBox txt
End Sub
А вообще, умник, с таким отношением ты никогда не будешь получать ответов.
0
Comanche
03.06.2011, 16:25
Ну... если wosh считает, что перехват ошибки - это банально, то флаг ему в руки. Интересно, по его мнению перебор свойств контрола через метод InterfaceInfoFromObject класса TLIApplication библиотеки TLBINF32.DLL - это проще?! :-)))

Сравните этот код с кодом Алексея - и поймёте, что вариант Алексея проще:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
' КОД ФОРМЫ (имеющей минимум один контрол, способный принять фокус):
Option Explicit
'
Private Sub Form_Activate()
    Dim rez As Boolean
    
    rez = ControlHasProperty(Me.ActiveControl, 'Text')
    If rez Then
        MsgBox 'Контрол ' & Me.ActiveControl & ' имеет свойство Text.'
    Else
        MsgBox 'Контрол ' & Me.ActiveControl & ' не имеет свойства Text.'
    End If
End Sub
'
Private Function ControlHasProperty(ByVal YourControl As Control, ByVal PropertyName As String) As Boolean
    Dim propList As Collection
    Dim propMember As clsMember
    
    ControlHasProperty = False
    
    Set propList = CollectProperties(YourControl)
 
    For Each propMember In propList
        If propMember.MemberName = PropertyName Then
            ControlHasProperty = True
            Set propList = Nothing
            Exit Function
        End If
    Next
 
    Set propList = Nothing
End Function
'
Private Function CollectProperties(Target As Object) As Collection
   Dim oTLB As InterfaceInfo
   Dim sMemberName As String
   Dim sInvokeKind As String
   Dim i As Integer
   Dim kFuncReturn As Collection
   Dim o As clsMember
   
   Set kFuncReturn = New Collection
   
   Set oTLB = TLI.InterfaceInfoFromObject(Target)
   For i = 1 To oTLB.Members.Count
      sInvokeKind = ReturnInvokeKind(oTLB.Members(i).InvokeKind)
      If InStr(1, sInvokeKind, 'INVOKE_PROPERTYGET') > 0 Then
         sMemberName = oTLB.Members(i)
         If Left$(sMemberName, 1) <> '_' Then
            Set o = New clsMember
            o.MemberName = sMemberName
            o.MemberType = sInvokeKind
            kFuncReturn.Add o
         End If
      End If
   Next
   
   Set CollectProperties = kFuncReturn
End Function
'
Private Function ReturnInvokeKind(Value As Long) As String
   Dim sFuncReturn As String
   Select Case Value
      Case INVOKE_UNKNOWN
         sFuncReturn = 'INVOKE_UNKNOWN'
      Case INVOKE_FUNC
         sFuncReturn = 'INVOKE_FUNC'
      Case INVOKE_PROPERTYGET
         sFuncReturn = 'INVOKE_PROPERTYGET'
      Case INVOKE_PROPERTYPUT
         sFuncReturn = 'INVOKE_PROPERTYPUT'
      Case INVOKE_PROPERTYPUTREF
         sFuncReturn = 'INVOKE_PROPERTYPUTREF'
      Case INVOKE_EVENTFUNC
         sFuncReturn = 'INVOKE_EVENTFUNC'
      Case INVOKE_CONST
         sFuncReturn = 'INVOKE_CONST'
   End Select
   
   ReturnInvokeKind = sFuncReturn
      
End Function
'
' КОД МОДУЛЯ КЛАССА clsMember:
Option Explicit
'
Public MemberName As String
Public MemberType As String
Этот код, конечно, тоже отвечает на поставленный вопрос, но он гораздо более громоздкий (даже если избавиться от необходимости в модуле класса). Да и придётся таскать с собой DLL-ку весом 145 килобайт.

Так что, wosh, нечего сразу огрызаться на людей, которые тебе дело говорят. Тебе действительно предложили самое простое решение.
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
04.06.2011, 23:21  [ТС]
On error - Выдаёт ошибку!

Я просто написал Status_what ActiveControl
И всё работает без ошибок. Всего то...
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
05.06.2011, 02:49
Интересно)
У меня ошибка генерируется, но On Error ее перехватывает)
А как он у тебя может НЕ перехватывать я пока не понимаю)
0
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
07.06.2011, 07:29  [ТС]
Может версия Visual Basic у меня старее...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2011, 07:29
Помогаю со студенческими работами здесь

Как очистить свойство Text в Edit?
Как по событию ButtonClick кнопки очистить Text в нескольких Edit. К примеру у меня их 95?.

Как поменять свойство Text в кнопке Button с его сохранением
Доброго всем дня! Такой вот вопрос есть две формы на первой форме расположена кнопка Batton1 на второй форме есть Batton5(сохранить ) и...

Как сохранить свойство Text элемента TextBox после закрытия программы?
Собственно. Ну то ест программа работает, текст правится вручную. Программу закрываем, текст сохраняется. Потом при запуске программы...

Как присвоить переменной главной форми, свойство Richtextbox.Text из дочернего
Ест MDI приложение, наподобии блокнота. Ест главная форма Main и child Blank. Как присвоить переменной главнои форми, своиство...

Как можно изменить свойство Text у ComboBox, обходя событие TextChanged?
Всем привет. Подскажите, пожалуйста, как можно изменить свойство Text у ComboBox, обходя событие TextChanged? Пытался отключить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru