powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с двумя формами (заморозка неактивного окна)
14 сообщений из 14, страница 1 из 1
Работа с двумя формами (заморозка неактивного окна)
    #37188581
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, пишу на VB 6.0 professional. С толкнулся с проблемой работы с двумя окнами (формами). Проблема заключена в том, что при вызове второго окна (form2.show) первая форма (она же главная) продолжает свою работу. Вторая форма имеет в себе 5 textbox из которых необходимо перенести данные в структуру (структура в модуле с публичной меткой). Т.к. у меня несколько записей в структуре (массив структур), мне необходимо произвести остановку работы первого окна, до того как во втором окне не выполниться событие (OkButtonClick), не хватает мозгов чтобы это реализовать. Если кто знает что делать, подскажите, и желательно поподробнее, т.к. я новичёк и ещё слабо разбираюсь в vb. Спасибо за внимание.

Это первое окно из которого вызывается второе.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 
Sub inpt_customers()
' задаём список, который будем обрабатывать в дальнейшем

Do  'заносим количество записей в струтуру, т.е. количество торговцев
n = CInt(InputBox("Введите количество записей:", "Ввод торговцев",  1 ))
Loop Until n >  0 
ReDim SC( 1  To n)

For i =  1  To n 
Load Dialog: Dialog.Show ' вызывает окно dialog
Main_form.Enabled = False
' !необходима остановка выполнения кода в этом окне,
' !пока не выполнится действие в другой окне

Next i

End Sub

Это второе окно, в котором как раз и заносятся данные.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
Private Sub OKButton_Click()
If D_BN_O = True Then
                        SC(i).MS = CByte(MSbox.Text)
                        SC(i).AB = CInt(ABbox.Text)
                        SC(i).AC = CInt(ACbox.Text)
                        SC(i).NI = CStr(NIbox.Text)
                        SC(i).SB = CInt(SBbox.Text)
       End If
Unload Me
Обе формы связанны между собой модулем.
Основные переменные, типа i и n в глобале. Пробовал пустой цикл с пост условием: вешает программу.
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) вызвать вторую форму как модальную (параметр у Show)

2) прекратить выполнение процедуры в первой форме после вызова второй формы. После окончания работы второй формы, она должна вызвать какой-то публичный метод первой формы, которая продолжит нужные действия первой формы
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188609
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А по подробнее можно, а то я чего не очень понял. Т.е. перенести выполнение события в модуль, и с помощью, например GoTo, после окончания выполнения события переместиться в первую форму?
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188620
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkKifirА по подробнее можно, а то я чего не очень понял. Т.е. перенести выполнение события в модуль, и с помощью, например GoTo, после окончания выполнения события переместиться в первую форму?

Код: plaintext
Dialog.Show True
вас устраивает?
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188646
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишет, что "Invalid procedure call or argument", на "Dialog.show true". Можете объяснить, с чем это связано?
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188681
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkKifirПишет, что "Invalid procedure call or argument", на "Dialog.show true". Можете объяснить, с чем это связано?
то есть без True все нормально вызывает, а как только приписываете True - сразу ошибка?
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188689
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

да
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188702
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkKifir,

Непонятно
Выложите проект
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188706
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приложил проект
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188712
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду очень признателен, если поправите этот кусок, чтобы он нормально работал...
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188720
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, надо было:
Код: plaintext
Dialog.Show  1 
не люблю модальные формы
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188748
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за подсказку) буду дальше делать) И ещё 1 вопрос на последок: в конце события OkButtomClick хочу активировать главное окно, т.к. я использовал Main_form.Enabled = False, я вот вычитал про команду, которая после выхода из приложения выполняет некоторую операцию, вроде называется terminate, но не уверен. Как с помощью этой операции мне вызвать другое окно. Можете строчку написать, а куда воткнуть её я найду )
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188758
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkKifirСпасибо большое за подсказку) буду дальше делать) И ещё 1 вопрос на последок: в конце события OkButtomClick хочу активировать главное окно, т.к. я использовал Main_form.Enabled = False, я вот вычитал про команду, которая после выхода из приложения выполняет некоторую операцию, вроде называется terminate, но не уверен. Как с помощью этой операции мне вызвать другое окно. Можете строчку написать, а куда воткнуть её я найду )

Если будете использовать то, что я предложил, то вам не нужна строка Main_form.Enabled = False вообще.

Что касается события на выгрузку формы - используйте Form_Unload
...
Рейтинг: 0 / 0
Работа с двумя формами (заморозка неактивного окна)
    #37188765
DarkKifir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо за консультацию, она мне очень помогла... без этой строки и вправду лучше)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с двумя формами (заморозка неактивного окна)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]