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

Поиск:

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


Новичок



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

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



код такой:

form2.Proc
form2.Show vbModal


вызов процедуры Proc приводит к загрузке form2 (вызывается event form_load) и такое впечатление что при вызове Show создается совсем другой объект, а не та форма у которой вызывалась Proc

если при вызове Show выбросить vbModal (т.е. показывать немодальное окно), то все работает правильно - показывается та форма к которой было обращение процедурой Proc.

как показать модальное окно, но так чтобы предварительно вызвать процедуру этого окна?


PM MAIL   Вверх
Akina
Дата 16.11.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Сначала сделать явно Load, а потом всё остальное.


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

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


Новичок



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

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



Цитата

Сначала сделать явно Load, а потом всё остальное. 


да ничего не меняется, а Load автоматически вызывается, когда это требуется (обращение к переменным формы2)

PM MAIL   Вверх
Akina
Дата 16.11.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Ты сделал или по наитию говоришь? если сделал - то как именно? код в студию...


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

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


Новичок



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

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



сделал так:

Load form2
form2.Proc
form2.Show vbModal


добавление Load перед обращением к form2 ничего не меняет



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


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


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

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



Угу... потому что неправильно...

Код

Dim frm2 As Form2
Set frm2 = New Form2
Call frm2.Proc
frm2.Show vbModal



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

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


Новичок



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

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



Спасибо за ответы, но ничего не решилось, на самом деле я немного переврал.
Идея заключается в том, что окно Form2 должно показаться ДО завершения работы функции Proc, и поэтому код несколько другой.
 
Сначала нажимается кнопка Command1, запускается функция form2.Proc,
а по нажатию кнопки Command2 должно показаться окно form2 с отображением работы функции Proc.
Так вот, если форму2 показывать без модального флажка - то при ее появлении (нажатии кнопки Command2),
правильно отображается работа функции Proc (бежит ProgressBar), а если поставить флажок vbModal, то 
форма2 отображается с застывшим значением ProgressBar на момент нажатия Command2.

Вот и вопрос как сделать чтобы это все работало с модальной Form2.

кусочки кода:


Код

Dim frm2 As Form2

Private Sub Command1_Click()
  Set frm2 = New Form2
  Call frm2.Proc
End Sub


Private Sub Command2_Click()
  frm2.Show vbModal
End Sub


внутри функции Form2.Proc выполняется цикл:

Код

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub Proc()
    Dim i As Integer
    
    For i = 0 To 100
        Sleep 50
        DoEvents
        ProgressBar.Value = i
    Next i
End Sub



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


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


Профиль
Группа: Модератор
Сообщений: 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.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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