![]() |
#1 |
Программатор
|
Странное поведение контрола
Доброго времени суток, уважаемые Дамы и Господа!!!
Ситуация: на форме перекрыл метод task(). Там отлавливаю нажатие ентера на определенном контроле и увеличиваю свою переменную Qty на величину этого контрола(контрол типа real). Есть второй контрол, у него есть дисплейный метод (тоже real), который возвращает Qty. Проблема: дисплейный метод выводит округленное значение по правилу округления, а мне этого совсем не нада. Почему так??? Подскажите пожалуйста, что делать. И еще вопросик: как после нажатия Enter вернуть курсор в тот же контрол??? вызывал методы контролов и enter() и gotfocus() и setFocus() ничего не помогает. С уважением - Sada... |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Sada
И еще вопросик: как после нажатия Enter вернуть курсор в тот же контрол??? вызывал методы контролов и enter() и gotfocus() и setFocus() ничего не помогает.
С уважением - Sada... |
|
![]() |
#3 |
Программатор
|
Цитата:
Сообщение от KMV
Если перекрытом методе enter() не вызывать super() курсор останеться в контроле.
|
|
![]() |
#4 |
Участник
|
Дисплейный метод делает округление, т.к. у него есть тип. Округление происходит в соответствии с настройками этого типа.
|
|
![]() |
#5 |
Участник
|
SetFocus() прекрасно работает. Вот пример.
Код: public int task(int _taskId) { int ret; ; ret = super(_taskId); if (_taskId == 288) // Enter { if (!RealEdit.realValue()) l = 1; else l = 1 / RealEdit.realValue(); RealEdit.setFocus(); // Возвращаемся на прежний контрол } return ret; } |
|
|
За это сообщение автора поблагодарили: Sada (1), VKUR (1). |
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Sada
Не помогло....
|
|
![]() |
#7 |
Программатор
|
Цитата:
Сообщение от Neosy
SetFocus() прекрасно работает. Вот пример.
Код: public int task(int _taskId) { int ret; ; ret = super(_taskId); if (_taskId == 288) // Enter { if (!RealEdit.realValue()) l = 1; else l = 1 / RealEdit.realValue(); RealEdit.setFocus(); // Возвращаемся на прежний контрол } return ret; } ![]() ![]() С этим разобрались... но вот как быть с округлением???... ![]() |
|
![]() |
#8 |
----------------
|
С округлением - надо завести EDT с большим кол-вом знаков после запятой и именно его возвращатьв методе. Только есть одна мелочь - они всегда будут все показываться, даже если все =0
а в task можно просто taskId заменить на 0 (до super) |
|
![]() |
#9 |
Axapta
|
Посмотрите на возвращаемый EDT дисплей-метода. Он имеет нужную вам точность? Округление так же может быть где-нибудь в коде.
Последний раз редактировалось oip; 01.06.2006 в 11:13. |
|
![]() |
#10 |
Программатор
|
Да, действительно...
![]() ![]() ![]() С уважением - Sada... |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|