#hws
if (isset(my_test_var))
// Если компонент существует
.....
else
// Компонента не существует
gvar(my_test_var)
//my_test_var = 1 // возможно, нужно присвоить значение переменной
......
end
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
|
|||
|
|||
карма: 26 |
| ||
Голосовали: | LastLeader |
Ответов: 463
Рейтинг: 9
|
|||
приветствую !
тема еще актуальна? Подскажите советом, хочу прикрутить TCL/TK, компонентов уйму можно слямзить в VTCL, компилитор будет edit? А примеры откуда лучше брать из пакета WEB или Питона(поскольку он тоже скриптовый)? |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Не знаком с TCL. Пробуй как в туториале создать заготовку пакета, а дальше будешь видеть, что нужно сделать ещё. Что такое "компилитор edit" не знаю. Но компилятор Copy тебе будет нужен, чтобы видеть, какой код у тебя получается на выходе.
Можешь глянуть также на пакет AVISynth как менее объемный, чем WEB и Питон. Структуру своего пакета тебе придется придумывать самому, а в другие пакеты заглядывать в поисках какого-либо решения. Редактировалось 1 раз(а), последний 2018-01-22 12:30:59 |
|||
карма: 26 |
| ||
Голосовали: | ajaxii |
Ответов: 463
Рейтинг: 9
|
|||
Netspirit, спасибо!
TCL/Tk - https://ru.wikipedia.org/wiki/Tcl copy конечно, просто вечно эти слова путаю. спасибо за направление Это мультиплатформенное решение, на мой взгляд, ибо тикль даже в ОС андроиде уже есть. |
|||
карма: 0 |
|
Ответов: 258
Рейтинг: -27
|
|||
Netspirit спс
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
|
|||
карма: 26 |
| ||
Голосовали: | Hart |
Ответов: 178
Рейтинг: 9
|
|||
Походу не просто так игнорят просьбы, хотя все ссылки по интересующему вопросу я выложил.
------------ Дoбавленo в 12.40: Хотя файл с коментами выложили. |
|||
карма: 0 |
|
Ответов: 258
Рейтинг: -27
|
|||
Netspirit спс, теперь думаю практически все понял. Но как-то получаются локальные переменные с одинаковыми именами.
Что, не могли сразу так туториал оформить? С первого раза ясно все. Последний вопрос. Как генерировать имя переменной так, что бы не было такой же? Думаю можно создать int переменную и постоянно увеличивать что бы не было повторяющихся названий ? Или может есть какая-нибудь функция-генератор имен? |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
println(myvar, ' = 125;') Выведет в код
myvarX = 125; где X - это идентификатор текущего компонента. В туториале есть про это.
А почему в туториал не добавил - потому, что у каждого целевого языка свои особенности. И давать конкретный выше приведенный код смысла не имеет (точнее, имел бы, но только для тебя, но не для остальных). Всем не угодишь. |
|||
карма: 26 |
|
Ответов: 258
Рейтинг: -27
|
|||
Не, я имел ввиду что имя локальной переменной одинаковое будет если подряд вызвать 2 компонента который выводит новую локалку и вызывает функцию.
Так может есть функция генерирующая постоянно новое имя? Можно для этого reggen использовать? Или лучше глобальную переменную типа INT а потом name+ID выводить если нужно. |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Локальная переменная (fvar) потому и называется локальная, что видна только внутри данной функции данного экземпляра компонента. Не нужны там уникальные имена.
Переменные, объявленные по var, видны во всех функциях данного экземпляра компонента. gvar видны всюду. |
|||
карма: 26 |
|
Ответов: 258
Рейтинг: -27
|
|||
Я имею ввиду вывод в скрипт локальной переменной по правилам языка, а не локальные переменные FCTG.
Я по этому до этого и не мог никак разобраться в FTCG т.к не понимал как блоки делать временные для каждой функции. Теперь все ясно. Например компонент создает локальную переменную "local string name = "Hiasm"" Если вызывать еще один такой компонент то будет уже 2 локальных переменных на выходе с таким же именем "name" а мне нужно что бы было: local string name1 = "Скрипт сгенерирован с помощью " local string name2 = " с " local string name3 = " помощью " local string name4 = " HiAsm! " |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Ну, а о чем я выше сказал???
println('local string ', name, ' = ', "Скрипт сгенерирован с помощью ") Ты б хоть пробовал, что пишут. Это также говорит о том, что недостаточный туториал - не главная твоя проблема. |
|||
карма: 26 |
|
Ответов: 258
Рейтинг: -27
|
|||
ну вот это выведет в текст
local string name = "Скрипт сгенерирован с помощью " А если такой компонент 2 раза подряд вызвать получится две строки local string name = "Скрипт сгенерирован с помощью " local string name = "Скрипт сгенерирован с помощью " (Имя name с таким же названием) Я понял, можно через глобальную переменную INT добавлять к названию ID. Но может есть готовая функция кодогенератора которая выведет имя которое точно не будет повторяться несколько раз? reggen для такого не подходит? Ну ладно это не проблема, спасибо за помощь. Вопросов больше нет. |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Объяви переменную
var(cntr)
cntr = 1 И при каждом вызове делай: println('local string name', cntr, ' = ', "Скрипт сгенерирован с помощью ")
cntr = cntr + 1 |
|||
карма: 26 |
|