Загадочный объект Me

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

Загадочный объект Me

Сообщение ВалГер » 12.11.2004 (Пт) 9:25

Поясните, что это за загадочный объект Me . У меня 3 книги поVB6 и на некоторой странице этих книг этот Me возникает без всяких поясненений. В Help-e, который у меня есть, описание его так же отсутствует. Если описывать что это такое длинно и сложно, то отошлите куда-нибудь, где об этом можно прочитать более подробно.
Спасибо

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 12.11.2004 (Пт) 9:42

ВалГер писал(а):Поясните, что это за загадочный объект Me . У меня 3 книги поVB6 и на некоторой странице этих книг этот Me возникает без всяких поясненений. В Help-e, который у меня есть, описание его так же отсутствует. Если описывать что это такое длинно и сложно, то отошлите куда-нибудь, где об этом можно прочитать более подробно.
Спасибо
Me - это краткая ссылка на текущую форму в модуле. Даже не на текущую, а как бы это сказать. Ну вот например мы имеем форму. Назовём её frmTest
В модуле этой формы, чтобы узнать например ширину формы не обязательно писать frmTest.Width (прикинь если имя у формы длинное - запаришся везде прописывать), а достаточно написать Me.Width
Это будут аналогичные команды.

Код: Выделить всё
Sub Form_Load()
       MsgBox "Заголовок этой формы - " & Me.Caption
End Sub


В общем используется для обращения к форме которой принадлежит модуль.

Для выгрузки формы можно как раз использовать
Код: Выделить всё
Unload Me
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

ВалГер
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 09.11.2004 (Вт) 17:34
Откуда: Псков

Сообщение ВалГер » 12.11.2004 (Пт) 10:47

Ruslan Demidow писал(а):
ВалГер писал(а):Поясните, что это за загадочный объект Me . У меня 3 книги поVB6 и на некоторой странице этих книг этот Me возникает без всяких поясненений. В Help-e, который у меня есть, описание его так же отсутствует. Если описывать что это такое длинно и сложно, то отошлите куда-нибудь, где об этом можно прочитать более подробно.
Спасибо
Me - это краткая ссылка на текущую форму в модуле. Даже не на текущую, а как бы это сказать. Ну вот например мы имеем форму. Назовём её frmTest
В модуле этой формы, чтобы узнать например ширину формы не обязательно писать frmTest.Width (прикинь если имя у формы длинное - запаришся везде прописывать), а достаточно написать Me.Width
Это будут аналогичные команды.

Всё понятно!
Большое спасибо


Код: Выделить всё
Sub Form_Load()
       MsgBox "Заголовок этой формы - " & Me.Caption
End Sub


В общем используется для обращения к форме которой принадлежит модуль.

Для выгрузки формы можно как раз использовать
Код: Выделить всё
Unload Me

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

Сообщение tyomitch » 12.11.2004 (Пт) 17:27

Ruslan Demidow писал(а):В общем используется для обращения к форме которой принадлежит модуль.

1. Не только форме, а любому объекту, например классу или юзерконтролу.
2. Если экземпляров этой формы или объекта несколько - то именно к тому, чей метод выполняется.
3. (и самое главное) его вообще можно опускать! Скажем, вместо Me.Caption писать Caption, и всё будет работать.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.11.2004 (Пт) 17:46

1. Ага.
2. Угу.
3. Никогда не опускаю :) Ибо иногда параметры процедур называются так же, как проперти.

И ышшо. Me представляет объект так, как он выглядит извне. То есть получить доступ к private мемберам через Me нельзя.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 12.11.2004 (Пт) 18:09

GSerg писал(а):...
И ышшо. Me представляет объект так, как он выглядит извне. То есть получить доступ к private мемберам через Me нельзя.

Совершенно верно. Поэтому, если хочешь получить доступ к членам UserControl, то приходится так и писать:
Код: Выделить всё
Call UserControl.PrivateFunction(...)

Me в данном случае не канает...

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.11.2004 (Сб) 7:27

ОК. Спасибо всем за поправку и множество дополнительных сведений - я много из этого не знал :oops:
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

ВалГер
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 09.11.2004 (Вт) 17:34
Откуда: Псков

Сообщение ВалГер » 13.11.2004 (Сб) 12:22

Ruslan Demidow писал(а):ОК. Спасибо всем за поправку и множество дополнительных сведений - я много из этого не знал :oops:
Всем большое спасибо! Узнал много полезного.

i'm pissed
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 194
Зарегистрирован: 23.10.2004 (Сб) 12:01
Откуда: irkutsk

Сообщение i'm pissed » 13.11.2004 (Сб) 17:06

да me очешь полезна =)
by_pissed


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

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

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

    TopList