|  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, интерфейс, программно, управление окнами | 
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |