Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
Swell писал(а): |
Может кто-нибудь знает.
Переменная типа string какой максимальной длины (в символах) строку может содержать? В help'е у меня этого найти не получилось... |
нет предела |
|
|
Посмотреть профиль Отправить личное сообщение |
|
inivin
Зарегистрирован: 28.02.2015
Сообщения: 12
|
А как переменной типа string присвоить разные значения в зависимости от условия? IIF не подходит. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
inivin
Зарегистрирован: 28.02.2015
Сообщения: 12
|
inivin писал(а): |
А как переменной типа string присвоить разные значения в зависимости от условия? IIF не подходит. |
Нашел сам в FAQ
IIf is for arrays, WriteIf is for strings
IIf functions should be used to handle arrays, if you need conditional text function use WriteIf instead.
EXAMPLE
Incorrect code:
variable = IIf(Condition, "Text 1","Text 2" ); // WRONG
IIf( ) function returns array, NOT STRING, so it’s impossible to assign text to variable with use of IIF. Use WriteIf( ) function instead:
Correct code:
variable = WriteIf( condition, "Text 1", "Text 2" ); // CORRECT
Please note however that WriteIf function returns just single STRING, not arrays of strings, so only the selected value is used for evaluation. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
А как-нибудь можно определить длину текста в пикселях?
Мне это надо, чтобы выводить текст в прямоугольнике (GfxRectangle(...)). Т.е. чтобы знать ширину этого прямоугольника, чтобы текст в нём поместился. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Функция GfxDrawText( ''text'', left, top, right, bottom, format = 0 )
выводит текст в заданный прямоугольник автоматически его форматируя. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Олег.
В функции GfxDrawText жёстко задаются размеры прямоугольника (left, top, right, bottom). И уже под эти размеры выравнивается текст. А мне надо наоборот, чтобы под определённую длину текста подгонялись размеры прямоугольника.
Проблема в том, что длину текста можно определить в символах (функция StrLen), а размеры прямоугольника задаются в пикселях. И как одно пересчитать в другое - непонятно. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
yser
Зарегистрирован: 30.11.2011
Сообщения: 76
|
Swell писал(а): |
Олег.
В функции GfxDrawText жёстко задаются размеры прямоугольника (left, top, right, bottom). И уже под эти размеры выравнивается текст. А мне надо наоборот, чтобы под определённую длину текста подгонялись размеры прямоугольника.
Проблема в том, что длину текста можно определить в символах (функция StrLen), а размеры прямоугольника задаются в пикселях. И как одно пересчитать в другое - непонятно. |
GfxGetTextWidth(''text'') - The function returns pixel width of specified string |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Спасибо. Это как раз то, что надо.
Только эта функция есть в более поздней версии, чем та, что у меня. Видимо поэтому я о ней не знал.
Похоже придётся переходить на другую версию. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Walker
Зарегистрирован: 03.04.2015
Сообщения: 9
|
Заметил, что функции ExRem и Flip не работают в том случае, если в качестве первого параметра при вызове этих функций указывается массив, отличный от стандартных типа Buy.
Подскажите, пожалуйста - так и должно быть или у меня что-то неправильно написано/работает? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Walker
Зарегистрирован: 03.04.2015
Сообщения: 9
|
Walker писал(а): |
Заметил, что функции ExRem и Flip не работают в том случае, если в качестве первого параметра при вызове этих функций указывается массив, отличный от стандартных типа Buy.
Подскажите, пожалуйста - так и должно быть или у меня что-то неправильно написано/работает? |
Кажется, понял, в чем ошибка. Забыл, что результат выполнения функций ExRem и Flip нужно присваивать массиву. Вызывал их просто как процедуры. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
Такой вопрос:
При наступлении нового дня вызывать функцию.
Понятно что if и Day() не дружат.
Как это можно сделать? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вопрос слишком общий. Не понятно как ответить. Давай конкретнее. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Walker
Зарегистрирован: 03.04.2015
Сообщения: 9
|
Enhema писал(а): |
Такой вопрос:
При наступлении нового дня вызывать функцию.
Понятно что if и Day() не дружат.
Как это можно сделать? |
Если я Вас правильно понял, то, например, так:
Result = IIf(Day() != Ref(Day(), -1), MyFunction(), 0); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не, такая запись смысла не имеет. Зачем в таком случае затевать функцию в коде? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Walker
Зарегистрирован: 03.04.2015
Сообщения: 9
|
000 писал(а): |
Не, такая запись смысла не имеет. Зачем в таком случае затевать функцию в коде? |
Ну, если он перебирает элементы массива в цикле, то тогда такой вариант:
DayArray = Day();
for( i = 1; i < BarCount; i++ )
{
if (DayArray[i-1] != DayArray[i])
MyFunction();
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|