Подскажите переменную

  • Автор темы Автор темы srQwer
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

srQwer

Топикстартер
10 лет на форуме
Сообщения
37
Реакции
0
Подскажите пожалуста переменную отвечающую за варианты (at least /exactly) вертикального выравнивание в таблице. И переменую отвечающую за предупреждение, когда текст не в ходит в заданный фрейм.

буду ну очень признателен
 
Ответ: Подскажите переменную

srQwer сказал(а):
Подскажите пожалуста переменную отвечающую за варианты (at least /exactly) вертикального выравнивание в таблице. И переменую отвечающую за предупреждение, когда текст не в ходит в заданный фрейм.

буду ну очень признателен
myTabl.rows.item (0).autoGrow=false; - exactly
myTabl.rows.item (0).autoGrow=true; - least
 
Ответ: Подскажите переменную

toa1 сказал(а):
myTabl.rows.item (0).autoGrow=false; - exactly
myTabl.rows.item (0).autoGrow=true; - least

Огромное спасибо!!!

Осталось понять как определить, когда текст не влазит в заданные размеры рамки....
 
Ответ: Подскажите переменную

Ну и про переменную, отвечающую за предупреждение, когда текст не входит в заданный фрейм - myTextFrame.overflows (true/false)
 
Ответ: Подскажите переменную

nis30 сказал(а):
Ну и про переменную, отвечающую за предупреждение, когда текст не входит в заданный фрейм - myTextFrame.overflows (true/false)

И вам огромное спасибо!
Вот только что то не получается реализовать свою задумку.
Возможно ли с помощю флага "myTextFrame.overflows" создать цикл уменьшающий содержимое ячейки предположим на 0.5 pt, пока текст не "влезет" в заданый формат?
 
Ответ: Подскажите переменную

while (myTextFrame.overflows){
//.
}
 
Ответ: Подскажите переменную

И всётаки слабовато у меня с js =(
Пытаюсь допистаь оригинальный скрипт (megaBorder. AUTHOR: Oleg Butrin)
дописывая данный фрагмент после операции по вставке текста в фарматированную таблицу.

PHP:
 var over = myCell.overflows
var myCounte = 0 
var mySize = 10  // устанавливаем предположительный размер шрифта (незнаю как взять из нужного фрагмента)
var myText = myParagraph.characters.itemByRange(1, (myParagraph.characters.length - 2));
while (over = true) {
if (myCounte <= 4) {  // ограничение по размеру
		myText.pointSize = mySize-1;
		myText.leading = -1;
		myCounte = myCounte + 1}
		
						else break;}}
Что же не так? помогите!
Мне кажется, что я не определил обект с которым провожу действия.
 
Ответ: Подскажите переменную

в строке "while (over = true) {" over присваивается true.
в JS для сравнения надо использовать == иногда ===, для ясности лучше посмотреть описание Core JavaScript Reference.

а leading может быть равным 1635019116 (auto).
 
Ответ: Подскажите переменную

Вроде разобрался с описанием. Вот общий кусок
PHP:
var myCell = myTable.cells[0];
	with (myCell) {
		topInset = Number(this.inset[0]);
		bottomInset = Number(this.inset[1]);
		leftInset = Number(this.inset[2]);
		rightInset = Number(this.inset[3]);
		fillColor = myObject.colors.item(this.color);
		fillTint = Number(this.tint);
		rows.item (0).autoGrow=false
		height = 30
		width = 41.814
		verticalJustification = this.verticalJustification;
	}
//Определяем текст параграфа
	var myText = myParagraph.characters.itemByRange(1, (myParagraph.characters.length - 2));
//Юниты - в исходное
	myObject.viewPreferences.verticalMeasurementUnits = myVM;
	myObject.viewPreferences.horizontalMeasurementUnits = myHM;	
//Расстояния до и после(не определяем при помещении таблицы потому, что юниты)
	myTable.spaceBefore = mySpaceBefore;
	myTable.spaceAfter = mySpaceAfter;
//Выделяем текст
	myText.select(1919250519);
//Вырезаем текст
	app.cut();
//Выделяем ячейку
	myCell.insertionPoints[0].select(1919250519);
//Вставляем текст
	app.paste();

var myCounte = 0 
var over = myCell.overflows
var myText = myCell.paragraphs[0]
var mySize = myText.pointSize
	alert (myCell.contents);
	alert (mySize);
    alert  (myCell.overflows);
while (over === true){
		myText.pointSize = 6;
		myText.leading = 1635019116;
		myCounte++;
		alert (stop);}
		}

Теперь немогу понять почему не срабатывает цикл
PHP:
while (over == true){
		myText.pointSize = 6;
		myText.leading = 1635019116;
		myCounte++;
		alert (stop);}
		}
 
Ответ: Подскажите переменную

А так?
PHP:
while (myCell.overflows){ 
        myText.pointSize = 6; 
        myText.leading = 1635019116; 
        myCounte++; 
        alert (stop);}
 
Ответ: Подскажите переменную

а так....

PHP:
while (myCell.overflows){ 
        myText.pointSize = mySize - 1; 
        myText.leading = 1635019116; 
        myCounte++;
        alert ("stop");

он входит в петлю и не выходит
 
Ответ: Подскажите переменную

а так?

PHP:
while (myCell.overflows){ 
        myText.pointSize = myText.pointSize - 1; 
        myText.leading = 1635019116; 
        myCounte++;
        alert ("stop");
 
Ответ: Подскажите переменную

dik973 сказал(а):
а так?

PHP:
while (myCell.overflows){ 
        myText.pointSize = myText.pointSize - 1; 
        myText.leading = 1635019116; 
        myCounte++;
        alert ("stop");
так работает но не обращает внимание на значение myCell.overflows
=( уменьшает значение текста до 1пт, и виснит.
 
Ответ: Подскажите переменную

srQwer сказал(а):
так работает но не обращает внимание на значение myCell.overflows
=( уменьшает значение текста до 1пт, и виснит.
Может myText заменить на myCell.paragraphs[0]... Но это уже чистая догадка...
 
Ответ: Подскажите переменную

dik973 сказал(а):
Может myText заменить на myCell.paragraphs[0]... Но это уже чистая догадка...

Неа реагирует также...
 
Ответ: Подскажите переменную

Складывается впечатление, чтобы переменная myCell.overflows обновилась нужно чтоб экран перерисовался, после каждой опперации над шрифтом. Или это из-за того, что это таблица вставленная в текст а не фрейм... Хотя... Я совсем запутался...
 
Ответ: Подскажите переменную

Код:
while (MyCell.overflows){
	MyCell.texts[0].pointSize=MyCell.texts[0].pointSize-1;
	MyCell.recompose();
}
 
Ответ: Подскажите переменную

Steve сказал(а):
Код:
while (MyCell.overflows){
	MyCell.texts[0].pointSize=MyCell.texts[0].pointSize-1;
	MyCell.recompose();
}
Спасибо

Но всё равно очень странно... работает только если перед циклом поставить. alert (MyCell.overflows), причём его значение всегда (false).
Что-то не очень хочется тыкать клавишу ок каждый раз... рамок то до 500 штук
 
Ответ: Подскажите переменную

srQwer сказал(а):
работает только если перед циклом поставить. alert (MyCell.overflows), причём его значение всегда (false).
Что-то не очень хочется тыкать клавишу ок каждый раз... рамок то до 500 штук
Скорее всего ошибка в коде. Что конкретно надо сделать/найти?

кстати, в VB(S) не надо делать recompose, в этом свои плюсы и свои минусы.
 
Ответ: Подскажите переменную

Steve сказал(а):
Скорее всего ошибка в коде. Что конкретно надо сделать/найти?

кстати, в VB(S) не надо делать recompose, в этом свои плюсы и свои минусы.

Это дополнение к оригинальному скрипту MegaBorder. После того, как параграф определёного стиля преобразуется в "рамочку" я пытаюсь проверить влазит ли текст в рамочке в заданный размер.
Всё это происходит непосредственно после вставки текста в ячейку.
 
Статус
Закрыто для дальнейших ответов.