Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2007-06-20 11:22:22 ЛС | профиль | цитата
nesco, ну ты чего такой простой-то

Давай тогда я начну абсолютно конкретно, если ты не знаешь с чего

1) Берем пример frm.sha. Запускаем - получаем код frm.pas (глупых вопросов, типа: почему не dpr - давай договоримся не задавать). Смотрим, как это получается

2) CodeGen первым делом "запускает в дело" метод doStart элемента, в имени которого есть магическое слово EntryPoint. Почему так, а не иначе, и правильно ли это - сейчас не обсуждаем. Мы сейчас занимаемся приобретением понимания происходящего.
Приобретем - будем обсуждать

3) Это означает, что CodeGen начинает исполнять то, чего записано после func doStart в файле hiEntryPoint.hws.
Внимание: исполнять в Design-Time. Это самое главное. То, чего ты до этого момента писал в кодах элементов, исполнялось в Run-Time

4) Ну и давай по порядку.
Построчно, посимвольно - чего не есть ясно. Это будут уже конкретные вопросы, на которые будут тут же конкретные ответы.
Или по-другому: на любой ваш вопрос - любой наш ответ

5) Про gvar и fvar - написано в http://hiasm.com/wiki.php?view=164

6) Системный объект block - это такой большой StrListEx, в котором накапливаются результаты кодогенерации. Типа многосекционного "блокнотика"
Главный StrListEx содержит список имен имеющихся блоков, а его поле Object - указывает на конкретные уже StrList-ы с данным именем. Это как бы внутреннее представление... Знание необязательное, но возможно полезное для понимания....

7) Метод блока reg – создает именованную секцию в нашем "блокнотике"

8) Метод блока select – делает страничку выбранной: всякие print-ы пойдут именно в эту страничку

9) println('uses windows,kol;') – Ну вот и добрались до кодов Дельфи. Узнаешь брата Колю
А iarspider сам себе другого брата пропишет. К примеру, конечно же…

10) Вопросы задавай, в общем...
карма: 9

0