Medvedoc писал(а):
Только не понял как добавлять другие эмуляторыРедактировалось 1 раз(а), последний 2017-05-08 11:00:40
Ответов: 4628
Рейтинг: 749
|
|||
Medvedoc писал(а): Только не понял как добавлять другие эмуляторыРедактировалось 1 раз(а), последний 2017-05-08 11:00:40 |
|||
карма: 26 |
|
Ответов: 254
Рейтинг: 6
|
|||
Netspirit, спасибо большое!
Еще такой вопросик, а можно как-то отправлять письмо из приложения? В пакете только нашел компонент для чтения писем. |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Нет пока такого компонента.
|
|||
карма: 26 |
|
Ответов: 23
Рейтинг: 0
|
|||
Добрый день Netspirit! Нашел тут возможно небольшую ошибку в компоненте Counter, в строке 32 по-моему должно быть moveBlockTo(BLK_LOC_VAR), а не moveBlockTo(BLK_LOC_METHODS). Выше там создается объект Counter.ICounter, и получается что он как Public попадает внутрь какого-нибудь метода, когда счетчик подключен к выходу предыдущего компонента на схеме. Компилятору это естественно не нравиться. Ну про крайней мере так получается если использовать Bluetooth и к onFindDevice подключить увеличение счетчика.
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Там в компоненте Bluetooth неправильно построена генерация кода событий. Код впечатывается напрямую в общие блоки, что нарушает работу последующих компонентов. Поправил на SVN. Пробуй.
|
|||
карма: 26 |
|
Ответов: 23
Рейтинг: 0
|
|||
Заработало, спасибо! А можешь объяснить вкратце что есть block.reggen ну и конструкции типа
tmp = block.reggen() old = block.select(tmp) ...... MoveBlockTo(BLK_LOC_VAR) Я так понимаю блок переноситься в область определения переменных класса, а почему не надо писать просто block.select(BLK_LOC_VAR)? Или может это описано где-нибудь поподробнее? Почему в этом случае он не засовывает Counter.ICounter во внутрь метода? |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Смотри, в чём проблема. Есть общий блок, типа BLK_METHODS (BLK_LOC_VAR аналогично, но по его назначению с ним такое не возникает). В этот общий блок текст могут печатать различные компоненты.
Предположим, компонент Bluetooth хочет записать в этот блок текст метода:
public void ondevdiscoveryend1() { с расчетом на то, что следующие компоненты по событию event(onDeviceDiscoveryEnd) выведут свой код после этого текста, затем компонент Bluetooth завершит метод закрывающей скобкой '}'. Но: другие компоненты тоже вызывают события и тоже хотят разместить свои методы в BLK_METHODS. И когда они начинают печатать в BLK_METHODS, код с объявлением ихних методов попадает внутрь метода ondevdiscoveryend1(), а не над или под него.
Решается эта проблема таким образом: компоненты выводят в общие блоки только завершенный код методов. Для этого объявляется временный приватный блок (tmp = block.reggen()), делается текущим (block.select(tmp)). Поскольку этот блок никому неизвестный, компонент Bluetooth может распоряжаться им как угодно. И в этот блок уже выводится первая часть метода. Затем вызывается событие. Компоненты пишут свой код либо в данный блок (для них - просто текущий), либо в общие блоки (соблюдая тот же принцип). По завершении события компонент Bluetooth выводит закрывающую скобку в этот блок, а затем целиком его копирует в BLK_METHODS (MoveBlockTo(BLK_METHODS)). Таким образом, в BLK_METHODS оказывается правильно сформированное тело метода, не нарушенное другими компонентами. Функция MoveBlockTo() объявлена в general.hws, копирует текущий блок в указаный блок, затем удаляет текущий блок (чтобы он не выводился кодогенератором автоматически в конечный код). Редактировалось 6 раз(а), последний 2017-06-21 12:37:02 |
|||
карма: 26 |
|
Ответов: 23
Рейтинг: 0
|
|||
Спасибо! Стало понятней, получается что счетчик перемещал свой временный блок с объектом Icounter в общий, в то время как Bluetooth уже успел там кусок OnFind вывести.
|
|||
карма: 0 |
|
Ответов: 88
Рейтинг: 20
|
|||
Азвеняюсь, рр-ребят, а можно SKD из другого каталога подключить, например как у меня от Android Studio в С:\Android\SDK. Я за темай, правда, не слежу, если что "рецитируйте" кратко. Заранее спасибо!
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Не стоит. Там для пакета выполняется некоторая подготовительная работа, также компоненты могут зависеть от конкретной версии. SDK, поставляемая с пакетом, по-моему, никак не конфликтует с остальными. Нет необходимости указывать стороннюю. Эмуляторы можно использовать от сторонней SDK, не используя запускальщик из пакета.
|
|||
карма: 26 |
|
Ответов: 88
Рейтинг: 20
|
|||
Да вот у меня в компиляторах только Copy, почему-то Andoid'а нет?
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
А ты его устанавливал через инсталлятор?
Возьми файл HiAsm\compiler\Android\Install.his и перетащи в окно HiAsm. Перезапусти. Редактировалось 1 раз(а), последний 2017-06-27 11:45:01 |
|||
карма: 26 |
|
Ответов: 88
Рейтинг: 20
|
|||
В Alt-версии всё заработало, а в обычной нет?
|
|||
карма: 0 |
|
Ответов: 88
Рейтинг: 20
|
|||
Да ещё .apk с Project.sha нету хорошо что ещё в temp'е есть
|
|||
карма: 0 |
|
Ответов: 1328
Рейтинг: 69
|
|||
Как работает Camera кроме фонарика ничего не заработало?
код
|
|||
карма: 2 |
|