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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2007, 12:44   #1  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Регистрация: 21.11.2006
Как программно передвинуть контрол?
Здравствуйте.
Меняю стандартную форму DocuView, нужно в init программно изменить нижнюю часть формы, а именно добавить туда Tab с несколькими закладками. Это я делаю без проблем.
Но нужно на одну из этих вкладок перенести контрол HtmlView - не подскажите как это сделать?
Старый 11.01.2007, 13:46   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
X++:
public void init()
{
    FormTabControl tab;
    FormTabPageControl tabPage;
    FormActiveXControl html;
    ;
    super();
    tab = this.design().addControl(FormControlType::Tab, "Tab");
    tab.widthMode(1);
    tab.heightMode(1);
    tabPage = tab.addControl(FormControlType::TabPage, "Page1");
    tabPage.widthMode(1);
    tabPage.heightMode(1);
    tabPage.caption("HTML View");
    html = tabPage.addControl(FormControlType::ActiveX, "HTMLView");
    html.widthMode(1);
    html.heightMode(1);
    html.className("Shell.Explorer");
    html.Navigate("c:\\Temp\\Книга1.htm");

    tabPage = tab.addControl(FormControlType::TabPage, "Page1");
    tabPage.widthMode(1);
    tabPage.heightMode(1);
    tabPage.caption("Просто Tab Page");
}
__________________
Axapta v.3.0 sp5 kr2
Старый 11.01.2007, 13:55   #3  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Регистрация: 21.11.2006
Там на форме DocuView уже есть контрол HTMLView. Я хочу именно передвинуть его т.к. на нем определены методы и он в том месте где он находиться в стандарте мне не нужен.
А этот код:
Цитата:
html = tabPage.addControl(FormControlType::ActiveX, "HTMLView");
создает новый а не переносит. Нельзя ли как-то перенести существующий?
Старый 11.01.2007, 14:08   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от madm Посмотреть сообщение
Нельзя ли как-то перенести существующий?
Можно.

Но для этого вам нужно отключить авторазмещение элементов на форме.
Что сразу же выключит функциональность, связанную morphX (роли, безопасность, лицензии, доработки).
Если вы так сделаете, вас буду проклинать все последующие программисты, которые будут работать с вашей формой.

Как отключить авторазмещение см. форму tutorial_Form_freeform

Про безопасность см. http://axapta.mazzy.ru/screenshots/common/example.html
__________________
полезное на axForum, github, vk, coub.
Старый 11.01.2007, 14:13   #5  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Регистрация: 21.11.2006
Т.е. то что так просто делается drag&drop'ом при создании формы так трудно реализовать программно?

Цитата:
Но для этого вам нужно отключить авторазмещение элементов на форме.
О нет. Этого я делать точно не могу.
Старый 11.01.2007, 14:14   #6  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Регистрация: 21.11.2006
А moveControl что делает? Название уж больно подходящее но не перемещает...
Может еще можно как-то изменить containerId?
Старый 17.01.2007, 13:10   #7  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от madm Посмотреть сообщение
... нужно на одну из этих вкладок перенести контрол HtmlView - не подскажите как это сделать?
Думаю, что movecontrol() сделает то что Вам нужно...
Код:
void init()
{
    ...
    // test -->
    FormTabControl                      newFormTabControl;
    FormTabPageControl                  newFormTabPageControl;
    // test <--
    ...
    super();
    ...
    // test -->
    // Overview и HtmlView - контролы формы с AutoDeclaration = Yes, т.е. можно ссылатся на них в коде. Иначе использовать element.design().controlName(ControlName) или element.design().control(control::ControlName)
    newFormTabControl = Overview.addControl(FormControlType::Tab, "NewTab");
    newFormTabControl.heightMode(FormHeight::ColumnHeight);
    newFormTabControl.widthMode(FormWidth::ColumnWidth);
    newFormTabPageControl = newFormTabControl.addControl(FormControlType::TabPage, "NewTabPage");
    newFormTabPageControl.caption("NewTabPage");
    newFormTabPageControl.moveControl(HtmlView.id());
    // test <--
}
madm, это то, о чем Вы спрашивали (см. рисунок)?

P.S.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
... после открытия формы вы не можете менять что-либо в дизайне этой формы...
Делал подобное и после Run(). Кроме изменения размеров и перерисовки формы ничего побочного не выскакивало (тут уж от специфичности кода в ините и ран формы все зависит)
Миниатюры
Нажмите на изображение для увеличения
Название: DocuTest.JPG
Просмотров: 348
Размер:	62.8 Кб
ID:	2355  
За это сообщение автора поблагодарили: mazzy (5), DTD (1), madm (1), SergeyAY (0).
Старый 18.01.2007, 19:32   #8  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Регистрация: 21.11.2006
Да Валентин именно это я и хотел получить. Странно но я писал подобный код и у меня он не работал... Попробую Ваш как-нибудь. Спасибо!
Теги
movecontrol, передвинуть

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Контрол типа DateEdit в диалоге breakpoint DAX: Программирование 15 02.07.2008 11:18
Рассылка сообщений программно NNB DAX: Программирование 3 28.09.2006 15:39
Как программно создать платежное поручение? AK9 DAX: Программирование 3 13.09.2006 09:37
Как программно выделить все строки Lucky13 DAX: Программирование 5 30.06.2006 10:36
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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