суббота, 13 февраля 2010 г.

InlineCode

Эта статья отличается от остальных. Необычного в ней то, что в ней я расскажу, как вставлять код в HiAsm. А необычное это потому, что HiAsm - это программирование без кода, и во всех предыдущих статьях ни о каком коде речи не было (за исключением SQL, ну да это не очень сложно и не всем нужно). Однако сегодня я сделаю вводную статью по вставке кода в HiAsm.

Зачем это нужно? А нужно это затем, что далеко не все компоненты являются полностью безошибочными и удобными. Кроме того, компонентов для многих функций просто нет. И здесь без кода никак не обойтись. Кто читает мой блог сначала, тот уже давно не новичок. И наверняка сталкивался с несовершенством некоторых компонентов, исправить которое не позволяла безграмотность.

Но для начала небольшой ликбез относительно самого использования кода в HiAsm. Я уже в какой-то статье рассказывал об этом, но теперь не помню. Итак, главным языком, используемым HiAsm, является Pascal. С появлением новых пакетов появились и другие языки, но в пакете Windows используется по-прежнему Pascal. А потому знание синтаксиса Pascal - необходимое условие для самостоятельной работы с кодом. Впрочем, синтаксис этот не слишком сложный, и большинство вещей я расскажу.

Здесь следует понять отличие HiAsm от Delphi (кроме приёмов программирования, разумеется). Delphi использует VCL - Vusual Components Library - библиотека визуальных компонентов. VCL содержит огромное количество готовых к использованию компонентов, из которых и строятся программы Delphi.

В HiAsm используется KOL - Key Objects Library - библиотека ключевых объектов. Её создатель - Владимир Кладов. Конечно, он писал библиотеку не специально для HiAsm, а для использования в той же Delphi - для уменьшения размеров программ. Но библиотека эта бесплатна и отлично подходит для HiAsm. Потому и стала там использоваться. Что касается размеров программ, то в Delphi только одна скомпилированная форма, без других компонентов, весит около 400 Кб!

С KOL нам ещё не раз придётся столкнуться, а пока вернёмся к коду. Код в HiAsm используется как в компонентах (напомню, что файлы компонентов пакета Windows находятся в папке \Elements\Delphi: conf - файлы конфигурации, отвечающие за отображение компонента в среде, code - файлы кода, из которых HiAsm вместе с компилятором и собирает программу), так и внутри схем - в виде того самого InlineCode, про который эта статья. И там и там используется код Pascal. Но компоненты обычно делаются тогда, когда они необходимы для частого использования. Если же код делается по конкретную ситуацию, то лучше всего использовать именно InlineCode.


Сам компонент находится на вкладке «Инструменты», в группе «Языки». Это довольно необычный компонент, потому что он похож на мультиэлемент (у него есть 4 параметра, задающие названия точек), но нет никакого редактора мультиэлемента и внутренних компонентов. А весь код пишется в параметре Code. При открытии этого параметра появляется новая вкладка рядом со вкладками проектов, а внутри - КОД…

Пока что внутри находятся одни ключевые слова, которые никаких действий не выполняют. Разберёмся в них.

unit - ключевое слово языка Object Pascal, объявляющее начало нового модуля. Модуль у нас находится в InlineCode и называется HiAsmUnit.

interface - ключевое слово языка Object Pascal, объявляющее начало интерфейсной (управляющей взаимодействием) части модуля.

uses - ключевое слово языка Object Pascal, объявляющее используемые внешние модули (исходники). kol,Share,Debug - собственно имена этих модулей, разделяемых запятой, и оканчивающихся на знак «;».
KOL - это и есть та самая библиотека, функции из которой и используются практически во всех компонентах.
Share и Debug - библиотеки, созданные специально для HiAsm его автором. Они содержат основные, часто используемые функции.

type - ключевое слово языка Object Pascal, объявляющее раздел объявления типов классов.
THiAsmClass = class(TDebug) - означает, что THiAsmClass - это новый класс, а его родителем является TDebug. Это значит, что ThiAsmClass наследует все функции от TDebug.

private - ключевое слово языка Object Pascal, объявляющее раздел переменных и процедур, которые могут использоваться только внутри этого модуля.

public - ключевое слово языка Object Pascal, объявляющее раздел переменных и процедур, которые могут использоваться внутри и вовне этого модуля. Применительно к InlineCode это означает, что здесь будут описаны точки компонента InlineCode.

implementation - ключевое слово языка Object Pascal, означающее начало отдела реализации объявленных процедур и функций. Если в private и public мы только объявляли процедуры и функции (т.е. просто писали их названия), то в implementation мы уже пишем код для этих процедур и функций, который будет выполняться при их вызове.

end. - с точкой - означает конец модуля.

Здесь много непонятных с первого раза вещей. Но не стоит волноваться. Реально нам потребуются только несколько из этих вещей, про которые я подробно всё расскажу. А расписал я всё здесь для того, чтобы вы имели представление о строении модуля.

Составление первого кода в InlineCode займёмся в следующий раз, а пока расскажу ещё несколько полезных вещей.

Чтобы открыть код компонента, нужно выделить компонент и нажать Ctrl+F. Эту команду можно вывести и в контекстное меню компонента - из «Сервис» - «Редактор команд». Ctrl+G открывает конфигурацию компонента. У некоторых компонентов нет файла кода, в том числе и у InlineCode, потому InlineCode сам содержит код.

Для интересующихся кодом полезно будет почитать книгу о KOL.




Проводная лазерная мышь Sniper M7630 * DEFENDER - рассказ пользователя про использование мыши.

2 комментария:

  1. А может есть где-нибудь видео курсы по Pascal с использованием KOL?

    ОтветитьУдалить
  2. Вряд ли. Только текстовое описание установки KOL на Delphi: http://kolmck.net/rindex.htm

    ОтветитьУдалить