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) Вопросы задавай, в общем...
Ответов: 9906
Рейтинг: 351
|
|||
карма: 9 |
|