27.04.2004, 10:47 | #1 |
Решили жить вечно?
|
Перекрытие метод new у формы
Как это сделать правильно?
|
|
27.04.2004, 11:29 | #2 |
Участник
|
А для чего вам это делать ?
Любые обращения к контролам на форме или элементам dataSource приведут к возникновению ошибки. Не лучше ли планируемые действия вынести в другой метод, почему вы именно избрали new ??? |
|
27.04.2004, 11:41 | #3 |
Решили жить вечно?
|
Потому что в new передаются args. Производя отладку метода init в отладчике не видно никакого упоминания об args. Однако написав в коде метода init строку: element.args() можно недвусмыслено озадачиться, оказывается все таки есть. Почему тогда args не видно в отладчике в методе init? Вообще многое в Аксапте кажется странным. Догадаться где искать нужное практически невозможно.
Мне удалось разобраться с args при инициализации формы, теперь у меня другая проблема: на моей форме имеется кнопка ссылающаяся на меню из которой вызывается класс, потомок RunBase. Как мне перехватить нажатие кнопки и в args для вызова моего класса изменить свойство param? |
|
27.04.2004, 12:07 | #4 |
Юзовские
|
Вы можете задать свойство parm прямо в свойствах menuItem'a, на который смотрит ваша кнопка.
Не вижу связи с методом new формы. |
|
27.04.2004, 12:32 | #5 |
Модератор
|
Уважаемая Хилари!
Уточните Вашу задачу, плиз! Так очень тяжело понять, чего именно Вы хотите добиться! 1) Если у Вас по MI вызывается Ваш класс, то зачем Вам менять args?? просто в runе смотрите caller, и, если он Вас чем-то не устраивает, используете свои переметры, вместо переданных в args. Если форма - то же самое можно сделать и в init е. 2) args из формы видны ВЕЗДЕ: this.args() другое дело, что они могут быть пустые. Привильно будет создавать свои args = new Args(); заполнять их и вызывать MenuItem, который запускает данную форму. |
|
27.04.2004, 13:05 | #6 |
Решили жить вечно?
|
Задача в обшем была сначала простая потом усложнилась. В начале были две формы, одна зависит от другой: пользователь выбирает на первой запись, нажимает кнопку появляется вторая, с фильтром по выбраной записи в первой форме, например как это сделано в форме поставщики и контактные лица из настроек формы поставщики. Потом во второй форме потребовалось добавить в classDeclaration переменную, в которой сохранялся этот фильтр. Теперь мне нужно далее из второй формы вызвать другой класс и передать ему этот фильтр, чтоб он выполнил своеобразную обработку.
|
|
27.04.2004, 13:21 | #7 |
Модератор
|
Цитата:
Изначально опубликовано Хилари
Задача в обшем была сначала простая потом усложнилась... Потом во второй форме потребовалось добавить в classDeclaration переменную, в которой сохранялся этот фильтр. Цитата:
Теперь мне нужно далее из второй формы вызвать другой класс и передать ему этот фильтр, чтоб он выполнил своеобразную обработку.
2) Можно вызвать класс так: class myClass = new myClass() myClass.initFromMyTable(MyParameter); myClass.run(); 3) А можно и сохранить данный параметр в какой-нибудь таблице параметров. InventParameters или PurchParameters.. Тогда и из настроек модулю тоже можно будет фильтр задавать... Выбор за Вами! P.S. А с purchLine разобрались? |
|
27.04.2004, 13:37 | #8 |
Решили жить вечно?
|
Цитата:
Изначально опубликовано George Nordic
1) Можно вызвать класс через MenuItem, там же передать параметры 2) Можно вызвать класс так: class myClass = new myClass() myClass.initFromMyTable(MyParameter); myClass.run(); Кстати, а как передать параметры использую MenuItem, то есть то что вы предлагаете в первом случае? Цитата:
P.S. А с purchLine разобрались?
|
|
27.04.2004, 13:48 | #9 |
Участник
|
Цитата:
Изначально опубликовано Хилари
Я также думаю, что мне лутче не использовать меню, а вызвать мой класс из простой кнопки на форме (Button) в методе clicked. Нет, ни в коем случае не лучше. Прочтите, наконец, Best Practice. http://technet.damgaard.com/usered/B..._Practices.htm половина ваших вопросов отпадет сама собой |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|