AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 22.05.2009, 16:24   #1  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Join Date: 12.07.2007
Location: Киев
строка в статус баре
День добрый всем? Каким образом можно выводить свой текст в статус бар? т.е. если мы бегаем по АОТ, в нижнем левом углу отображается путь, а мне нужно в определенный момент выводить туда свой и текст и желательно изменять цвет фона.
Old 22.05.2009, 16:32   #2  
Stitch_MS is offline
Stitch_MS
Участник
Stitch_MS's Avatar
Соотечественники
 
397 / 483 (17) +++++++
Join Date: 27.02.2006
Location: Дания
А еще есть вот такой вариант.
This post has been rated by: greench (1), DSPIC (2).
Old 22.05.2009, 16:32   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Join Date: 11.04.2008
Для изменения данного текста придется воспользоваться WinApi
\Classes\WinAPI\setWindowText(int _handle, str _txt )
Небольшая трудность(техническая) - в получении _handle этого окна. В этом также поможет WinApi и утилитка Microsoft Spy, которая идет в комплекте с MS VisualStudio
Old 22.05.2009, 16:37   #4  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Join Date: 12.07.2007
Location: Киев
Quote:
Originally Posted by Stitch_MS View Post
А еще есть вот такой вариант.
То что нужно, спасибо. Вот бы еще цвет фона поменять.
Old 22.05.2009, 16:42   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Join Date: 11.04.2008
Quote:
Originally Posted by Stitch_MS View Post
А еще есть вот такой вариант.
Прикольно, только что-то не работает
+ наверняка - переключает статус-бар в "ручной режим". Как я понял - автору нужно туда мгновенные месаги кидать на ярком фоне, а в остальном - стандартное поведение должно быть ?!
Old 22.05.2009, 16:47   #6  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Join Date: 12.07.2007
Location: Киев
Quote:
Originally Posted by DSPIC View Post
Прикольно, только что-то не работает
+ наверняка - переключает статус-бар в "ручной режим". Как я понял - автору нужно туда мгновенные месаги кидать на ярком фоне, а в остальном - стандартное поведение должно быть ?!
Вы меня абсолютно правильно поняли. В приведенном выше коде записывается сообщение в правую часть status line
Old 22.05.2009, 16:50   #7  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Join Date: 09.04.2009
? WinAPI
В базе знаний: Как вывести строку в StatusBar?
__________________
Dynamics AX 4.0 SP2
Old 22.05.2009, 17:02   #8  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Join Date: 11.04.2008
Quote:
Originally Posted by greench View Post
Вы меня абсолютно правильно поняли. В приведенном выше коде записывается сообщение в правую часть status line
О, вижу. Да, сюда лучше выводить, ничего ломать не нужно.
Добавлю ещё как идею. В момент, когда нужно вывести текст в статус-бар, сам статус бар можно обводить в рамку или ещё как-нибудь выделять. Например, как в FormDigger'e, или что-нибудь похожее, чтобы юзер сразу обратил внимание. Но тут уж WinApi и тема, предложенная in.dc
Old 25.05.2009, 10:13   #9  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Join Date: 12.07.2007
Location: Киев
Простите за назойливость. А hWnd никто не подскажет для AX 4.0? Я из под терминала не могу поймать.
Old 25.05.2009, 10:31   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Join Date: 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");
}
This post has been rated by: greench (1).
Old 25.05.2009, 10:54   #11  
raz is offline
raz
NavAx
raz's Avatar
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,499 / 1097 (39) ++++++++
Join Date: 22.07.2003
Location: МО
А так не пробовали?

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);
    }
}
This post has been rated by: mazzy (2).
Old 25.05.2009, 11:24   #12  
petergunn is offline
petergunn
Участник
 
118 / 279 (10) ++++++
Join Date: 30.08.2005
Location: Tyumen
Небольшой штрих
Quote:
Originally Posted by DSPIC View Post
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");
}
Attached Images
 

Last edited by petergunn; 25.05.2009 at 11:31.
Old 25.05.2009, 11:37   #13  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Join Date: 11.04.2008
Да, согласен.
А что за окно NavPaneFloatingFrame? что-то не нахожу
Old 25.05.2009, 11:51   #14  
raz is offline
raz
NavAx
raz's Avatar
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,499 / 1097 (39) ++++++++
Join Date: 22.07.2003
Location: МО
строка в статус баре

вот результат
Attached Images
   
Old 25.05.2009, 12:08   #15  
petergunn is offline
petergunn
Участник
 
118 / 279 (10) ++++++
Join Date: 30.08.2005
Location: Tyumen
Quote:
Originally Posted by DSPIC View Post
...
А что за окно NavPaneFloatingFrame? что-то не нахожу
Выскажу предположение что на наличие этого окна в структуре окон приложения оказывает влияние параметр Auto-Hide Navigation (Автоматически скрыть область перехода) из меню View (Вид) - у меня он был отмечен.

Ниже приложил снимок иерархии окон в зависимости от состояния этого пункта меню:
Attached Images
  
This post has been rated by: DSPIC (2).
Old 25.05.2009, 14:56   #16  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Join Date: 12.07.2007
Location: Киев
Всем большое спасибо за ответы. Разобрался, но не пригодилось
Все равно понять для себя как такие вещи делаются - очень полезно.
Tags
ax4.0, faq, statusbar, полезное, программно

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Выделяется не та строка в 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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 21:28.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.