Вопрос по VB6 достаточно сложный

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

Вопрос по VB6 достаточно сложный

Сообщение shooroop87 » 02.02.2009 (Пн) 17:37

Вступление к вопросу: Сделал форму MDIForm (вместе с ней ещё появляется форма с названием frmDocument). Добавил ещё пару Form. Написал код расчета пару уравнений (в форме frmDocument) с использованием функций и процедур. Ответ вывожу на одной из форм (Form1). Другую (Form2) хочу использовать при расчете. Т.Е. идет расчет до определенного момента потом выскакивает Form2 я выбираю с помощью Option нужную мне цифру для дальнейшего расчета, но как бы тут и загвоздка. Расчет уравнений идет дальше. Даже не дав мне выбрать эту цифру...короче в конце концов не получается!(((( Вопрос такой: Как сделать так, чтобы шел расчет моих уравнений потом что-то вроде стоп кран я выбираю на Form'е 2 с помощью Option нужную мне цифру жму ОК (выбранное мной значение переносится в форму frmDocument для использования в дальнейших расчетах) и только тогда продолжается выполнение остальных уравнений с учетом моего выбора и в конце выводятся все ответы на Form1.
p.s. Прошу извенить за столько возможно тупое объяснение. Помогите пожалуйста, дайте совет как сделать. Очень нужно.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Вопрос по VB6 достаточно сложный

Сообщение VBTerminator » 02.02.2009 (Пн) 18:03

В таких случаях я делаю так:

1. В том месте, где требуется вызвать фому Form2 пишу:
Код: Выделить всё
Form2.Show
lngSelect=Form2.GetValues


2. В функцию GetValues, возвращающую нужное значение для дальнейшего решения уравнения забиваю:
Код: Выделить всё
Dim blnNowIGetValue As Boolean

Public Function GetValues () As Long
    blnNowIGetValue = True

    '...получения значения с присвоением значения имени процедуры...
    blnNowIGetValue = False


3. Там, где требуется пауза до введения юзером значения делаем цикл Do - Loop:
Код: Выделить всё
Do While blnNowIGetValue
     DoEvents
Loop

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Re: Вопрос по VB6 достаточно сложный

Сообщение Бяка » 02.02.2009 (Пн) 19:45

если расчет идет не в таймере а в цЫкле, то проще
Код: Выделить всё
Form2.Show modal:=vbModal, ownerform:=Me

и все :)

тоесть при вызове Form2 твой цикл прервется пока не закроешь Form2
а в каком нить модуле создаешь глобальную переменную ккоторая будет хранить нужную цифру для дальнейшего расчета, типа
Public цифрa_Option as long
в Form2 при нажатии на кнопочку Ок
выполняешь это
Код: Выделить всё
цифрa_Option =какаянить цифра
unload me

главное незабудь Form2.Show modal:=vbModal, ownerform:=Me


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

    TopList