Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обращение к форме по имени 
:(
    Опции темы
Arthur26
Дата 18.4.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Здравствуйте.
Как можно обратиться к форме по имени?
Не так Forms(0), a Forms("Form1").
Спасибо.
PM MAIL   Вверх
Akina
Дата 18.4.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Вот именно так и обратиться. Только она обязательно  должна быть загружена.

В чем проблема-то?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arthur26
Дата 18.4.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Выдает ошибку Run time error 13 Type mismatch.
Да, конечно, форма загружена.
PM MAIL   Вверх
Akina
Дата 18.4.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Arthur26 @  18.4.2007,  14:00 Найти цитируемый пост)
Выдает ошибку Run time error 13 Type mismatch.

Код в студию. Включая все дефиниции.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arthur26
Дата 19.4.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Akina, создаю новый проект, в редакторе пишу:

Код

Private Sub Form_Load()
Forms(0).Caption = "aaaaaaaaa"
End Sub


работает, а такой вариант не работает:

Код

Private Sub Form_Load()
Forms("Form1").Caption = "aaaaaaaaa"
End Sub


Т.е. обращение по индексу возможно, но по имени невозможно?

Новый проект, ничего нет кроме одной формы.
Вот попробуйте, пожалуйста. 
Или Visual Basic 6.0 невозможно обратиться к форме по имени?

Это сообщение отредактировал(а) Akina - 19.4.2007, 11:06
PM MAIL   Вверх
Akina
Дата 19.4.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Arthur26 @  19.4.2007,  11:52 Найти цитируемый пост)
Вот попробуйте, пожалуйста. 

А нафига мне пробовать? Я уже указал проблему - форма должна быть загружена. В момент выполнения Form_Load() сама форма еще НЕ загружена. Она в процессе, на пути, но еще не полностью прибыла в коллекцию загруженных форм. Потому тебя вежливо и культурно посылают в Run-Time Error.

Вот после того как ее загрузка завершится, ты сможешь без проблем выполнить указанный код. По нажатию кнопки, по таймеру на форме, из метода другой формы...

PS. Тег Код придуман специально для того, чтобы люди не ломали глаза, читая сообщения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arthur26
Дата 19.4.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Akina, я попробовал. Поместил на форме кнопку и по нажатию на кнопку хотел поменять, например, Caption формы (т.е. форма уже загружена), но опять та же ошибка.
PM MAIL   Вверх
Akina
Дата 19.4.2007, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Упс! Приношу извинения - попутал с MS Access.

В VB не допускается Forms("FormName"). Только

Код

Dim OneForm As Form

For Each OneForm In Forms
   If OneForm.Name = "Form1" Then
      OneForm.Caption = "aaaaa"
      Exit For
   End If
Next

или, что то же самое
Код

Dim i As Integer

For i = 0 To Forms.Count - 1
   If Forms(i).Name = "Form1" Then
      Forms(i).Caption = "aaaaa"
      Exit For
   End If
Next




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arthur26
Дата 19.4.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Спасибо большое за советы, Akina. 
PM MAIL   Вверх
Akina
Дата 19.4.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Да, учти еще одно - каждый раз надо перебирать коллекцию. Индекс запоминать бессмысленно - загрузка или выгрузка любой формы имеет полное право перетасовать элементы коллекции как заблагорассудится.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.