Показать сообщение отдельно
Старый 03.06.2002, 01:56
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
все гениальное просто, обратное неверно )

– ищешь индексОфом свою строку. (получаешь первый ее индекс)
– берешь сабстринг от нуля до этого индекса
– берешь ластИндексОф(chr(13)) от полученного сабстринга
– берешь сабстр от полученого в предыдущем пункте индекса
– с помощью авторесайзового поля без вордврапа определяешь ширину полученного поля.
– теперь находишь остаток от деления на ширину исходного поля
––– это и будет твое смещение !..

если кодом, то:

strt = MainString.indexOf("=)", current_index);
victim = MainString.substring(0, strt);
victim = victim.substr(victim.lastIndexOf(chr(13))+1);
// делаем тестовое поле
this.createTextField("tst", 1, 0, -100, 0, 0);
tst.autoSize=true, tst.type="dynamic", tst.variable="test";
noMargins = new TextFormat();
noMargins.leftMargin=0, noMargins.rightMargin=0;
tst.setTextFormat(noMargins);
// поле готово
test = victim;
OFFSET = tst.textWidth - int(tst.textWidth/MainTextfield._width)*MainTextfield._width;

что-то громоздко как-то... но должно работать


Последний раз редактировалось Nox Noctis; 03.06.2002 в 02:01.