[ID CS3 и ранее] Преобразование абзаца в таблицу

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
Может кто-нибудь глянуть скрипт
ultraborder ? :)
Ну, у меня на CS 5.5 рус. вылезает ошибка, которая, как я полагаю, снова связана с локализацией:

ultraborder-1.jpg ultraborder-2.jpg
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
Может кто-нибудь глянуть скрипт
ultraborder ? :)
Скрипт у меня заработал только после того, как я в строке 144 оставил width -= 0.353; и в строках 160-166 и 173-176 удалил все + " pt" и + " mm". Естественно, так делать не нужно :) . Но работает :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А если поставить width-=parseInt(mySe...*0.353) ?
 
  • Спасибо
Реакции: LeonidB

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Тогда всё работает!
У меня скрипт ultraborder и без изменений работает (CS3 с русским интерфейсом). Но почему при повторном запуске скрипта, он увеличивает ширину ранее созданной им же таблицы-рамки? Как это можно убрать? Чтобы ширина оставалось такой же (в случае если ширина колонки остается без изменений).
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
он увеличивает ширину ранее созданной им же таблицы-рамки?
А откуда он узнает, какая таблица создана им, а какую надо? Наверное, для начала надо определиться с ответом на этот вопрос.
 

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
А откуда он узнает, какая таблица создана им, а какую надо? Наверное, для начала надо определиться с ответом на этот вопрос.
Ну когда я запускаю скрипт в первый раз, то он делают таблицу с точно такой же шириной что и ширина колонки, в которой находится абзац. Как-то же значит узнает? ))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Вообще, мельком глянул код - а разве не так задумано?
Строки 129-131:
Код:
with (myTable) {
                    width += topBorderStrokeWeight;   
                }
закомментируйте и не будет расширять ничего
 

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Вообще, мельком глянул код - а разве не так задумано?
Строки 129-131:
Код:
with (myTable) {
                    width += topBorderStrokeWeight;  
                }
закомментируйте и не будет расширять ничего

Закомментировал, теперь ширина не увеличивается, а уменьшается. ) Ладно, пусть так будет. :-/
Вы не могли бы помочь еще? Что поменять в скрипте, чтобы установки по умолчанию были чуть-чуть другие.
А именно:
Style (стиль линии) — сплошная (а не тройная),
Fill ColorBlack (а не None),
Fill Tint20% (а не 100%).
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
А я бы помечтал :) - о возможности задания не отдельных установок для стиля линии, толщины, цвета обводки и заливки, а о выборе уже готового стиля ячейки (это, конечно же, не для старых версий ID, а для тех, у которых стили ячеек существуют). То есть запускаешь скрипт - и такому-то абзацному стилю предлагается задать нужный стиль ячейки. И при этом запоминался бы последний выбор.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Fill Tint20% (а не 100%).
Код:
var mySelectedFillTint = percentComboboxes.add({editValue:20, stringList:myPercentList, smallNudge:5, largeNudge:10, maximumValue:100});
Fill ColorBlack (а не None),
Код:
var mySelectedFillColor = dropdowns.add({selectedIndex:1, stringList:mySwatchesList}); // Или какое нибудь другое число вместо 0 и 1
Style (стиль линии) — сплошная (а не тройная),
Этот момент я не совсем понял - там же вроде и так по умолчанию выбирается solid?
 

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Код:
var mySelectedFillTint = percentComboboxes.add({editValue:20, stringList:myPercentList, smallNudge:5, largeNudge:10, maximumValue:100});

Код:
var mySelectedFillColor = dropdowns.add({selectedIndex:1, stringList:mySwatchesList}); // Или какое нибудь другое число вместо 0 и 1

Этот момент я не совсем понял - там же вроде и так по умолчанию выбирается solid?

Не знаю, у меня при запуске скрипта, по умолчанию — тройная. :-\
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Снова трудности локализации? Поставьте тут
Код:
if (myStrokeStyles[myCounter].name == "Solid") {
            mySolidId = myCounter;
        }
вместо "Solid" нужное имя и (возможно) наступит счастье
 
  • Спасибо
Реакции: Dziglo

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ну когда я запускаю скрипт в первый раз, то он делают таблицу с точно такой же шириной что и ширина колонки, в которой находится абзац. Как-то же значит узнает? ))
Логика работы скрипта следующая: он просматривает текущее выделение на наличие параграфов. Если параграф не таблица то создает таблицу, если таблица (была создана только что) то расширяет ее на заданную ширину. По этой логике увеличиваться будет любая таблица попавшая в выделение, а выход - не выделять никаких таблиц. ;)
 

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Логика работы скрипта следующая: он просматривает текущее выделение на наличие параграфов. Если параграф не таблица то создает таблицу, если таблица (была создана только что) то расширяет ее на заданную ширину. По этой логике увеличиваться будет любая таблица попавшая в выделение, а выход - не выделять никаких таблиц. ;)
Не совсем понял. ) то есть это «родовая травма» скрипта и исправить ее нельзя?)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
то есть это «родовая травма» скрипта и исправить ее нельзя?)
Это не родовая травма - это алгоритм работы скрипта.
Повторяю- для того, чтобы он этого не делал, нужно отделить мухи от котлет, то есть не выделять таблиц перед запуском скрипта. Иначе он не понимает, какая таблица уже существовала перед его запуском, а какая создалась непосредственно во время его отработки. В принципе, можно, конечно, извернуться, скажем, после создания таблицы присваивать ей некое имя, которое по отработке менять на другое, но это подразумевает некоторые дополнительные телодвижения.
 

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Это не родовая травма - это алгоритм работы скрипта.
Повторяю- для того, чтобы он этого не делал, нужно отделить мухи от котлет, то есть не выделять таблиц перед запуском скрипта. Иначе он не понимает, какая таблица уже существовала перед его запуском, а какая создалась непосредственно во время его отработки. В принципе, можно, конечно, извернуться, скажем, после создания таблицы присваивать ей некое имя, которое по отработке менять на другое, но это подразумевает некоторые дополнительные телодвижения.
А что значит выделять/не выделять таблиц перед запуском? Чтобы скрипт сработал нужно выделить текстовый блок, я его и выделяю.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
я его и выделяю.
Я ж говорю, скрипт работает с выделенными параграфами. Если сгенерированная перед этим таблица как то им модифицируется, значит она попадает в это выделение. Как то так
 
  • Спасибо
Реакции: Dziglo

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Вообще говоря, и вправду, какая то мозговзрывающая логика у этого скрипта. Зачем такой хитрый и багоопасный огород городить, когда можно сразу по создании ширину таблицы устанавливать?
К примеру, действительно, комментируем строки 129-131:
Код:
//with (myTable) {
//                    width += topBorderStrokeWeight;   
//                }
Зато, после строки 177 вставляем
Код:
        width += topBorderStrokeWeight;
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Вообще говоря, и вправду, какая то мозговзрывающая логика у этого скрипта. Зачем такой хитрый и багоопасный огород городить, когда можно сразу по создании ширину таблицы устанавливать?
Это ты для CS2 никогда десять лет назад скриптов не писал!