Вызов процедуры с параметром (неужели так нельзя?) ...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BamBr
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 10.10.2006 (Вт) 11:46

Вызов процедуры с параметром (неужели так нельзя?) ...

Сообщение BamBr » 10.10.2006 (Вт) 11:52

Пытаюсь вызвать процедуру с параметром sText и использовать в ней этот параметр сл. образом:

Код: Выделить всё
Private Sub Error_Input(sText As String)
   Me.sText.BackColor = &H80000013
   Me.sText.SetFocus
End Sub


Выползает сообщение "Метод или данные не найдены".

Собственно вопрос: Так делать низя? Или я не догоняю?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 10.10.2006 (Вт) 11:55

Так делать нельзя. Ты не догоняешь.

Объясни для начала словами, что ты хотел сделать?
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.10.2006 (Вт) 11:58

As Object.
Lasciate ogni speranza, voi ch'entrate.

BamBr
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 10.10.2006 (Вт) 11:46

Сообщение BamBr » 10.10.2006 (Вт) 12:01

Есть несколько процедур ...__LostFocus(), в которых проверяется одинаковое условие на содержание textbox'ов.
Если условие выполняется, надо вызвать одинаковую для всех обработку.
Я думал вызывать эту обработку так Error_Input (Srok0), где Srok0 - это имя textbox'а (а их несколько).

BamBr
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 10.10.2006 (Вт) 11:46

Сообщение BamBr » 10.10.2006 (Вт) 12:30

Вызываю так
Код: Выделить всё
Call Error_Input(Srok0)


alibek писал(а):As Object.

Не помогло :-( Копаю дальше.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 10.10.2006 (Вт) 12:37

Передавай не имя, а объект - сам TextBox, это раз.
Убери Me, это два.
Последний раз редактировалось BV 10.10.2006 (Вт) 12:56, всего редактировалось 1 раз.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

BamBr
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 10.10.2006 (Вт) 11:46

Сообщение BamBr » 10.10.2006 (Вт) 12:47

BV писал(а):Передевай не имя, а объект - сам TextBox, это раз.
Убери Me, это два.

Спасибо, сделал.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: Вызов процедуры с параметром (неужели так нельзя?) ...

Сообщение Vi » 11.10.2006 (Ср) 6:36

BamBr писал(а):Пытаюсь вызвать процедуру с параметром sText и использовать в ней этот параметр сл. образом:

Код: Выделить всё
Private Sub Error_Input(sText As String)
   Me.sText.BackColor = &H80000013
   Me.sText.SetFocus
End Sub


Выползает сообщение "Метод или данные не найдены".

Собственно вопрос: Так делать низя? Или я не догоняю?

Код: Выделить всё
Private Sub Error_Input(sText As String)
  With Me.Controls(sText)
    .BackColor = &H80000013
    .SetFocus
  End With
End Sub
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 15.10.2006 (Вс) 9:25

Или, если нужно именно имя, тогда CallByName(Me,sText,vbGet).BackColor=&H80000013
CallByName(Me,sText,vbGet).SetFocus
Хотя это - изврат ещё тот...
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.10.2006 (Вс) 11:36

Между прочим CallByName - не больший изврат, чем вызов методов объекта, лежащего в переменной, объявленной как Object или Variant.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2006 (Вс) 17:32

keks-n писал(а):Между прочим CallByName - не больший изврат, чем вызов методов объекта, лежащего в переменной, объявленной как Object или Variant.

Больший. В полтора раза.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 53

    TopList