Показать сообщение отдельно
Старый 23.01.2018, 20:17   #71
Klim Bassenger
Пользователь
 
Аватар для Klim Bassenger
 
Регистрация: 15.02.2010
Сообщений: 52
Сказал(а) спасибо: 13
Поблагодарили 30 раз(а) в 15 сообщениях
Вес репутации: 184
Klim Bassenger на пути к лучшему
По умолчанию

Цитата:
Сообщение от Lonbus Посмотреть сообщение
Перестала работать расстановка позиций, в предыдущих версиях можно было так

PHP код:
Action.Control.Owner.Owner.dpModelTree.Controls[1].BtnArrangeClick(); 
Метод небезопасный, но при должном использовании все работало корректно. Больше похож на "костыль", но он работал.

В версиях 8 и 9 вызвать нажатие на кнопку, например, с именем BtnArrange, можно было процедурами

PHP код:
BtnArrange.PostClick(), BtnArrange.Click(), BtnArrangeClick(); 
Сейчас процедуры стали недоступны, с другой стороны почему-то остались процедуры унаследованные от TComponent.

Доступ к объектам TAction есть, но запуска расстановки позиций там не нашел.

Хочется, чтобы разработчики добавили TAction расстановки позиций на главную форму.

Или скажите пожалуйста где и что не нашел? Как запустить расстановку позиций?
Сразу скажу, что не я делал. Но мой скрипт, в котором тоже расстановка позиций использовалась переделали. Скрипт достаточно объемный, но вроде бы именно эта функция отвечает за расстановку. Правда выскакивает окошка с предложением создать чертежи, но как сказали ребята, которые переделывали скрипт, по-другом нельзя.
Зато хоть работает...

Скрытый текст


function arrangePositions() {
var mainForm = Action.Control.Owner.Owner;
if ((system.apiVersion == 85) || (system.apiVersion == 90)) {
var modelTree = mainForm.FindComponent("dpModelTree");
if (modelTree != undefined) {
if (modelTree.Visible == false) {
var actModelTree = mainForm.FindComponent("a3ModelTree");
if (actModelTree != undefined) {
actModelTree.Execute();
}
else {
alert('Недоступно событие <Структура модели>!');
return false;
}
}
if(confirm('Расстановка позиций будет выполнена заново.\nПродолжить?')) {
if (modelTree.Visible == true) {
var frmModelTree = modelTree.FindComponent("FrmModelTree");
if (frmModelTree != undefined) {
var btnArrange = frmModelTree.FindComponent("BtnArrange");
if (btnArrange != undefined) {
Action.Hint = 'Расстановка позиций...';
btnArrange.Click();
return true;
}
}
}
else {
alert('Закрыт инструмент <Структура модели>!');
return false;
}
}
else {
alert('Отменено пользователем!');
return false;
}
}
else {
alert('Недоступен объект <Структура модели>!');
return false;
}
}
else {
if(confirm("Расстановка позиций будет выполнена заново.\nДалее, при необходимости, создайте чертежи.\nПродолжить?")) {
makeDrawings = mainForm.FindComponent("a3MakeDrawings");
if (makeDrawings != undefined) {
Action.Hint = 'Расстановка позиций...';
deletePositions();
makeDrawings.Execute();
if (isEmptyPositions() == true) {
alert('Расстановка позиций не выполнена!');
return false;
}
return true;
}
else {
alert('Недоступно событие <Создать чертежи>!');
return false;
}
}
else {
alert('Отменено пользователем!');
return false;
}
}
alert('Невозможно выполнить расстановку позиций!');
return false;
}
[свернуть]
__________________
Если бы Бог хотел, чтобы мы думали только головой, он бы сделал нас колобками.
Klim Bassenger вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
wizardpnz (07.06.2018)