понедельник, 21 сентября 2009 г.

Экскурсия по точкам

Практически у каждого компонента в hiasm есть точки. С помощью них компоненты связываются друг с другом. Больше всего точек, конечно, у визуальных элементов.
Чем больше точек вы знаете, тем гибче сможете составить программу.

Обратимся к компоненту "Форма". Этот компонент всегда появляется при входе в новый проект hiasm. У него видны всего 7 точек: 4 метода и 3 события. Но такой сложный компонент должен иметь гораздо больше точек! И они у него есть, только спрятаны, чтобы компонент не занимал много места. Чтобы показать спрятанные точки, можно:

  • На панели парметров перейти во вкладку "Точки" (при выделенном компоненте) и там выбрать нужные точки
  • На панели параметров (на вкладке "Свойства") нажать белый квадратик у какого-либо параметра (не из всех параметров можно сделать методы)


Вы видите, соклько много точек может быть у формы.

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

У невизуальных компонентов общих точек практически нет. У многих невизуальных компонентов количество точек вообще доведено до минимума, чтобы программисту на hiasm не приходилось гадать, для чего нужен тот или иной элемент и как импользоваться.
Например, в компоненте ZLIB (вкладка "Файлы") всего два метода и одно событие, ну и точка данных наверху.



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

По сравнению с предыдущими версиями в версии HiAsm 4.02 build 179 у многих компонентов стало больше точек. Поэтому, если вы пользовались предыдущими версиями, то вам стоит ещё раз взглянуть на компоненты.

У некоторых компонентов точки вообще динамические, то есть их количество можете задвать вы. Это, например, IndexToChanel со вкладки "Инструменты". Его события играют роль каналов, и какой канал будет вызван - зависит от входных данных. По сути, компонент ничего "рабочего" не делает и является просто удобным средством для упрощения конструирования программ.
А вот FormatStr со вкладки "Строки" тоже имеет динамические верхние точки, но от них уже зависит число возможных аргументов при составлении строки.

Чтобы вы лучше ориентировались в HiAsm, вам нужно почаще пользоваться разными точками, не забывая про скрытые. Только тогда ваша программа станет более гибкой (к примеру, не зная о событиях по нажатии мыши, нельзя назначить какое-то действие на это событие).

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

  1. В точках формы наиболее интересно задание цвета. Если добавить точку, реагирующую на движения мыши, и связать ее с генератором случайных чисел, а того - с цветом фона, то получится цветопредставление:
    Add(MainForm,2953706,55,56)
    {
    Width=610
    Height=497
    Caption="Цветопредставление"
    BorderStyle=1
    Point(onMouseMove)
    Point(doColor)
    link(onMouseMove,10403690:doRandom,[])
    }
    Add(Random,10403690,147,77)
    {
    link(onRandom,2953706:doColor,[(191,83)(191,87)(43,87)(43,90)])
    }
    Но цвета получаются все темных тонов. Как можно расширить и осветлить их палитру?

    ОтветитьУдалить
  2. В параметре Max у генератора выставить 16777215. Это - максимальное число 24-битной цветовой палитры.

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