03.09.2008, 18:09 | #1 |
Участник
|
Ограничить передвижение окон пределами главного окна АХ
На комьюнити парень запостил следующий код, возможно кому-то покажется полезным
Он ограничивает перетаскивание/расположение форм в АХ 2009 по главному окну системы, тем самым возвращая интерфейс из АХ 4.0. Хотя, лично я бы не советовал увлекаться сильно этим, так как к окнам вне MainWindow довольно быстро привыкаешь Цитата:
Hi there
In development environment it, if all the dynamics windows floats around the desktop and the task bar is jammed all the time - this can be very frustrating it just sucks. If you want to keep the forms in the AX workspace window (as in AX Version <= 4.0) modify the ClassFactory.formRunClass() as follow: X++: FormRun formRunClass(Args args) { FormName formName; FormRun formRun; ; if (args.name()) { formName = args.name(); } else if (args.object()) { formRun = SysDictClass::as(args.object(), classnum(FormRun)); if (formRun) { formName = formRun.name(); } } if (formName) { SysUtilElementsLog::registerElementUsed(UtilElementType::Form, formName); } formRun = ClassFactory::formRunClassOnClient(args); if (formRun.form().design().windowType() == FormWindowType::Standard) { formRun.form().design().windowType(FormWindowType::Workspace); } return formRun; } May be you find pleasure to this hack. Best regards Patrick |
|
|
За это сообщение автора поблагодарили: mazzy (2), Ansi (0), Logger (3), Poleax (1), Stitch_MS (1), alex55 (1), aweaka (1). |
10.09.2016, 11:43 | #2 |
Участник
|
Цитата:
Попробовал ваш вариант - чо-то не работает. А пользователи просят. |
|
10.09.2016, 12:23 | #3 |
Боец
|
Цитата:
X++: formRun.form().design().windowType(FormWindowType::Workspace); |
|
|
За это сообщение автора поблагодарили: Logger (5). |
10.09.2016, 13:26 | #4 |
Участник
|
Цитата:
Да они еще в 2009-й теряли в презентабельности. Но никак не можем переучиться на новый вид. Пока не можем решить вопрос как различать формы из двух разных приложений. Например, аналитик одновременно работает в тестовой аксапте и в рабочей. или программист работает в деве и в тесте. В случае когда все окна собраны внутри главного - то все просто - по заголовку главного окна все понятно. А если каждое само по себе, то легко перепутать. |
|
10.09.2016, 22:22 | #5 |
Боец
|
Цитата:
Сообщение от Logger
Спс.
Да они еще в 2009-й теряли в презентабельности. Но никак не можем переучиться на новый вид. Пока не можем решить вопрос как различать формы из двух разных приложений. Например, аналитик одновременно работает в тестовой аксапте и в рабочей. или программист работает в деве и в тесте. В случае когда все окна собраны внутри главного - то все просто - по заголовку главного окна все понятно. А если каждое само по себе, то легко перепутать. \Classes\SysSetupFormRun\init X++: public void init() { super(); if (this.isWorkflowEnabled()) { workflowControls = SysWorkflowFormControls::construct(this); workflowControls.initControls(); } // EVGA --> this.devSetWindowText(); // EVGA <-- } X++: // EVGA --> private void devSetWindowText() { str captionStr; captionStr = WinAPI::getWindowText(this.hWnd()); captionStr = strRem(captionStr, "TEST: "); captionStr = "TEST: " + captionStr; WinAPI::setWindowText(this.hWnd(), captionStr); this.setTimeOut(identifierStr(devSetWindowText), 500); } // EVGA <-- Caption же главного окна приложения можно поменять аналогичным WinApi здесь \Classes\Info\workspaceWindowCreated Вдобавок, можно еще и иконку окон поменять, см. WM_SETICON message. |
|
|
За это сообщение автора поблагодарили: Logger (3), Raven Melancholic (5). |
11.09.2016, 13:20 | #6 |
NavAx
|
Все проще можно. В конфигураци клиента указать имя АОСа, в настройках пользователя включить галочку отображать имя АОСа в строке статуса. И всегда будет видно, какой это АОС, даже в многооконном режиме.
PS. Я не об отключении перемещения за пределы главного окна, а о решении проблемы идентификации приложения. Последний раз редактировалось raz; 11.09.2016 в 13:41. |
|
|
За это сообщение автора поблагодарили: Logger (3), DSPIC (2). |
11.09.2016, 14:39 | #7 |
Участник
|
Попробовал в 2012-й вариант предложенный DSPIC.
Работает. Но в некоторых местах как-то странно. Лезут какие-то левые окошки кривые. Похоже не для каждого окна надо такое вмешательство делать, а какие-то не трогать. Вопрос только какие. В общем, пока отключил. Надо будет поисследовать вопрос подробнее. Склоняюсь просто к тому чтобы каждому приложению задать свой цвет окна и все. |
|
07.10.2016, 11:09 | #8 |
Британский учённый
|
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
Теги |
ax2009, dev toolbar, developer tool, syssetupformrun, интерфейс, программно, управление окнами |
|
|