04.12.2007, 10:44 | #1 |
Участник
|
И снова как закрыть форму?
Есть форма Пустая(Одна кнопка Ok). По ней открываю другую (Один статик текст) .
X++: public void closeOk() { FormRun fr; Args parameters = new Args() ; super(); parameters.name(formstr(Form2)); parameters.caller(this); FR = classFactory.formRunClass(parameters); FR.Init(); FR.run(); FR.wait(); } Поискал по форумы похожие проблемы были, но они так и остались не разрешёнными. Мож у кого то есть всё таки мысли как можно из формы вызвать другую форму при этом закрыв первую. |
|
04.12.2007, 10:48 | #2 |
Участник
|
почему не открываете через MenuItem?
например: X++: Args parameters = new Args(); MenuFunction addressFormatMenu; ; addressFormatMenu = new MenuFunction(menuItemDisplayStr(AddressFormat),MenuItemType::Display); parameters.caller(this); addressFormatMenu.run(parameters); Последний раз редактировалось ice; 04.12.2007 в 10:51. |
|
|
За это сообщение автора поблагодарили: miklenew (1). |
04.12.2007, 10:51 | #3 |
Участник
|
parameters.name(formstr(Form2));
parameters.caller(this); FR = classFactory.formRunClass(parameters); FR.Init(); FR.run(); FR.detach(); |
|
|
За это сообщение автора поблагодарили: miklenew (1). |
04.12.2007, 10:52 | #4 |
Участник
|
Спасибо помогло.
|
|
04.12.2007, 10:56 | #5 |
Участник
|
|
|
22.10.2014, 05:07 | #6 |
Участник
|
Блин, впервые столкнулся с проблемой за столько лет.. Оказывается если в аксапте есть две любые формы открытые одновременно, не важно откуда, но через код:
FR.Init(); FR.run(); FR.wait(); То первую открытую фиг закроешь. Закрываются только в обратном открытию порядке. FR.detach() - помогает закрытию, но в моем случае надо было ждать результата от формы поэтому FR.detach() лишний. Соглашусь, ситуация специфическая.. но вот же наткнулся все-таки) Я в DAX4 пробовал. |
|
22.10.2014, 08:08 | #7 |
Участник
|
Цитата:
Делайте detach второй формы не заранее, а после того как уже можно не ждать. Или я неправильно понял ситуацию? |
|
22.10.2014, 08:57 | #8 |
Участник
|
Цитата:
Сообщение от Perc
Блин, впервые столкнулся с проблемой за столько лет.. Оказывается если в аксапте есть две любые формы открытые одновременно, не важно откуда, но через код:
FR.Init(); FR.run(); FR.wait(); То первую открытую фиг закроешь. Закрываются только в обратном открытию порядке. FR.detach() - помогает закрытию, но в моем случае надо было ждать результата от формы поэтому FR.detach() лишний. Соглашусь, ситуация специфическая.. но вот же наткнулся все-таки) Я в DAX4 пробовал. Команда на закрытие первой формы просто не доходит до первого цикла и не обрабатывает вторым, поскольку не предназначена контролируемому этим циклом окну. Есть отрицательный эффект при этом - хоть сообщение о закрытии формы до цикла не доходит и форма не закрывается, но в самом formRun сопутствующие закрытию окна события отрабатываю
__________________
Axapta v.3.0 sp5 kr2 |
|
22.10.2014, 11:15 | #9 |
Участник
|
Цитата:
Box::yesYesAllNoCancel("Текст", DialogButton::No); Потом так вышло, что запустил другую операцию, с аналогичным запросом не закрыв первую с запросом. Начал закрывать первую - не закрывается. Начал разбираться - что это подглючивает? Оказалось в моем коде все нормуль. Это wait так работает.. Бороться с ньюансом этим не стал. Да честно говоря и не представляю как это делать малой кровью в общем случае. Но все таки, как уже сказал АndyD, это баг. Код то на закрытие отрабатывает, а форма висеть остается. |
|