Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2009, 14:01   #1
Голованов Д.
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 10
По умолчанию TextBox в качестве параметра функции/процедуры

Доброго времени суток.

Вопрос следующий. Как передать в процедуру/функцию в качестве параметра ссылку на текстбокс таким образом, что бы можно было внутри процедуры/функции читать/записывать свойства этого текстбокса?

Процедура:

Код:
Public Sub MyFunc(aTB As TextBox)
    ...
End Sub
Вызов:

Код:
Call MyFunc(Me.TextBox2)
MyFunc Me.TextBox2
В обоих случаях эррор 13: Type mismatch

Последний раз редактировалось Голованов Д.; 31.10.2009 в 14:05. Причина: Сам дурак
Голованов Д. вне форума Ответить с цитированием
Старый 31.10.2009, 15:10   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Передавать нужно не по значению (ByVal), а по ссылке (ByRef), это раз. Ну и правильно объявить тип, это два.
Код:
Public Sub ChangeTextbox(ByRef MyTextbox As MSForms.textbox)
  MyTextbox.Text = "Текст изменен в процедуре"
End Sub

Private Sub UserForm_Initialize()
  Call ChangeTextbox(TextBox1)
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 31.10.2009, 15:27   #3
Голованов Д.
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 10
По умолчанию

О! Работает! )) Благодарствую! А то уже голову сломал себе.

ЗЫ: Передавать можно как угодно, и по значению и по ссылке. Только при передече по значению, насколько я понимаю, появится дополнительный указатель на Текстбокс.
Голованов Д. вне форума Ответить с цитированием
Старый 31.10.2009, 15:45   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Если передавать по значению, то создается еще один экземпляр объекта, с которым и работает процедура. При передаче по ссылке, передается сам объект. Для объектов внешне разница не заметна, ведь объект не клонируется, но передача по ссылке работает быстрее, особенно при работе с объектными данными.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 01.11.2009, 07:19   #5
Голованов Д.
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 10
По умолчанию

Ваша правда, работатет конечно быстрее.

Ещё раз спасибо за помощь!
Голованов Д. вне форума Ответить с цитированием
Старый 01.12.2009, 10:17   #6
Barul
Новичок
Джуниор
 
Регистрация: 25.11.2009
Сообщений: 1
По умолчанию

подскажите пожалуйста как передать значение Textbox в модуль ЭтаКнига, или вызвать ChangeTextbox в этом модуле
Barul вне форума Ответить с цитированием
Старый 01.12.2009, 10:38   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Barul Посмотреть сообщение
подскажите пожалуйста как передать значение Textbox в модуль ЭтаКнига, или вызвать ChangeTextbox в этом модуле
Нужно обратиться к нему через его родительскую форму:
Код:
UserForm1.TextBox1.Text
Ну и событие Change будет вызываться, когда ты попытаешься задать новый текст
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив в качестве параметра DeKot Общие вопросы Delphi 6 15.10.2009 22:32
Пользовательская функция с диапазоном в качестве параметра SanSanblch Microsoft Office Excel 2 29.05.2009 17:37
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Передача метода класса в качестве параметра в другой метод Dmytry87 Общие вопросы C/C++ 0 12.11.2008 15:28
параметрический запрос с частью слова в качестве параметра yulia БД в Delphi 6 09.05.2008 20:27