Доброго времени суток, господа. Хочу представить мини-туториал для новичков по по новому языку генерации кода - RTCG. Туториал, писался по мере моего изучения RTCG, и потому что выучю, то сразу напишу об этом в статье . Пока что есть только три статейки, но думаю это будет хорошо новичкам, которые желают создать свой пакет на новом языке кодогенерации (кстати, я тоже отношусь к им ). Вот, собственно, эти статьи:
Введение Основное Блоки и вывод данных в скрипт
Желаю удачи в изучении
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
|
|||
карма: 5 |
| ||
Голосовали: | CriDos |
Ответов: 1841
Рейтинг: 369
|
|||
sаmakacd, как я понял, всё что у Вас описано, было проверено на практике а не взято из FTCG?
т.к. я тоже недавно выделял время для изучения и обнаружил что кое какие сложные конструкции из FTCG можно теперь заменить на более простые в RTCG. Так же я у Вас не увидел описание обязательного блока Result, и новых фишках RTCG типа:
|
|||
карма: 1 |
| ||
Голосовали: | sаmakacd |
Ответов: 1821
Рейтинг: 168
|
|||
CriDos, с памяти вылетело... Завтра допишу.
|
|||
карма: 5 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Блоки писал(а): Чуть не забыл сказать об ф-ции create модуля Sys Реегистрация блоков проходит в модуле Sys. А для инициализации всех блоков, используем ф-цию create.Тут Вы чего-то намудрили) В модуле hiSys.hws не обязательно регистрировать блоки, но желательно, т.к. это удобно. Блоки писал(а): А для инициализации всех блоков, используем ф-цию create.Нет необходимости самому вызывать эти функции (func create(entry) и func destroy(entry)) кодогенератор сам их вызовет. Dilma писал(а): // вызывается один раз при загрузки модуля
func create(entry) // настройка кодогенератора // создание блоков // регистрация типов и т.д. end // вызывается один раз при выгрузки модуля func destroy(entry) // уничтожение блоков end ------------ Дoбавленo в 04.43: Одно только я так и не понял. Как выполнять арифметические операции с полученными свойствами. println(this.props("Left") + this.props("Top") + 5) - не прокатывает ------------ Дoбавленo в 04.59: Так-же вот такой вариант ничего не выводит: println(this.props("Top") + 'teststr') Хотя если поменять местами this.props("Top") и 'teststr' в результате будет: teststr0 ------------ Дoбавленo в 05.25: CriDos писал(а): Как выполнять арифметические операции с полученными свойствами.похоже только так...
|
|||
карма: 1 |
| ||
Голосовали: | sаmakacd |
Ответов: 1821
Рейтинг: 168
|
|||
CriDos,
CriDos писал(а): println(this.props("Left") + this.props("Top") + 5) |
|||
карма: 5 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
конструкция
|
|||
карма: 27 |
| ||
Голосовали: | CriDos, sаmakacd |
Ответов: 1841
Рейтинг: 369
|
|||
Dilma, а такая конструкция почему выдаёт ничто? (Left=0)
|
|||
карма: 1 |
|
Ответов: 1821
Рейтинг: 168
|
|||
CriDos, просто в первом коде нету .value, а в другом - есть. Думаю здесь двойной апостроф нипричём...
|
|||
карма: 5 |
|
Ответов: 1841
Рейтинг: 369
|
|||
sаmakacd писал(а): просто в первом коде нету .valueУбрал. Скопипастил нечаянно. sаmakacd писал(а): Думаю здесь двойной апостроф нипричём...всё предварительно проверяется и тестируется) |
|||
карма: 1 |
|
Ответов: 1821
Рейтинг: 168
|
|||
CriDos, Просто в первом коде, справа this.props("Left") допечатай .value и думаю заработает
|
|||
карма: 5 |
|
Ответов: 1841
Рейтинг: 369
|
|||
так же, если поменять местами «this.props("Left")» с «'teststr'» то результатом всё же будет текст: teststr0
пример:
|
|||
карма: 1 |
|
Ответов: 3349
Рейтинг: 233
|
|||
sаmakacd, Возможно тип второго аргумента оператора + приводиться к типу первого, т.е. в этой конструкции ' + this.props("Left"),
this.props("Left") приводиться к типу строка, так как строка складывается с обьектом |
|||
карма: 1 |
|
Ответов: 1841
Рейтинг: 369
|
|||
sаmakacd писал(а): думаю заработаетне заработает. результатом будет цифра 0 не текст: 0teststr. |
|||
карма: 1 |
|
Ответов: 1821
Рейтинг: 168
|
|||
deleted
|
|||
карма: 5 |
|
Ответов: 1841
Рейтинг: 369
|
|||
думаю Ivann прав.
|
|||
карма: 1 |
|