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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2005, 15:43   #1  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Покрасить фон Аксапты
Короче - для удобства юзверей есть задачка.
Грубо говоря - нужно установить фон окна Аксапты в определенный цвет.
Есть два требования:
1. Должно позволять покрасить две разных одновременно запущенных Акспт в разные цвета.
2. Не должно быть в виде внешней .dll, .ocx и т.д.

P.S. SetSysColors по понятным причинам не катит. Или катит, но как тогда ловить фокус окна?
Старый 12.09.2005, 19:32   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Какое окно имеется в виду?
__________________
Axapta v.3.0 sp5 kr2
Старый 12.09.2005, 19:37   #3  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Все подряд.
Имеется в виду фон, который видно сразу после запуска и появления главного меню (тот, который за самим меню, ну блин, не знаю, как еще объяснить).
Короче - MDIChild, если что-то кому-то это говорит. То место, на фоне которого появляются все формы, главное меню и прочая лабуда под названием MS Axapta v xx.xx SP yy CU zz.
Старый 12.09.2005, 19:40   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Ну, хотя бы главное меню перекрасить

Типа hWnd = WinAPI::findWindow(0, "Главное меню").
Потом получить дс... и перекрасить.
Короче, кто-нибудь делал?

С Уважением,
Георгий
Старый 12.09.2005, 19:51   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Было давно, год или два назад, несколько обсуждений... цель-то ясна - не запутаться в нескольких одновременно запущенных у одного юзера базах, так ?
Старый 13.09.2005, 01:27   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Изначально опубликовано Zabr
Было давно, год или два назад, несколько обсуждений... цель-то ясна - не запутаться в нескольких одновременно запущенных у одного юзера базах, так ?
Да, в такой постановке задача регулярно возникает. Проще всего решается так: в CompanyInfo заводится поле для цвета, а в классе SysSetupFormRun это поле считывается и устанавливается фон формы (цвет рабочей области окна остается прежним).

Плюсы: модификация всего на пол-экрана кода, простая, работает предельно быстро. Минусы: цвет control'ов остается прежним, т.е. поля, скажем, как бы остаются серыми "островками" посреди цветного "моря". Можно исправить, работая с каждым элементом в дизайне отдельно, но есть подозрение, что тогда упадет производительность. Чисто эстетически выглядит отвратно, но пользователи хавают. Если хотите, могу поискать и предоставить код.
Старый 13.09.2005, 07:10   #7  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Было бы интересно посмотреть
Старый 13.09.2005, 09:24   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Извините, но задачу идентификации окна Axapta можно реализовать намного проще и элегантнее. IMHO

PHP код:
#define.WM_SETTEXT(0x000C)
static void Job18(Args _args)
{
    
str         caption;
    
int  defWindowProc(
                               
int              _handle,
                               
int              _msg,
                               
int              _wParam,
                               
str              _lParam )
    {
        
int         ret;
        
DLL         _DLL             = new DLL('USER32');
        
DLLFunction _defwproc        = new DLLFunction(_DLL'DefWindowProcA');
        ;

        
_defwproc.returns(ExtTypes:: DWord); // LRESULT
        
_defwproc.arg(ExtTypes:: DWord);     // handle window
        
_defwproc.arg(ExtTypes:: DWord);     // message
        
_defwproc.arg(ExtTypes:: DWord);     // wparm
        
_defwproc.arg(ExtTypes::String);     // lparm

        
return  _defwproc.call(_handle_msg_wParam_lParam);
    }
    ;
    
caption winapi::getWindowText(infolog.hWnd());
    
defWindowProc(infolog.hWnd(), #WM_SETTEXT, 0, "База данных 1 : " + caption);

Двоеточие и D местный парсер превращает в смайлики, так что уберите пробел, если будете использовать
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: mazzy (5).
Старый 13.09.2005, 10:21   #9  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004

Огромное, AndyD, Вам спасибо!!!
Старый 13.09.2005, 11:20   #10  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Нууу, эт не совсем то, что требовалось. так я и сам могу.
Надо, чтобы даже самый тупой юзверь при всем желании не смог перепутать. Опять же - кто-то может включить автоскрытие панель задач, и возвращаемся к исходному варианту.

P.S. Кстати, а прямо SetWindowText там что, не прокатил бы?
Аааа, там наверное, стандартная обработка WM_SETTEXT откручена, чтоб никакой злобный хацкер не поменял заголовок... Хм, забавно, но защита от хацкеров-дураков, конечно...
Старый 13.09.2005, 11:32   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вообще-то infolog.hWnd() - это хэндл главного окна Axapta, а элегантность решения - необходимое вам название будет видно и на панели задач и при переключении м-ду процессами ч/з ALT+TAB
__________________
Axapta v.3.0 sp5 kr2
Старый 13.09.2005, 12:18   #12  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Я знаю, что это хэндл главного окна.
Я хочу сказать, что если напрямую послать ему SETTEXT или сказать ему SetWindowText, то фокус не пройдёт. А вот если вызвать DefWindowProc, то прокатит.

Причем здесь элегантность при переключении, я не понял.
Ну, будет видно, и ладно.

Исходная цель была - чтобы различие бросалось в глаза. А с изменением названия окна - не то, чтобы очень...
Старый 13.09.2005, 12:26   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
еще можно прицепить задоченное незакрываемое окно красного цвета к верхнему тулбару.

и чтоб мигало и переливалось по таймеру.

тогда точно бросится
Старый 13.09.2005, 12:27   #14  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Я имел в виду, что если у пользователя запущено несколько окон Axapta, то чтобы выяснить в каком ему надо работать придется их перебирь (ну или помнить), а так список будет у него перед глазами
__________________
Axapta v.3.0 sp5 kr2
Старый 13.09.2005, 13:25   #15  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,260 / 980 (37) +++++++
Регистрация: 03.04.2002
Прошу прощения, что не по существу. Задачка, конечно, интересная, но я никак не могу понять, зачем различать запущенные аксапты? Для различия между компаниями или серверовами? Не слишком ли это накладно, покупать по нескольку лицензий на одного пользователя?
__________________
Isn't it nice when things just work?
Старый 13.09.2005, 13:46   #16  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Изначально опубликовано Maximin

Исходная цель была - чтобы различие бросалось в глаза. А с изменением названия окна - не то, чтобы очень...
Не знаю, как бы отнеслись к этому пользователи (такой задачи не возникало - они у нас в одной базе работают), но чисто для себя сделал смену иконки главного окна. Значки уж точно бросаются в глаза и в панели задач и по Alt-Tab-у. Красный круг с белым крестом от желтого треугольника с воскл. знаком вроде легко отличаю
Хотя... можно было, наверное, развить идею - нарисовать свои значки... И про цвет рабочей области тоже думал... Но потом забил - и так вполне устраивает
__________________
Старый 13.09.2005, 14:33   #17  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
2 macklakov:
Есть 2 базы - рабочая и тестовая. Соответственно, чел по запарке может сесть не на ту базу и давай заказы фигачить.

2 Ruff:
Я тоже уже подумал насчет значков. Наверное, так и сделаем.
Старый 13.09.2005, 16:45   #18  
YaHooka is offline
YaHooka
Участник
 
212 / 16 (1) ++
Регистрация: 22.03.2005
Адрес: Москва
А как значок поменять для окна Axapta?
Старый 13.09.2005, 17:47   #19  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Извинения автору, но если кому-нибудь пойдет раскраска с использованием dll напишите, выложу
__________________
Axapta v.3.0 sp5 kr2
Старый 13.09.2005, 17:53   #20  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,260 / 980 (37) +++++++
Регистрация: 03.04.2002
2 AndyD: Как мнимум, мне интересно Выложите, пожалуйста.
P.S. Хотя идея с закрашиванием фона и не так красива, как идея, с раскрашиванием курсора
__________________
Isn't it nice when things just work?
Теги
ax2009, axapta, download, faq, winapi, база данных, внешний вид, законченный пример, иконка, интерфейс, полезное, фон

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сильно модифицировано ваше приложение Аксапты? mazzy DAX: Прочие вопросы 30 14.04.2011 17:26
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
миграция - в Аксапте и с Аксапты somebody DAX: Программирование 5 18.10.2005 11:06
Как быстро освоить библиотеку классов Аксапты? spartan DAX: Программирование 9 11.05.2005 12:07
Экспорт / импорт Help topics и запуск второй сессии Аксапты из-под себя DmitrySt DAX: Программирование 0 25.11.2004 00:22

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

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

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