![]() |
#1 |
Участник
|
[ANN] AOT - SpotX
Привет всем!
Хочу представить свою утилитку для облегчения работы в аксапте. по сути это надстройка над аотом, которая кроме всего прочего позволяет его дочить наконец к краям экрана ![]() настройки (какие есть) - в classDeclaration # - для добавления в закладки достаточно просто перетащить пункт из нижнего окна (аота) в верхний (где закладки) # - из Аота можно переносить не только отдельные элементы а целые узлы (раздел "классы", раздел "формы"). # - Для удаления закладки - правый клик на пункте - конктекстный пункт "+/- Bookmark" # - в нижнем аоте также работает скроллинг и поиск по первым буквам # - при развертывании узла в закладках с шифтом его содержимое обновляется (а так - кешируется) # - список окон также обновляет при открытии ветки # - при выборе узла аота с шифтом/контролом узел активируется в едит/newwindow режиме скрин и форма в аттаче. если что ногами не пинать, надеюсь будет комунибудь полезно ![]() идеи почерпнуты из Sidaxа, большое спасибо Beluginу за эту утилитку! Последний раз редактировалось IPv6; 03.10.2006 в 17:04. |
|
|
За это сообщение автора поблагодарили: mazzy (5), George Nordic (4). |
![]() |
#2 |
Moderator
|
OFF: Что такое [ANN] ?
Коллеги, я может чего невнимательно пропустил, но что означает этот префикс в названии темы?
![]() Спасибо. |
|
![]() |
#3 |
Moderator
|
announce ?
|
|
![]() |
#4 |
Участник
|
[ANN] -- announce
|
|
![]() |
#5 |
Axapta
|
[!!!] Будет понятнее.
![]() |
|
![]() |
#6 |
Участник
|
[ANN] - announce, довольно распространенный таг на тему с анонсами
кстати, 2Belugin: в описании sidaxа написано про фичу "домик" (на которой я и забазировал эту надстройку над аотом), и написано что она глючит в плане "Если сожрать проект, то нельзя искать по активному AOT окну нажатиями клавиш, а только по сожранному проекту" <- во, этот недостаток удалось победить! офф: понимаю что врядли это кому сильно интересно (все уже привыкли как есть). для меня это был способ изучить аксапту. |
|
![]() |
#7 |
Участник
|
И как удалось?
|
|
![]() |
#8 |
Участник
|
в моем случае: AOT выдирается из своего окна и приклеивается к dummy контролу на своей форме (примерно тоже делает домик в сидаксе), а оригинальное окно скрывается. после этого образуется одна проблема - на аотовское дерево больше не приходят сообщения о фокусе (из-за чего и вышеописанная бага тоже наблюдалась). т.е. чтобы все было ок нужно чтобы приходили. экспериментально выяснилось что для этого можно послать WM_SETFOCUS тому окну которое раньше было его парентом (даже хотя оно и скрыто!). видимо то окно тоже запоминает hWnd где-то у себя и при приходе setfocus все делает как надо. думаю так со всеми окнами в аксапте (class у всех MDI окон одинаков что говорит о том что и поведение скорей всего тоже).
изврат но вроде стабильно работает. |
|
![]() |
#9 |
Пенсионер
|
Прикольно, при ресайзинге, в нижнем окне какая-то полоска туда-сюда бегает...
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#10 |
Участник
|
- могу ли я запихать это в Sidax отдельной кнопкой? (мне так будет удобнее)
- что-то при ресайзе многовато дергается - надо чтобы пустые папки фаворитов при старте были б без плюсиков - надо бы обрабатывать драговер: X++: public FormDrag dragOverEx(Array _dragSource, FormDrag _dragMode, int _x, int _y) { FormDrag ret; ret = super(_dragSource, _dragMode, _x, _y); // тут доблен быть анализ того что мы можем принять гостинец return FormDrag::Copy; } |
|
![]() |
#11 |
Участник
|
- да, конечно! тогда я обратно к Sidaxу вернусь
![]() --- можно ли сделать инициализацию главного меню отложенной, при первом заходе на вкладку? Меню не так часто нужно а при старте обновление не дает работать с узлами аота --- можно ли сделать чтобы активация окна проверяла минимизировано ли окно и поднимало его если да. в spotx как раз так проверяется (если не минимизировано то просто активируется), можно выдрать код - с ресайзингом экспериментирую (с количеством телодвижений) ![]() - с пустыми папками и драговером тоже ясно, поправлю в аттаче последняя версия с несколькими исправленными багами (мелкими) Последний раз редактировалось IPv6; 04.10.2006 в 12:45. |
|
![]() |
#12 |
Участник
|
Попробуйте передалать ресайзинг так
X++: void SyncSizes(HWND w_inner,HWND w_outer) { if(w_inner){ // WinApi::forceMaximizeWindow(w_outer); // this.ShowWindow(w_inner, #SW_MINIMIZE);//SW_MINIMIZE // this.ShowWindow(w_inner, #SW_MAXIMIZE); WinApi::setWindowPos(w_inner,0,0,WindowAOT.widthValue(), WindowAOT.heightValue(),false,false, #SWP_NOZORDER); // WinApi::setWindowPos(w_inner,0,0,0,0,false,true); } }
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#13 |
Участник
|
AndyD
опередил.... =) Еще багу нашел - если развернуть окно на весь экран, а потом свернуть ... |
|
![]() |
#14 |
Участник
|
2Alex_KD: Спасибо! так значительно легче
![]() 2AndyD: Нда... а максимизацию можно запретить? ![]() |
|
![]() |
#15 |
Участник
|
хороша утилитка, толко хотелось бы видеть сам открытый проект вверху. Мош кто знает как туда заинтегрировать окно проекта - типа как во многих IDE? (знаю, можно самому рисовать дерево, но лень кодить)
|
|
![]() |
#16 |
Участник
|
дерево проекта можно "поймать" в контрол на своей форме по аналогии с аотом.
надо будет докрутить ![]() |
|
![]() |
#17 |
Участник
|
Кстати, неплохо бы при закрытии формы закрывать так же и скрытое окно AOT, а то "плодются"
PS. При этом восстанавливать парент у захваченного окна
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 04.10.2006 в 13:23. |
|
![]() |
#18 |
Участник
|
Странно, но открывая проект таким же способом, у меня вылетает пустой проект, хотя в нём должны быть ChildNodes...
Жму dbl-click на единственный элемент - и оппааа - открывается "настойащий" проект ![]() PS: всё, нашел - TreeNodeCurrentProject.AOTRun(); Последний раз редактировалось Delfins; 04.10.2006 в 16:22. |
|
![]() |
#19 |
Участник
|
не понял про пустой проект... а можно поподобнее?
я кстати добавил затаскивание любого окна (проекта) в Tab (закладка теперь просто один из табов, а аот виден всегда) |
|
![]() |
#20 |
Участник
|
Ну этот этап уже прошел.
Вот мой вариант, пока глючный. Не обижайся, скопировал основной код поиска окон ![]() Надо добавить меню закрытия проекта... и.т.д. Добовлять "любое окно" мне не понадобится, лучше доделаю для себя простенький DevPanel... Anyway, спасибо за проект ![]() |
|
Теги |
полезное |
|
|