|
![]() |
#1 |
северный Будда
|
Коллеги, ну зачем же так сурово? можно же всё проще сделать существующими механизмами:
1) написать нужную проверку, которая возвращает true/false (последнее - в виде checkFailed) 2) в строчке на active эту проверку вызывать. если false - рисовать в отдельном поле красный квадратик (как при разноске складских журналов) 3) по нажатию кнопки - делать эту же проверку, но выводить false-результат в инфолог Будет наглядно без всяких серых кнопок
__________________
С уважением, Вячеслав |
|
|
За это сообщение автора поблагодарили: Logger (7). |
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Link
![]() Тогда уже лучше добавить метод для кнопок, где в рантйме можно по условию разный хелп показывать. Т.е. super() возвращает оригинальную справку, и если метод не переопределен, то все работает как и раньше, если переопределен - в зависимости от условия возвращается для показа строка.
Цитата:
Сообщение от pitersky
![]() Коллеги, ну зачем же так сурово? можно же всё проще сделать существующими механизмами:
1) написать нужную проверку, которая возвращает true/false (последнее - в виде checkFailed) 2) в строчке на active эту проверку вызывать. если false - рисовать в отдельном поле красный квадратик (как при разноске складских журналов) 3) по нажатию кнопки - делать эту же проверку, но выводить false-результат в инфолог Будет наглядно без всяких серых кнопок |
|
![]() |
#3 |
Британский учённый
|
Цитата:
Получается, что все можно сделать (см. вложение). Подсказка кнопки меняется в зависимости от текущих условий. Только кому то не хватает более простого способа. А кто то говорит о том, что нет возможности в рантайме выводить подсказки. ![]() AX 4 форма демонстрирует возможность отображать актуальную подсказку по неактивным кнопкам.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 16.01.2012 в 17:53. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
![]() |
#4 |
Участник
|
Цитата:
Сообщение от pitersky
![]() Коллеги, ну зачем же так сурово? можно же всё проще сделать существующими механизмами:
1) написать нужную проверку, которая возвращает true/false (последнее - в виде checkFailed) 2) в строчке на active эту проверку вызывать. если false - рисовать в отдельном поле красный квадратик (как при разноске складских журналов) 3) по нажатию кнопки - делать эту же проверку, но выводить false-результат в инфолог Будет наглядно без всяких серых кнопок По счастью весь самописный код у нас написан в стиле а. Проверка (метод check) можно ли запустить функцию с выводом в инфолог checkFailed б. если в п.а все ок, то выполняем функцию. Тогда можно не запрещать на самописных кнопках нажатие (не использовать button.enable()) а всегда разрешать нажать кнопку, так как если кнопку нажимать было нельзя то проверка сама скажет о себе в инфолог почему нельзя (да, многие юзеры его не читают, но зато читает первая линия техподдержки и консультанты, т.е. цепочка задействованных специалистов все равно будет короче - Profit !). Документацию подробно можно при этом не вести. Все равно она быстро устаревает и зачастую не до конца соответствует тому как все работает в реальности (как следствие регулярно возникают проблемы которые эскалируются до консультантов, они не могут сами посмотреть и в итоге по цепочке доходит до программистов, время у всех тратится напрасно, юзеры по итогу напрягаются - аксапта плохая - специалисты по ней еще хуже). Т.е. при такой схеме, мы автоматом получаем актуальное сообщение почему нажатие кнопки невозможно. Удобно и экономно в поддержке. Правда при этом все же хотелось бы просигнализировать пользователю что кнопку нажимать не следует. Можно вызывать на active метод проверки из пункта а. с подавлением вывода в инфолог. А если метод вернул false, то как-то визуально помечать невозможность нажатия кнопки. Например : 1. Делать шрифт на кнопке серым (как будто кнопка засерена, но тем не менее нажимается. Нелучший вариант, так как скорее всего никто и не попытается нажать) 2. Или курсивом 3. Или дорисовывать на кнопке иконку со специальным запретным значком (красная иконка с знаком "проезд запрещен" или что-то в этом духе. Если таких кнопок будет много, то может рябить в глазах поэтому что-то нейтральное лучше поставить) |
|
Теги |
динамический хелп |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|