AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2009, 16:24   #1  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
строка в статус баре
День добрый всем? Каким образом можно выводить свой текст в статус бар? т.е. если мы бегаем по АОТ, в нижнем левом углу отображается путь, а мне нужно в определенный момент выводить туда свой и текст и желательно изменять цвет фона.
Старый 22.05.2009, 16:32   #2  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
А еще есть вот такой вариант.
За это сообщение автора поблагодарили: greench (1), DSPIC (2).
Старый 22.05.2009, 16:37   #3  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
А еще есть вот такой вариант.
То что нужно, спасибо. Вот бы еще цвет фона поменять.
Старый 22.05.2009, 16:42   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
А еще есть вот такой вариант.
Прикольно, только что-то не работает
+ наверняка - переключает статус-бар в "ручной режим". Как я понял - автору нужно туда мгновенные месаги кидать на ярком фоне, а в остальном - стандартное поведение должно быть ?!
Старый 22.05.2009, 16:47   #5  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Прикольно, только что-то не работает
+ наверняка - переключает статус-бар в "ручной режим". Как я понял - автору нужно туда мгновенные месаги кидать на ярком фоне, а в остальном - стандартное поведение должно быть ?!
Вы меня абсолютно правильно поняли. В приведенном выше коде записывается сообщение в правую часть status line
Старый 22.05.2009, 16:50   #6  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Регистрация: 09.04.2009
? WinAPI
В базе знаний: Как вывести строку в StatusBar?
__________________
Dynamics AX 4.0 SP2
Старый 22.05.2009, 17:02   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от greench Посмотреть сообщение
Вы меня абсолютно правильно поняли. В приведенном выше коде записывается сообщение в правую часть status line
О, вижу. Да, сюда лучше выводить, ничего ломать не нужно.
Добавлю ещё как идею. В момент, когда нужно вывести текст в статус-бар, сам статус бар можно обводить в рамку или ещё как-нибудь выделять. Например, как в FormDigger'e, или что-нибудь похожее, чтобы юзер сразу обратил внимание. Но тут уж WinApi и тема, предложенная in.dc
Старый 25.05.2009, 10:13   #8  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Простите за назойливость. А hWnd никто не подскажет для AX 4.0? Я из под терминала не могу поймать.
Старый 22.05.2009, 16:32   #9  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Для изменения данного текста придется воспользоваться WinApi
\Classes\WinAPI\setWindowText(int _handle, str _txt )
Небольшая трудность(техническая) - в получении _handle этого окна. В этом также поможет WinApi и утилитка Microsoft Spy, которая идет в комплекте с MS VisualStudio
Старый 25.05.2009, 10:31   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
X++:
static void hWndStatusBar(Args _args)
{
    HWnd    hWndStatusBar;
    ;
    
    hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), '');
    hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), '');

    WinApi::setWindowText(hWndStatusBar, "234");
}
За это сообщение автора поблагодарили: greench (1).
Старый 25.05.2009, 11:24   #11  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Небольшой штрих
Цитата:
Сообщение от DSPIC Посмотреть сообщение
X++:
static void hWndStatusBar(Args _args)
{
    HWnd    hWndStatusBar;
    ;
    
    hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), '');
    hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), '');

    WinApi::setWindowText(hWndStatusBar, "234");
}
Немного модифицировал предложенный вариант:
X++:
static void jbStatusBarTextDax40(Args _args)
{
    HWND    hWndChildFrame = WinApi::findWindowEx( infolog.hWnd(), 0, identifierstr( AxChildFrame ), "StatusBar" ) ;
    HWND    hWndStatusBar = WinApi::findWindowEx( hWndChildFrame, 0, identifierstr(AxStatusBar), "" ) ;
    ;

    if( hWndStatusBar )
        WinApi::setWindowText( hWndStatusBar, "demo text in status bar" ) ;
}
Код:
X++:
    hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), '');
возвращает первое дочернее окно класса AxChildFrame, что вносит неоднозначность - в моем случае это было окно панели NavPaneFloatingFrame

UPD: результат тестирования исходного варианта
X++:
static void hWndStatusBar(Args _args)
{
    HWnd    hWndStatusBar;
    ;
    
    hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), '');
    info( strfmt( "%1 - %2", hWndStatusBar, WinAPI::getWindowText( hWndStatusBar ) ) ) ;
    
    hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), '');
    info( strfmt( "%1 - %2", hWndStatusBar, WinAPI::getWindowText( hWndStatusBar ) ) ) ;

    WinApi::setWindowText(hWndStatusBar, "234");
}
Изображения
 

Последний раз редактировалось petergunn; 25.05.2009 в 11:31.
Старый 25.05.2009, 10:54   #12  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
А так не пробовали?

X++:
static void Test(Args _args)
{
    int         i;
    Percentbar  percentbar;
    ;
    percentbar = new Percentbar(1000, "Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1");
    sleep(3000);
    percentbar.finalize();

    percentbar = new Percentbar(1000, "Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2");
    sleep(3000);
    percentbar.finalize();

    percentbar = new Percentbar(1000, "Operation in progress");

    for (i = 1; i <= 1000; i++)
    {
        percentbar.set(i);
        sleep(3);
    }
}
За это сообщение автора поблагодарили: mazzy (2).
Старый 25.05.2009, 11:37   #13  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Да, согласен.
А что за окно NavPaneFloatingFrame? что-то не нахожу
Старый 25.05.2009, 12:08   #14  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от DSPIC Посмотреть сообщение
...
А что за окно NavPaneFloatingFrame? что-то не нахожу
Выскажу предположение что на наличие этого окна в структуре окон приложения оказывает влияние параметр Auto-Hide Navigation (Автоматически скрыть область перехода) из меню View (Вид) - у меня он был отмечен.

Ниже приложил снимок иерархии окон в зависимости от состояния этого пункта меню:
Изображения
  
За это сообщение автора поблагодарили: DSPIC (2).
Старый 25.05.2009, 14:56   #15  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Всем большое спасибо за ответы. Разобрался, но не пригодилось
Все равно понять для себя как такие вещи делаются - очень полезно.
Старый 25.05.2009, 11:51   #16  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
строка в статус баре

вот результат
Изображения
   
Теги
ax4.0, faq, statusbar, полезное, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выделяется не та строка в Lookup списке V.Yelkin DAX: Программирование 13 28.10.2008 09:20
статус клиента fialka DAX: Функционал 7 31.05.2007 15:17
Статус формирования РКО при выплате ЗП NV DAX: Функционал 1 30.09.2005 14:55
Заказ не переходит в статус "отгружено" ATimTim DAX: Функционал 29 27.12.2004 14:01
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:58.