Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Разработка приложений под Open API T-FLEX CAD (.NET)
 
В T-FLEX CAD разработан функционал для создания собственных приложений на основе технологии .NET. Пользователь может создавать приложения, использующие функционал параметрического и геометрического ядер T-FLEX CAD.
Думаю эта тема скоро станет востребованной, поэтому взял на себя смелость создать соответствующую ветку. Существующая ветка "Вопросы по API" в основном посвящена макросам. Несмотря на то, что в принципе макросы и отдельные приложения строятся на одних и тех же методах, все же есть различия в подходе создания и применения: макросы, на мой взгляд, предназначены для решения локальных задач - типа задачи объединения нескольких комманд в один вызов макроса, а приложения решают более серьезные задачи.
Сейчас осваиваю программирование под T-FLEX CAD и как у всех начинающих - много вопросов. По-началу вопросы адресовал разработчикам, а потом подумал, что многие проблемы, с которыми сталкиваюсь сам при освоении, возникают и у других пользователей. К тому же осваивать новое лучше не в одиночку. Надеюсь, что этой темой заинтересуются еще пользователи и мы вместе сможем осваивать материал быстрее. Очень ценны советы Brom25. Надеюсь, что ответы на вопросы мы сможем получать и от разработчиков.

Вот мой первый вопрос (перенесен из ветки "Вопросы по API"):
Как создавать контекстное меню в С# разобрался. Причем, задал вызов меню на элементе control. Когда приложение запущено, но файл еще не открыт контекстное меню работает, но при открытии файла в control - контекстное меню работать отказывается. В руководстве по API есть описание вызова:

__delegate void ControlContextMenu(Object* sender, ControlEventArgs* e);

Как его вызвать понять не могу - примера нет.
Страницы: Пред. 1 2 3 4
Ответы
 
Можно ли в API T-Flex выделить ячейки в таблице и обьединить их, и сделать границу снизу толстой линией ?
 
По поводу толщины границ - не знаю, но для объединения ячеек функциональность в T-Flex Open API вынесена.

Вопрос: как сделать вложенное меню для кнопки на панели, созданной приложением пользователя (подобные вложенные меню появились в пользовательском интерфейсе T-Flex 11)? Возможно ли сейчас сделать такое?
Кто ищет - тот всегда найдет!
 
Цитата
Brom25 пишет:
для объединения ячеек функциональность в T-Flex Open API вынесена.

А подробнее можно как пишется?
 
Сам я с таблицами практически не работал, но то что Вам нужно находится в классе Table (запустите справку по Open API и во вкладке указатель наберите: Table), там представлена функциональность для работы с таблицами. Конкретно, для объединения ячеек представлен метод MergeCells.
Кто ищет - тот всегда найдет!
 
Код
enum Commands//перечисление команд
{
 NULL = 0,
 comand1,
 comand2,
 comand3,
 comand4,
 Count
};

protected override void OnCreateTools()
{
 base.OnCreateTools();
 String [] sFuncName = new String[(int)Commands.Count]
 {
  "",
  "подменю1",
  "подменю2",
  "подменю3",
  "подменю4",
 };

 //создаём подменю в "меню1" 
 TFlex.Menu submenu = TFlex.Application.Window.InsertPluginSubMenu("меню1", MainWindow.InsertMenuPosition.BeginOfTools, this);
 for(int i = 1; i < (int)Commands.Count; i++)
 {
  RegisterCommand(i, sFuncName[i]);//регистрируем команду
  submenu.Append(i, sFuncName[i], this);//и добавляем её в подменю
 }
}
Конструктору - конструирование, программисту - программирование
 
Я, наверное, не совсем понятно выразился. У меня есть своя панелька (toolbar) и нужно, чтоб при нажатии на одну из кнопок появлялось подменю (аналогичным образом сделана кнопка "Размер" на главной панели). Сейчас, в меню "Сервис" у меня есть подменю второго уровня вложенности и есть кнопка на панели, у которой номер (индекс) команды сответствует номеру (индексу) этого подменю. При нажатии этой кнопки не появляются ни пиктограммки ни список команд этого подменю. Даже :idontnow: , что для этой кнопки писать в методе:
protected override void OnCommand(Document document, int id)

PS Често говоря, начинаю склоняться к тому, в T-Flex для этого пока не достаточно функционала.
Изменено: Brom25 - 22.11.2009 01:39:52
Кто ищет - тот всегда найдет!
 
а не могли бы Вы выложить пример (желательно в виде файла-макроса *.grb) панельки инструментов, чото не получаэтся самому розобраться.
 
Вам вероятно сюда
Кто ищет - тот всегда найдет!
 
Кто-нибудь может сказать, может ли TFControl показывать графические файлы типа *.bmp, *.jpg как это происходит в T-Flex DOCs?
 
Цитата
Василий Кузьмин пишет:

Кто-нибудь может сказать, может ли TFControl показывать графические файлы типа *.bmp, *.jpg как это происходит в T-Flex DOCs?
Напрямую - сомневаюсь. Если только программно вставить картинку в документ T-FLEX CAD, то думаю покажет документ со вставленной картинкой.
А обычными средствами C# показать картинку недостаточно?
Изменено: Сергей Максимов - 22.08.2010 12:45:39
 
Цитата
Сергей Максимов пишет:

А обычными средствами C# показать картинку недостаточно?
По всей видимости этот контрол (или его модификация) используется в T-FLEX DOCs, а там картинки отображаются. Вот и возник вопрос, может я в настройках контрола что не так делаю
 
Цитата
Сергей Максимов пишет:

А обычными средствами C# показать картинку недостаточно?

Поддерживаю.

А вообще это может TFlex.FilePreview.
Кто ищет - тот всегда найдет!
 
Вот мне интересно T-FLEX OPEN API относится к управляемому коду или неуправляемому? В первом случае объекты уничтожает уборщик мусора, во втором нужно позаботиться об их уничтожении. Т.е. открывая/закрывая в цикле документы T-FLEX CAD, нужно ли заботиться об освобождении ресурсов вручную?
Уборщик мусора запускается только в случаях нехватки памяти. Очень не хотелось бы доводить заполнение памяти до предела, когда будет открываться "тяжелый" документ. Может стоит инициировать запуск уборщика мусора после каждого закрытия документа T-Flex Cad?
Изменено: Сергей Максимов - 23.08.2010 23:14:13
 
Разобрался. Изображения в TFlex.Control можно подключать с помощью свойства Image.
Кстати может кто решил задачку как подружить TFlex.Control с Visual Studio? Если в Visual Studio 2008 после танцев с бубном удается подключить Control, то VS 2010 напрочь отказывается с ним работать
 
Цитата
Василий Кузьмин пишет:

то VS 2010 напрочь отказывается с ним работать

А чем Вас не устраивает SharpDevelop http://www.icsharpcode.net/OpenSource/SD/? Работает он шустрее, поддерживает SubVersion. Инструмент, на мой взгляд удобнее, чем у мелкомягких. К тому же Open Source.
Изменено: Сергей Максимов - 01.09.2010 22:03:17
 
Цитата
Сергей Максимов пишет:

А чем Вас не устраивает SharpDevelop
Просто с ним не приходилось работать.
И все-таки, есть ли решения для VS?
 
Пытаюсь решить такую задачку. Создаю приложение, которое будет располагаться в каталоге C:\Program Files\T-FLEX\Мое приложение\. Приложение должно одновременно использовать API T-FLEX CADа и T-FLEX DOCs. По отдельности у меня удается подключаться через Environment.CurrentDirectory = pathTflex; иными словами я могу создать приложение которое будет работать либо только с API Када, либо только с API DOCs. А как подключиться к обоим API одновременно?
 
Народ, подскажите кто в курсе, пожалуйста.
Есть задача через апи двумя способами скопировать фрагмент - просто получить его копию и вставить и получить копию через линейный массив.
При этом нужно чтоб фрагмент становился уникальным, не зависящим от того с которого копировали. Есть способы?
Изменено: Si Jei - 09.06.2011 11:48:44
Страницы: Пред. 1 2 3 4