суббота, 12 сентября 2009 г.

Первые шаги в HiAsm



Как же начать работать в HiAsm? Это очень просто.
Любая программа в HiAsm строится из компонентов, как в конструкторе. Компоненты - это базовые единицы программы, каждый из которых выполняет какой-то специфический круг функций.
Компоненты бывают визуальные (отображаются в программе) и невизуальные (не отображаются).

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

Рассмотрим пример.



Целых три компонента, связанных между собой. Чтобы посмотреть, как всё это будет выглядет в программе, выполните "Вид" - "Редактор формы". Здесь вы можете расставить компоненты так, как нужно.
Вернуться на рабочее поле можно той же командой.

Теперь запустите программу. Для этого выполните "Запуск" - "Запустить". Откроется программа. В поле ввода наберите любой текст и нажмите кнопку. Появится сообщение с набранным текстом.

А теперь закройте программу и взгляните на рабочее поле. В видите, что компонент "Кнопка" соединён с компонентом "Сообщение". Подведите курсор к одной из связанных точек и увидите описание.

Правая точка кнопки - это событие, которое возникает при нажатии на кнопку. У кнопки есть и другие события.
Левая точка сообщения - это метод показа сообщения. У этого компонента других методов нет.
Теперь вы понимаете, что событие вызывает метод. И так строится вся работа программы.

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

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

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

Чтобы увидеть параметры компонента, нужно его выделить и посмотреть на панель HiAsm справа. Там все параметры компонента.
У некоторых параметров слева есть белые квадратики. Если по такому щёлкнуть, то у компонента появится метод, с помощью которого можно изменить параметр из программы. Нужно только подчклюить его к событию.

Ещё точки компонента можно найти на вкладке "Точки" той же панели. Там могут быть все 4 вида точек: методы, события, данные, свойства.

Самое главное - побольше экспериментируйте, тогда HiAsm освоится гораздо быстрее.

13 комментариев:

  1. Видеоурок начинается с важной настройки - подключения полноценного компилятора и установки его по умолчанию. Это, к сожалению, не попало в текст блога.
    И пример первой программы собирается из компонентов, а не дается сразу готовым, как в тексте. Так что видеоурок стоит посмотреть. Чтобы его распаковать, нужно из расширения убрать 0.

    ОтветитьУдалить
  2. Полученных умений хватило, чтобы сочинить мантру для зарядки души.
    Все бы хорошо, но выйти из цикла обычными средствами не получается. Приходится закрывать программу через контекстное меню кнопки на панели быстрого доступа.
    Как сделать, чтобы не впадать в штопор с этой мантрой? Вот текст программы:

    Add(BitBtn,12382016,84,175)
    {
    Left=80
    Top=175
    link(onClick,5268120:doWork2,[])
    }
    Add(Message,8456892,147,175)
    {
    Caption="А ты человек, ты сильный и смелый"
    link(onMessage,4716745:doMessage,[])
    }
    Add(Message,4716745,217,175)
    {
    Caption="Своими рукам судьбу свою сделай"
    link(onMessage,15991853:doMessage,[])
    }
    Add(Message,15991853,287,175)
    {
    Caption="Иди против ветра, на месте не стой"
    link(onMessage,5895846:doMessage,[])
    }
    Add(Message,5895846,364,175)
    {
    Caption="Пойми, не бывает дороги простой"
    link(onMessage,5268120:doWork3,[(408,181)(408,186)])
    }
    Add(HubEx,5268120,126,168)
    {
    link(onEvent,8456892:doMessage,[])
    }
    Add(Label,6222629,77,77)
    {
    Left=115
    Top=40
    Width=130
    Height=28
    Font=[MS Sans Serif,14,0,0,1]
    Caption="Зарядка души"
    }
    Add(Label,5269490,147,77)
    {
    Left=40
    Top=100
    Width=319
    Height=20
    Font=[MS Sans Serif,10,0,0,1]
    Caption="Повторять до насыщения, но не меньше 7-ми раз"
    }

    ОтветитьУдалить
  3. Да, еще вопрос. Когда я выделял схему программы для копирования кода в комментарий, то сначала по ошибке буксировал курсор мыши с нажатой правой кнопкой (а не левой, как правильно).
    И на экране вдруг появился какой-то кружок настроек. Что это за чудо?

    ОтветитьУдалить
  4. Тем и хороши видеоуроки, что в них можно показать, как надо делать, а в тексте возможностей не много.

    Один из вариантов решения. События YES находятся на вкладке "Точки".

    Если нажать правой кнопкой на рабочем поле и не двигать мышь, то появляется такое вот меню.

    ОтветитьУдалить
  5. Ваш вариант решения замечательно выводит мою программу-мантру из штопора. Но ложка дегтя в этом решении - слово "нет" на кнопке остановки цикла. Вот бы заменить его хотя бы на "Да-Да". Иначе рубится на корню весь смысл программы...

    ОтветитьУдалить
  6. А если бы добавить еще счетчик циклов, то можно было бы выпускать эту программу в свободное плавание в Интернет...

    ОтветитьУдалить
  7. По поводу круглой менюшки, выскакивающей по щелчку правой кнопкой мыши на рабочем поле HiAsm. Вот результаты изучения:
    если быстро щелкнуть и отпустить кнопку, то появляется обычное контекстное меню (Вставить / Статистика / Выравнивание / Выделить все / Отмена / Вставить шаблон / Комнаты);
    если же щелкнуть и держать кнопку, то появляется кружок с 4 секторами (левый = отмена последнего изменения схемы; правый = вставка из буфера; верхний в виде сетки точек = непонятно, что делает; нижний = вместо курсора мыши возникает перемещаемая горизонтальная линия с 2-мя стрелками, которая исчезает при любом щелчке мыши).
    Где можно узнать, что делают верхний и нижний сектора?

    ОтветитьУдалить
  8. Думаю, лучше установить цикл со счётчиком со вкладки "Логика". В его параметрах указывается и начало, и конец. Вот только тексты лучше было бы поместить в параметр Message, а не Caption.

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

    ОтветитьУдалить
  9. у меня пункт клонирования в списке опций с компонентами неактивен что делать помогите люди

    ОтветитьУдалить
  10. Вот видео, которое показывает, для чего нужна эта команда: http://www.hiasm.com/xf/load.php?a=9633

    ОтветитьУдалить
  11. Feed, а что это у Вас за программа-мантра? Йогой и медитацией увлекаетесь что ли? :)))

    ОтветитьУдалить
  12. Эх, feod давно сюда уже не пишет :(

    ОтветитьУдалить
  13. А жаль. Ещё только когда я пригляделся, хотел исправить feed на feod, но жаль, что тут комментарии не редактируются. Такие моменты в последнее время часто бывают, когда я что-то не замечаю. :(

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