Вверх ↑
Этот топик читают: Гость
Главный модератор
Ответов: 2999
Рейтинг: 396
#556: 2013-10-28 18:44:01 ЛС | профиль | цитата
Пример использования рекурсии: http://svn.hiasm.com/packs/CNET/Example/Logic/Recursion.sha
RecursionFactorial
c# code

#cpp
...
private static int Method2(int p1)
{
if (p1 <= 1) {
return 1;
}
else {
return (Method2((p1 - 1)) * p1);
}
}
private void onClick9(object sender, System.EventArgs args) { // Button9:"Factorial"
Label11.Text = (Method2((int)(NumericUpDown10.Value))).ToString();
}
...

Реализована возможность связи между процессами через именованные каналы (Pipes). Для этого используются компоненты PipeServer и PipeClient:
PipeServer
PipeClient
Тип передаваемых данных - массив байт (byte[]), так как любой тип данных можно преобразовать в этот тип.

А также посылка текстовых сообщений между процессами в заданной кодировке через MailSlot. Для этого используются компоненты MailSlotServer и MailSlotClient
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
1
файлы: 3recursionfactorial.png [9.9KB] [1375], pipeserverstream.png [12.1KB] [1217], pipeclientstream.png [17.4KB] [1310]
Голосовали:iarspider
Главный модератор
Ответов: 2999
Рейтинг: 396
#557: 2013-10-31 02:23:20 ЛС | профиль | цитата
Добавлены компоненты синхронизации потоков Mutex и управления доступом к контролам основного потока из других ThreadControlAccess. Пример использования: http://svn.hiasm.com/packs/CNET/Example/Components/Mutex.sha
mutexcnet.png
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1mutexcnet.png [17.4KB] [1107]
Главный модератор
Ответов: 2999
Рейтинг: 396
#558: 2013-11-01 02:26:14 ЛС | профиль | цитата
Добавлена возможность печати отчётов из ListView-контрола в режиме «Details». Пример:
http://svn.hiasm.com/packs/CNET/Example/files/ZipArchiveManager.sha
PrintSetup
PrintPreview
Print
ListviewResult
Результат печати в формате XPS: result.xps.rar
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 5listviewprintsetup.png [54.6KB] [1255], listviewprintpreview.png [76.9KB] [1152], listviewprint.png [61.6KB] [1191], listviewresult.png [46.8KB] [1276], result.xps.rar [66.4KB] [353]
Главный модератор
Ответов: 2999
Рейтинг: 396
#559: 2013-11-06 11:19:22 ЛС | профиль | цитата
2-ой годовщине пакета посвящается. Добавлен новый проект пакета для создания службы Windows: Service
Service.his

#bas
function run(){
sys.addproject("cnet","Service","WindowsService","A project for creating a service","exe","make_cnet.dll");
}
cnet_service.png
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
1
файлы: 1cnet_service.png [91.8KB] [1068]
Голосовали:Shonyi
Главный модератор
Ответов: 2999
Рейтинг: 396
#560: 2013-11-08 00:27:22 ЛС | профиль | цитата
Добавлен компонент управления службой Windows: ServiceController
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 203
Рейтинг: 2
#561: 2013-11-08 19:51:31 ЛС | профиль | цитата
Добрый день!
Нужна помощь, есть схема

code_32276.txt

вариант на CNET не совсем корректно работает, есть предложения ?

code_32277.txt
карма: 0

0
файлы: 2code_32276.txt [447B] [359], code_32277.txt [1.1KB] [400]
Главный модератор
Ответов: 2999
Рейтинг: 396
#562: 2013-11-10 03:29:03 ЛС | профиль | цитата
Добавлен компонент MyCRC, повторяющий функционал аналогичного компонента из пакета Windows.
sha

Add(EntryPoint,7034699,105,49)
{
Width=304
Height=154
}
Add(Button,16420334,105,91)
{
Left=110
Top=10
Text="Calc"
Point(onClick)
link(onClick,3893621:doCalcCRC,[])
AddHint(-56,9,36,13,Text)
}
Add(TextBox,9780067,154,49)
{
Left=10
Top=50
Width=255
Text="01030F000000"
Lines=[]
TextAlign=2
Point(doText)
Point(Text)
Point(data)
}
Add(Label,15671000,203,91)
{
Left=10
Top=90
Width=255
Height=18
Point(doText)
Point(onClick)
}
Add(MyCRC,3893621,154,91)
{
Type=1
Polynomial="0xA001"
Initial="0xFFFF"
link(onCalcCRC,15671000:doText,[])
link(Data,9780067:Text,[])
}
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 203
Рейтинг: 2
#563: 2013-11-10 19:13:57 ЛС | профиль | цитата
Nic, обновил, все работает. Спасибо.
карма: 0

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#564: 2013-11-28 11:31:59 ЛС | профиль | цитата
Прототип компонента для работы с контролами формы: ControlsFactory.
Пока реализовано сохранение/загрузка элементов формы с текущими свойствами в/из файл(а).
Возможно будут добавлены:
- копирование контрола через ClipBoard;
- создание нового контрола по имени класса;
- клонирование формы;
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#565: 2013-12-04 00:46:40 ЛС | профиль | цитата
В кодогенератор добавлена функция split(source, delimiter). Подробности: Работа со строками.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Гость
Ответов: 17029
Рейтинг: 0
#566: 2013-12-09 20:35:24 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2022-09-20 02:14:04
карма: 0

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#567: 2013-12-10 21:18:43 ЛС | профиль | цитата
cnet666.png
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
1
файлы: 1cnet666.png [34.3KB] [773]
Голосовали:sla8a
Главный модератор
Ответов: 2999
Рейтинг: 396
#568: 2013-12-27 08:22:35 ЛС | профиль | цитата
[url=http://svn.hiasm.com/packs/CNET/Example/graphics/DynamicBall.sha
схема[/url]]

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1dynamicball.png [22.3KB] [644]
Главный модератор
Ответов: 2999
Рейтинг: 396
#569: 2013-12-29 11:39:51 ЛС | профиль | цитата
Парадигма программирования HiAsm включает в себя графическое представление понятия Object в виде визуального элемента схемы. Разработчики знают, что названия точек для одного элемента схемы должны быть уникальными, так как среда использует имя, данное точке, как идентификатор. Расмотрим пример элемента, описывающего объект с одним методом, свойством и событием:
#ini
...
[Property]
Property=...
...
[Methods]
doProperty=...|1|
onProperty=...|2|
Property=...|3|
...
Такой элемент будет работать. Пользователь сможет установить значение поля Property по-умолчанию в designtime, прочитать и записать это поле в runtime. Единственное ограничение такого элемента - это невозможность использования имени Property для определения параметров вызова метода doProperty. Вот так будет выглядеть неправильный файл конфигурации элемента:
#ini
...
[Property]
Property=...
...
[Methods]
doProperty=...|1|
onProperty=...|2|
Property=...|3|
Property=...|4|
...
Вывод: надо избегать ситуации когда имена верхних и нижних точек совпадают.

Напрашивается вопрос как часто приходится сталкиваться с подобной ситуацией? Оказывает, что не редко. Рассмотрим реальный элемент, реализующий структуру Rectangle в пакете CNET:
ini

#ini
...
[Property]
...
@X=Sets the x-coordinate of the upper-left corner of this Rectangle structure.|1|0
@Y=Sets the y-coordinate of the upper-left corner of this Rectangle structure.|1|0
@Width=Sets the width of this Rectangle structure.|1|0
@Height=Sets the height of this Rectangle structure.|1|0

[Methods]
...
X=Returns the x-coordinate of the upper-left corner of this Rectangle structure.ARG(int)|3|1
Y=Returns the y-coordinate of the upper-left corner of this Rectangle structure.ARG(int)|3|1
Width=Returns the width of this Rectangle structure.ARG(int)|3|1
Height=Returns the height of this Rectangle structure.ARG(int)|3|1
...
Соответственно схема инициализации структуры в runtime будет выглядеть так:
old_element.png
А теперь посмотрим как выглядела бы схема, если бы не было ограничения на совпадения наименований точек элемента:
new_element.png
ВОПРОС: Как исправить ситуацию?

Малореальные способы: исправление среды. Например, чтобы среда для идентификации точек использовала не только имя, но и тип точки. Или, на крайний случай, использовать case sensitive для имён, то есть, чтобы для среды имена Property и property были различны. Логически напрашивается ещё вариант с префиксом в названии, например так: varProperty для нижних точек.

Предлагаемый способ: несложно реализуемый варинт использования некоего name convention для именования нижних точек, несущих ту же смысловую нагрузку, что и верхние. Это использование символа подчёркивания «_» перед именем нижней точки, причём обязательного только в случае наличия одноимённой верхней точки:
#ini
...
[Property]
Property=...
...
[Methods]
doProperty=...|1|
onProperty=...|2|
_Property=...|3|
Property=...|4|
...
Почему нижней точки, а не верхней? Это продиктовано реализацией функции d() кодогенератора RTCG для правильного выполнения которой, необходимо совпадение имён верхней точки с названием свойства. Если у Вас есть своё мнение по данному вопросу, то принимаются любые идеи, могущие решить данную проблему.

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 2old_element.png [4.3KB] [830], new_element.png [2KB] [598]
Ответов: 4628
Рейтинг: 749
#570: 2013-12-29 18:49:31 ЛС | профиль | цитата
Проблема понятна. А одинаковые имена верхних и нижних точек корректно парсятся средой? Если да, тогда идея: а нельзя ли в кодогенераторе поправить функции работы с точками?
В частности: при чтении верхней точки с именем Property кодогенератор должен искать только верхнюю точку с таким именем и не обращать внимания на другие точки. При обращении других компонентов к нижней точке с именем Property кодогенератор должен проверить наличие нижней точки и попытаться вызвать функцию этой точки.
При этом в коде компонента точки будут разделены естественным образом на уровне синтаксиса: имя верхней точки записывается как Property, тогда как единственный случай обращения к собственной нижней точке выглядит как Property().
карма: 26

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)