воскресенье, 29 ноября 2009 г.

Компоненты Type

Проходя по форуму HiAsm, увидел новые, интересные компоненты. Я их скачал и опробовал в действии. Здесь я расскажу об этих компонентах и работе с ними.

Скачать их можно по этой ссылке. Эти компоненты напоминают MultiThread, но разница в том, что каждый элемент такого многомерного потока можно именовать. Автор представлят это как создание нового типа переменной, в которую могут входить переменные разных типов (например, текст, картинка, число). И такая переменная тожет передаваться в потоке.

Если вас это заинтересовало, то устанавливайте компоненты в HiAsm. В архиве есть файл install.his, его надо запустить, и у вас в HiAsm появится новая вкладка "Type", содержащая все эти компоненты.

Попробуем поработать с ними. Сначала новый тип нужно создать, для этого есть компонент Type_Create. У него есть единственный метод для создания нового типа. Однако через этот компонент в него можно сразу добавить переменные - с помощью параметра Vars. У компонента сверху появятся точки, куда нужно передать значения переменным (а имена точек - это имена соответствующих переменных).



Здесь создание нового типа происходит сразу после открытия программы. При этом тип будет содержать три переменных: pict, txt, int. При этом отметьте, что новый тип называется MyType - в соответствии с параметром Name.



Компонент Type_Add добавляет новую переменную в созданный нами тип. Но для этого ему нужно передать указатель на тип, и поэтому верхняя точка GType должна присутствовать. Правда, указатель можно передать и в потоке (он выдаётся на событие onCreate компонента Type_Create), но тут мы добавляем новую переменную по нажатии кнопки, и в поток указатель не попадает. Так что используем верхнюю точку.

В параметре Vars задаются имена добавляемых переменных. Там есть и GType, но - ВНИМАНИЕ! - это не переменная, а точка для получения указателя на созданный тип. И поэтому переменной с таким именем быть не может (ну, если только её добавить на этапе создания - там получение указателя не требуется).

Компонент Type_Set изменяет значение выбранной переменной (или переменных). У него также есть точка данных GType для передачи указателя на тип. Имена верхних точек - это имена ранее созданных переменных, на которые нужно передать новые желаемые значения.


Компонент Type_MultiMem. Он извлекает значения из указанных переменных.



Как видите, точки с именами переменных у него находятся внизу, и поэтому в них точка данных GType не прописывается. Она находится на вкладке "Точки". В примере я получаю текст из переменной txt, созданной на этапе создания нового типа.

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

Ну и, наконец, Type_Array. Компонент позволяет работать с переменными типа как с массивом. Каждый элемент массива - одна переменная. Её значение можно считать, можно записать новое.



Вот здесь я извлекаю переменную под индексом 2, то есть с нименем int.

Теперь о том, зачем нужны эти компоненты. Пока что это пробная версия и никаких особых функций не имеет. Пригодятся компоненты в случае, если в программе есть несколько переменных (например, счётчиков или чего-то ещё), которые нужно передавать из одной части программы в другую. От каждой переменной (если вы храните её в том же Memory) трудно протягивать связи в другой конец схемы, а здесь нужно лишь передать указатель, то есть всего одна связь.

Те же цели выполняет и MultiThread, но там элементам нельзя дать имена.






Для соединения изделий применяется шпилька резьбовая. Длина шпильки до 3 метров, а диаметр - 30-70 мм.

Вы можете купить ноутбук в Екатеринбурге. Зайдите на сайт - там можно выбрать ноутбук по модели, по цене или названию, а также выбрать производителя и посмотреть комплектующие.

Пора посетить тропический остров Хайнань Китай. Страница хороша тем, что можно сразу увидеть погоду в Хайнань, посмотреть карту Китая и узнать подробности об этом острове.

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

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

    ОтветитьУдалить
  2. Да лучшего учебника не найти. Я собираю все уроки особенно видеоуроки хороши , лучше доходят.Хотя авторы HIAsm и пишут что можно програмировать без знаний програмирования но они
    очень ошибаются

    ОтветитьУдалить
  3. Программировать в HiAsm можно без знания языков программирования, но логика всё равно нужна.

    ОтветитьУдалить
  4. Данные компоненты Type были очень сильно улучшены (и даже добавлены новые) и уже добавлены в пакет и доступны по SVN (читайте на форуме HiAsm что это), если же нет желания скачивать их оттуда, то ждите новой сборки, появится она уже достаточно скоро
    P.S: комментарий (этот) оставил автор компонентов Type

    ОтветитьУдалить
  5. По старой ссылке скачать компоненты уже нельзя. Но они входят в HiAsm начиная с HiAsm 4.04 build 184.

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